--- a/src/eric7/Network/IRC/IrcNetworkListDialog.py Wed Jul 13 11:16:20 2022 +0200 +++ b/src/eric7/Network/IRC/IrcNetworkListDialog.py Wed Jul 13 14:55:47 2022 +0200 @@ -19,18 +19,19 @@ """ Class implementing a dialog to list the configured IRC networks. """ + def __init__(self, manager, parent=None): """ Constructor - + @param manager reference to the IRC network manager (IrcNetworkManager) @param parent reference to the parent widget (QWidget) """ super().__init__(parent) self.setupUi(self) - + self.__manager = manager - + self.__refreshNetworksList() def __resizeColumns(self): @@ -39,7 +40,7 @@ """ for col in range(self.networksList.columnCount()): self.networksList.resizeColumnToContents(col) - + def __checkButtons(self): """ Private slot to set the enabled state of the buttons. @@ -51,89 +52,85 @@ else: for itm in selectedItems: enable &= itm.parent() is None - + self.editButton.setEnabled(enable) self.deleteButton.setEnabled(enable) self.autoConnectButton.setEnabled(enable) - + if enable: itm = self.networksList.selectedItems()[0] 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. - + @param 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 from .IrcNetworkManager import IrcIdentity + networkName = itm.text(0) network = self.__manager.getNetwork(networkName) server = network.getServer() identityName = network.getIdentityName() if identityName == IrcIdentity.DefaultIdentityName: identityName = IrcIdentity.DefaultIdentityDisplay - autoConnect = ( - self.tr("Yes") if network.autoConnect() else self.tr("No") - ) - - QTreeWidgetItem( - itm, - [self.tr("Identity"), identityName]) + autoConnect = self.tr("Yes") if network.autoConnect() else self.tr("No") + + QTreeWidgetItem(itm, [self.tr("Identity"), identityName]) QTreeWidgetItem( itm, - [self.tr("Server"), "{0}:{1}".format( - server.getName(), server.getPort())]) - QTreeWidgetItem( - itm, - [self.tr("Channels"), ", ".join(network.getChannelNames())]) + [self.tr("Server"), "{0}:{1}".format(server.getName(), server.getPort())], + ) QTreeWidgetItem( - itm, - [self.tr("Auto-Connect"), autoConnect]) - + itm, [self.tr("Channels"), ", ".join(network.getChannelNames())] + ) + QTreeWidgetItem(itm, [self.tr("Auto-Connect"), autoConnect]) + self.__resizeColumns() - + def __refreshNetworksList(self): """ Private method to refresh the complete networks list. """ self.networksList.clear() - + networkNames = self.__manager.getNetworkNames() for networkName in networkNames: topitm = QTreeWidgetItem(self.networksList, [networkName]) self.__refreshNetworkEntry(topitm) topitm.setExpanded(True) self.__resizeColumns() - + self.__checkButtons() - + @pyqtSlot() def on_networksList_itemSelectionChanged(self): """ Private slot to handle changes of the selection of networks. """ self.__checkButtons() - + @pyqtSlot() def on_newButton_clicked(self): """ Private slot to add a new network entry. """ from .IrcNetworkEditDialog import IrcNetworkEditDialog + dlg = IrcNetworkEditDialog(self.__manager, "", self) if dlg.exec() == QDialog.DialogCode.Accepted: network = dlg.getNetwork() self.__manager.addNetwork(network) self.__refreshNetworksList() - + @pyqtSlot() def on_editButton_clicked(self): """ @@ -142,6 +139,7 @@ itm = self.networksList.selectedItems()[0] if itm: from .IrcNetworkEditDialog import IrcNetworkEditDialog + networkName = itm.text(0) dlg = IrcNetworkEditDialog(self.__manager, networkName, self) if dlg.exec() == QDialog.DialogCode.Accepted: @@ -150,7 +148,7 @@ if network.getName() != networkName: itm.setText(0, network.getName()) self.__refreshNetworkEntry(itm) - + @pyqtSlot() def on_deleteButton_clicked(self): """ @@ -163,38 +161,39 @@ self, self.tr("Delete Irc Network"), self.tr( - """Do you really want to delete IRC network <b>{0}</b>?""") - .format(networkName)) + """Do you really want to delete IRC network <b>{0}</b>?""" + ).format(networkName), + ) if res: index = self.networksList.indexOfTopLevelItem(itm) self.networksList.takeTopLevelItem(index) del itm - + self.__manager.deleteNetwork(networkName) - + @pyqtSlot(QTreeWidgetItem) def on_networksList_itemExpanded(self, item): """ Private slot handling the expansion of a top level item. - + @param item reference to the expanded item (QTreeWidgetItem) """ self.__resizeColumns() - + @pyqtSlot(QTreeWidgetItem) def on_networksList_itemCollapsed(self, item): """ Private slot handling the collapse of a top level item. - + @param item reference to the collapsed item (QTreeWidgetItem) """ self.__resizeColumns() - + @pyqtSlot(bool) def on_autoConnectButton_clicked(self, checked): """ Private slot handling the auto-connect selection. - + @param checked flag indicating the state of the button (boolean) """ itm = self.networksList.selectedItems()[0] @@ -210,7 +209,7 @@ else: network.setAutoConnect(False) self.__manager.networkChanged() - + # step 2: update list entries for index in range(self.networksList.topLevelItemCount()): titm = self.networksList.topLevelItem(index) @@ -223,14 +222,14 @@ network = self.__manager.getNetwork(networkName) network.setAutoConnect(False) self.__manager.networkChanged() - + # step 2: update list entry self.__setAutoConnectEntry(itm, False) - + def __setAutoConnectEntry(self, itm, on): """ Private method to set the auto-connect entry of a network item. - + @param itm reference to the network item (QTreeWidgetItem) @param on flag indicating the auto-connect state (boolean) """ @@ -239,19 +238,19 @@ citm = itm.child(index) if citm.text(0) == self.tr("Auto-Connect"): citm.setText(1, autoConnect) - + @pyqtSlot() def on_editIdentitiesButton_clicked(self): """ Private slot to edit the identities. """ from .IrcIdentitiesEditDialog import IrcIdentitiesEditDialog + dlg = IrcIdentitiesEditDialog(self.__manager, "", self) dlg.exec() - + selectedNetwork = self.networksList.selectedItems() - selectedNetworkName = ( - selectedNetwork[0].text(0) if selectedNetwork else "") + selectedNetworkName = selectedNetwork[0].text(0) if selectedNetwork else "" self.__refreshNetworksList() if selectedNetworkName: for index in range(self.networksList.topLevelItemCount()):