--- a/Network/IRC/IrcWidget.py Sat Dec 01 19:51:46 2012 +0100 +++ b/Network/IRC/IrcWidget.py Sun Dec 02 13:48:01 2012 +0100 @@ -40,6 +40,7 @@ self.setupUi(self) self.__ircNetworkManager = IrcNetworkManager(self) + self.__ircNetworkManager.dataChanged.connect(self.__networkDataChanged) self.__leaveButton = QToolButton(self) self.__leaveButton.setIcon(UI.PixmapCache.getIcon("ircCloseChannel.png")) @@ -59,6 +60,7 @@ self.__channelTypePrefixes = "" self.__userName = "" self.__identityName = "" + self.__quitMessage = "" self.__nickIndex = -1 self.__nickName = "" self.__server = None @@ -108,7 +110,7 @@ if ok: self.__socket.blockSignals(True) - self.__send("QUIT :" + self.trUtf8("IRC for eric IDE")) + self.__send("QUIT :" + self.__quitMessage) self.__socket.close() self.__socket.deleteLater() else: @@ -132,12 +134,14 @@ @param connect flag indicating to connect (boolean) """ if connect: + # TODO: support SSL connection network = self.__ircNetworkManager.getNetwork(name) if network: self.__server = network.getServer() self.__identityName = network.getIdentityName() identity = self.__ircNetworkManager.getIdentity(self.__identityName) self.__userName = identity.getIdent() + self.__quitMessage = identity.getQuitMessage() if self.__server: self.networkWidget.addServerMessage(self.trUtf8("Info"), self.trUtf8("Looking for server {0} (port {1})...").format( @@ -159,10 +163,11 @@ self.channelsWidget.removeTab(self.channelsWidget.indexOf(channel)) channel.deleteLater() channel = None - self.__send("QUIT :" + self.trUtf8("IRC for eric IDE")) + self.__send("QUIT :" + self.__quitMessage) self.__socket.close() self.__userName = "" self.__identityName = "" + self.__quitMessage = "" def __editNetwork(self, name): """ @@ -173,6 +178,16 @@ dlg = IrcNetworkListDialog(self.__ircNetworkManager, self) dlg.exec_() + def __networkDataChanged(self): + """ + Private slot handling changes of the network and identity definitions. + """ + identity = self.__ircNetworkManager.getIdentity(self.__identityName) + if identity: + partMsg = identity.getPartMessage() + for channel in self.__channelList: + channel.setPartMessage(partMsg) + def __joinChannel(self, name, key=""): """ Private slot to join a channel. @@ -188,7 +203,8 @@ channel = IrcChannelWidget(self) channel.setName(name) channel.setUserName(self.__nickName) - channel.setPartMessage(self.trUtf8("IRC for eric IDE")) + identity = self.__ircNetworkManager.getIdentity(self.__identityName) + channel.setPartMessage(identity.getPartMessage()) channel.setUserPrivilegePrefix(self.__userPrefix) channel.sendData.connect(self.__send) @@ -197,7 +213,10 @@ self.channelsWidget.addTab(channel, name) self.__channelList.append(channel) - self.__send("JOIN " + name) # TODO: add channel key + joinCommand = ["JOIN", name] + if key: + joinCommand.append(key) + self.__send(" ".join(joinCommand)) self.__send("MODE " + name) emptyIndex = self.channelsWidget.indexOf(self.__emptyLabel) @@ -378,6 +397,9 @@ self.networkWidget.addMessage( self.trUtf8("You have left channel {0}.").format(channel)) return True + elif name == "QUIT": + # don't do anything with it here + return True elif name == "NICK": # :foo_!n=foo@foohost.bar.net NICK :newnick oldNick = match.group(1).split("!", 1)[0] @@ -497,7 +519,7 @@ Private method to register to services. """ identity = self.__ircNetworkManager.getIdentity(self.__identityName) - service = identity.getName() + service = identity.getServiceName() password = identity.getPassword() if service and password: self.__send("PRIVMSG " + service + " :identify " + password)