Network/IRC/IrcNetworkListDialog.py

changeset 2237
baddb671c326
parent 2236
e30d5f978919
child 2238
9977d3081ab6
equal deleted inserted replaced
2236:e30d5f978919 2237:baddb671c326
36 36
37 networkNames = self.__manager.getNetworkNames() 37 networkNames = self.__manager.getNetworkNames()
38 for networkName in networkNames: 38 for networkName in networkNames:
39 topitm = QTreeWidgetItem(self.networksList, [networkName]) 39 topitm = QTreeWidgetItem(self.networksList, [networkName])
40 network = self.__manager.getNetwork(networkName) 40 network = self.__manager.getNetwork(networkName)
41 server = network.getServer(network.getServerNames()[0]) 41 server = network.getServer()
42 identityName = network.getIdentityName() 42 identityName = network.getIdentityName()
43 if identityName == IrcIdentity.DefaultIdentityName: 43 if identityName == IrcIdentity.DefaultIdentityName:
44 identityName = IrcIdentity.DefaultIdentityDisplay 44 identityName = IrcIdentity.DefaultIdentityDisplay
45 autoConnect = self.trUtf8("Yes") if network.autoConnect() \
46 else self.trUtf8("No")
47
45 QTreeWidgetItem(topitm, 48 QTreeWidgetItem(topitm,
46 [self.trUtf8("Identity"), identityName]) 49 [self.trUtf8("Identity"), identityName])
47 QTreeWidgetItem(topitm, 50 QTreeWidgetItem(topitm,
48 [self.trUtf8("Server"), "{0}:{1}".format( 51 [self.trUtf8("Server"), "{0}:{1}".format(
49 server.getName(), server.getPort())]) 52 server.getName(), server.getPort())])
50 QTreeWidgetItem(topitm, 53 QTreeWidgetItem(topitm,
51 [self.trUtf8("Channels"), ", ".join(network.getChannelNames())]) 54 [self.trUtf8("Channels"), ", ".join(network.getChannelNames())])
55 QTreeWidgetItem(topitm,
56 [self.trUtf8("Auto-Connect"), autoConnect])
52 topitm.setExpanded(True) 57 topitm.setExpanded(True)
53 self.__resizeColumns() 58 self.__resizeColumns()
54 59
55 self.__checkButtons() 60 self.__checkButtons()
56 61
73 for itm in selectedItems: 78 for itm in selectedItems:
74 enable &= itm.parent() is None 79 enable &= itm.parent() is None
75 80
76 self.editButton.setEnabled(enable) 81 self.editButton.setEnabled(enable)
77 self.deleteButton.setEnabled(enable) 82 self.deleteButton.setEnabled(enable)
83 self.autoConnectButton.setEnabled(enable)
84
85 if enable:
86 itm = self.networksList.selectedItems()[0]
87 check = self.__manager.getNetwork(itm.text(0)).autoConnect()
88 self.autoConnectButton.setChecked(check)
78 89
79 @pyqtSlot() 90 @pyqtSlot()
80 def on_networksList_itemSelectionChanged(self): 91 def on_networksList_itemSelectionChanged(self):
81 """ 92 """
82 Privat slot to handle changes of the selection of networks. 93 Privat slot to handle changes of the selection of networks.
133 def on_networksList_itemCollapsed(self, item): 144 def on_networksList_itemCollapsed(self, item):
134 """ 145 """
135 Private slot handling the collapse of a top level item. 146 Private slot handling the collapse of a top level item.
136 """ 147 """
137 self.__resizeColumns() 148 self.__resizeColumns()
149
150 @pyqtSlot(bool)
151 def on_autoConnectButton_clicked(self, checked):
152 """
153 Private slot handling the auto-connect selection.
154
155 @param checked flag indicating the state of the button (boolean)
156 """
157 itm = self.networksList.selectedItems()[0]
158 if itm.parent() is None:
159 networkName = itm.text(0)
160 if checked:
161 # enable the selected network, disable all others
162 # step 1: update network objects
163 for name in self.__manager.getNetworkNames():
164 network = self.__manager.getNetwork(networkName)
165 if name == networkName:
166 network.setAutoConnect(True)
167 else:
168 network.setAutoConnect(False)
169 self.__manager.networkChanged()
170
171 # step 2: update list entries
172 for index in range(self.networksList.topLevelItemCount()):
173 titm = self.networksList.topLevelItem(index)
174 if titm.text(0) == networkName:
175 self.__setAutoConnectEntry(titm, True)
176 else:
177 self.__setAutoConnectEntry(titm, False)
178 else:
179 # step 1: update network object
180 network = self.__manager.getNetwork(networkName)
181 network.setAutoConnect(False)
182 self.__manager.networkChanged()
183
184 # step 2: update list entry
185 self.__setAutoConnectEntry(itm, False)
186
187 def __setAutoConnectEntry(self, itm, on):
188 """
189 Private method to set the auto-connect entry of a network item.
190
191 @param itm reference to the network item (QTreeWidgetItem)
192 @param on flag indicating the auto-connect state (boolean)
193 """
194 autoConnect = self.trUtf8("Yes") if on else self.trUtf8("No")
195 for index in range(itm.childCount()):
196 citm = itm.child(index)
197 if citm.text(0) == self.trUtf8("Auto-Connect"):
198 citm.setText(1, autoConnect)

eric ide

mercurial