diff -r 9977d3081ab6 -r a47b50e80a20 Network/IRC/IrcNetworkEditDialog.py --- a/Network/IRC/IrcNetworkEditDialog.py Sat Dec 01 11:48:52 2012 +0100 +++ b/Network/IRC/IrcNetworkEditDialog.py Sat Dec 01 19:51:46 2012 +0100 @@ -19,6 +19,7 @@ from .IrcNetworkManager import IrcIdentity, IrcChannel from .IrcChannelEditDialog import IrcChannelEditDialog from .IrcServerEditDialog import IrcServerEditDialog +from .IrcIdentitiesEditDialog import IrcIdentitiesEditDialog import UI.PixmapCache @@ -55,17 +56,7 @@ self.networkEdit.setText(networkName) # identities - identities = list(sorted(self.__manager.getIdentityNames())) - identities[identities.index(IrcIdentity.DefaultIdentityName)] = \ - IrcIdentity.DefaultIdentityDisplay - self.identityCombo.addItems(identities) - identity = self.__network.getIdentityName() - if identity == IrcIdentity.DefaultIdentityName: - identity = IrcIdentity.DefaultIdentityDisplay - index = self.identityCombo.findText(identity) - if index == -1: - index = 0 - self.identityCombo.setCurrentIndex(index) + self.__refreshIdentityCombo(self.__network.getIdentityName()) # server self.serverEdit.setText(self.__network.getServerName()) @@ -101,22 +92,45 @@ """ self.__updateOkButton() + def __refreshIdentityCombo(self, currentIdentity): + """ + Private method to refresh the identity combo. + + @param currentIdentity name of the identity to select (string) + """ + self.identityCombo.clear() + + identities = list(sorted(self.__manager.getIdentityNames())) + identities[identities.index(IrcIdentity.DefaultIdentityName)] = \ + IrcIdentity.DefaultIdentityDisplay + self.identityCombo.addItems(identities) + if currentIdentity == IrcIdentity.DefaultIdentityName: + currentIdentity = IrcIdentity.DefaultIdentityDisplay + index = self.identityCombo.findText(currentIdentity) + if index == -1: + index = 0 + self.identityCombo.setCurrentIndex(index) + @pyqtSlot(str) - def on_identityCombo_activated(self, identity): + def on_identityCombo_currentIndexChanged(self, identity): """ Private slot to handle the selection of an identity. @param identity selected entity (string) """ + if identity == IrcIdentity.DefaultIdentityDisplay: + identity = IrcIdentity.DefaultIdentityName self.__network.setIdentityName(identity) @pyqtSlot() def on_editIdentitiesButton_clicked(self): """ - Slot documentation goes here. + Private slot to edit the identities. """ - # TODO: not implemented yet - raise NotImplementedError + currentIdentity = self.identityCombo.currentText() + dlg = IrcIdentitiesEditDialog(self.__manager, currentIdentity, self) + dlg.exec_() + self.__refreshIdentityCombo(currentIdentity) @pyqtSlot() def on_editServerButton_clicked(self):