Network/IRC/IrcNetworkListDialog.py

changeset 2238
9977d3081ab6
parent 2237
baddb671c326
child 2239
a47b50e80a20
diff -r baddb671c326 -r 9977d3081ab6 Network/IRC/IrcNetworkListDialog.py
--- a/Network/IRC/IrcNetworkListDialog.py	Fri Nov 30 20:14:50 2012 +0100
+++ b/Network/IRC/IrcNetworkListDialog.py	Sat Dec 01 11:48:52 2012 +0100
@@ -37,23 +37,7 @@
         networkNames = self.__manager.getNetworkNames()
         for networkName in networkNames:
             topitm = QTreeWidgetItem(self.networksList, [networkName])
-            network = self.__manager.getNetwork(networkName)
-            server = network.getServer()
-            identityName = network.getIdentityName()
-            if identityName == IrcIdentity.DefaultIdentityName:
-                identityName = IrcIdentity.DefaultIdentityDisplay
-            autoConnect = self.trUtf8("Yes") if network.autoConnect() \
-                          else self.trUtf8("No")
-            
-            QTreeWidgetItem(topitm,
-                [self.trUtf8("Identity"), identityName])
-            QTreeWidgetItem(topitm,
-                [self.trUtf8("Server"), "{0}:{1}".format(
-                 server.getName(), server.getPort())])
-            QTreeWidgetItem(topitm,
-                [self.trUtf8("Channels"), ", ".join(network.getChannelNames())])
-            QTreeWidgetItem(topitm,
-                [self.trUtf8("Auto-Connect"), autoConnect])
+            self.__refreshNetworkEntry(topitm)
             topitm.setExpanded(True)
         self.__resizeColumns()
         
@@ -87,6 +71,39 @@
             check = self.__manager.getNetwork(itm.text(0)).autoConnect()
             self.autoConnectButton.setChecked(check)
     
+    def __refreshNetworkEntry(self, itm):
+        """
+        Private method to (re-)set the data of a network entry.
+        
+        @oaram itm reference to the network entry (QTreeWidgetItem)
+        """
+        # step 1: delete all child entries
+        children = itm.takeChildren()
+        for child in children:
+            del child
+        
+        # step 2: (re-)add the child entries
+        networkName = itm.text(0)
+        network = self.__manager.getNetwork(networkName)
+        server = network.getServer()
+        identityName = network.getIdentityName()
+        if identityName == IrcIdentity.DefaultIdentityName:
+            identityName = IrcIdentity.DefaultIdentityDisplay
+        autoConnect = self.trUtf8("Yes") if network.autoConnect() \
+                      else self.trUtf8("No")
+        
+        QTreeWidgetItem(itm,
+            [self.trUtf8("Identity"), identityName])
+        QTreeWidgetItem(itm,
+            [self.trUtf8("Server"), "{0}:{1}".format(
+             server.getName(), server.getPort())])
+        QTreeWidgetItem(itm,
+            [self.trUtf8("Channels"), ", ".join(network.getChannelNames())])
+        QTreeWidgetItem(itm,
+            [self.trUtf8("Auto-Connect"), autoConnect])
+        
+        self.__resizeColumns()
+    
     @pyqtSlot()
     def on_networksList_itemSelectionChanged(self):
         """
@@ -112,7 +129,11 @@
             networkName = itm.text(0)
             dlg = IrcNetworkEditDialog(self.__manager, networkName, self)
             if dlg.exec_() == QDialog.Accepted:
-                self.__manager.setNetwork(dlg.getNetwork())
+                network = dlg.getNetwork()
+                self.__manager.setNetwork(network, networkName)
+                if network.getName() != networkName:
+                    itm.setText(0, network.getName())
+                self.__refreshNetworkEntry(itm)
     
     @pyqtSlot()
     def on_deleteButton_clicked(self):

eric ide

mercurial