Network/IRC/IrcWidget.py

changeset 2252
1fc32bd13be3
parent 2246
fdf22a29fbf4
child 2253
7ba2af1ff785
--- 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
     

eric ide

mercurial