diff -r 810e9c7b61e3 -r 1fc32bd13be3 Network/IRC/IrcWidget.py --- a/Network/IRC/IrcWidget.py Fri Dec 07 18:35:54 2012 +0100 +++ b/Network/IRC/IrcWidget.py Fri Dec 07 19:48:23 2012 +0100 @@ -248,6 +248,7 @@ channel.sendData.connect(self.__send) channel.channelClosed.connect(self.__closeChannel) + channel.openPrivateChat.connect(self.__openPrivate) self.channelsWidget.addTab(channel, name) self.__channelList.append(channel) @@ -264,6 +265,28 @@ self.__leaveButton.setEnabled(True) self.channelsWidget.setTabsClosable(True) + @pyqtSlot(str) + def __openPrivate(self, name): + """ + Private slot to open a private chat with the given user. + + @param name name of the user (string) + """ + channel = IrcChannelWidget(self) + channel.setName(self.__nickName) + channel.setUserName(self.__nickName) + identity = self.__ircNetworkManager.getIdentity(self.__identityName) + channel.setPartMessage(identity.getPartMessage()) + channel.setUserPrivilegePrefix(self.__userPrefix) + channel.setPrivate(True, name) + channel.addUsers([name, self.__nickName]) + + channel.sendData.connect(self.__send) + channel.channelClosed.connect(self.__closeChannel) + + self.channelsWidget.addTab(channel, name) + self.__channelList.append(channel) + @pyqtSlot() def __leaveChannel(self): """ @@ -461,6 +484,10 @@ self.trUtf8("User {0} is now known as {1}.").format( oldNick, newNick)) return True + elif name == "ERROR": + self.networkWidget.addErrorMessage( + self.trUtf8("Server Error"), match.group(3).split(":", 1)[1]) + return True return False