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) |