From ca206de16b9d858f97e8e0a4c9a1d3dbeb874569 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Sat, 3 Feb 2024 11:26:35 +0000 Subject: [PATCH] qt NetworkDialog: small clean-up --- electrum/gui/qt/network_dialog.py | 52 ++++++++++++++++--------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/electrum/gui/qt/network_dialog.py b/electrum/gui/qt/network_dialog.py index 994024669..141987fc8 100644 --- a/electrum/gui/qt/network_dialog.py +++ b/electrum/gui/qt/network_dialog.py @@ -96,15 +96,16 @@ class NodesListWidget(QTreeWidget): DISCONNECTED_SERVER = 2 TOPLEVEL = 3 - followServer = pyqtSignal([object], arguments=['server']) + followServer = pyqtSignal([ServerAddr], arguments=['server']) followChain = pyqtSignal([str], arguments=['chain_id']) setServer = pyqtSignal([str], arguments=['server']) - def __init__(self): + def __init__(self, *, network: Network): QTreeWidget.__init__(self) self.setHeaderLabels([_('Server'), _('Height')]) self.setContextMenuPolicy(Qt.CustomContextMenu) self.customContextMenuRequested.connect(self.create_menu) + self.network = network def create_menu(self, position): item = self.currentItem() @@ -112,16 +113,16 @@ class NodesListWidget(QTreeWidget): return item_type = item.data(0, self.ITEMTYPE_ROLE) menu = QMenu() - if item_type == self.ItemType.CONNECTED_SERVER: - server = item.data(0, self.SERVER_ADDR_ROLE) # type: ServerAddr - def do_follow_server(): - self.followServer.emit(server) - menu.addAction(_("Use as server"), do_follow_server) - elif item_type == self.ItemType.DISCONNECTED_SERVER: + if item_type in [self.ItemType.CONNECTED_SERVER, self.ItemType.DISCONNECTED_SERVER]: server = item.data(0, self.SERVER_ADDR_ROLE) # type: ServerAddr - def do_set_server(): - self.setServer.emit(str(server)) - menu.addAction(_("Use as server"), do_set_server) + if item_type == self.ItemType.CONNECTED_SERVER: + def do_follow_server(): + self.followServer.emit(server) + menu.addAction(read_QIcon("chevron-right.png"), _("Use as server"), do_follow_server) + elif item_type == self.ItemType.DISCONNECTED_SERVER: + def do_set_server(): + self.setServer.emit(str(server)) + menu.addAction(read_QIcon("chevron-right.png"), _("Use as server"), do_set_server) elif item_type == self.ItemType.CHAIN: chain_id = item.data(0, self.CHAIN_ID_ROLE) def do_follow_chain(): @@ -143,8 +144,10 @@ class NodesListWidget(QTreeWidget): pt.setX(50) self.customContextMenuRequested.emit(pt) - def update(self, *, network: Network, servers: dict): + def update(self): self.clear() + network = self.network + servers = self.network.get_servers() use_tor = bool(network.is_proxy_tor) @@ -186,12 +189,13 @@ class NodesListWidget(QTreeWidget): if _host.endswith('.onion') and not use_tor: continue port = d.get(protocol) - if port: - server = ServerAddr(_host, port, protocol=protocol) - item = QTreeWidgetItem([server.net_addr_str(), ""]) - item.setData(0, self.ITEMTYPE_ROLE, self.ItemType.DISCONNECTED_SERVER) - item.setData(0, self.SERVER_ADDR_ROLE, server) - disconnected_servers_item.addChild(item) + if not port: + continue + server = ServerAddr(_host, port, protocol=protocol) + item = QTreeWidgetItem([server.net_addr_str(), ""]) + item.setData(0, self.ITEMTYPE_ROLE, self.ItemType.DISCONNECTED_SERVER) + item.setData(0, self.SERVER_ADDR_ROLE, server) + disconnected_servers_item.addChild(item) self.addTopLevelItem(connected_servers_item) self.addTopLevelItem(disconnected_servers_item) @@ -319,7 +323,7 @@ class NetworkChoiceLayout(object): self.split_label = QLabel('') grid.addWidget(self.split_label, 4, 0, 1, 3) - self.nodes_list_widget = NodesListWidget() + self.nodes_list_widget = NodesListWidget(network=self.network) self.nodes_list_widget.followServer.connect(self.follow_server) self.nodes_list_widget.followChain.connect(self.follow_branch) @@ -382,8 +386,7 @@ class NetworkChoiceLayout(object): else: msg = '' self.split_label.setText(msg) - self.nodes_list_widget.update(network=self.network, - servers=self.network.get_servers()) + self.nodes_list_widget.update() self.enable_set_server() def fill_in_proxy_settings(self): @@ -605,7 +608,7 @@ class ServerWidget(QWidget, QtEventListener): self.layout().addLayout(grid) - self.nodes_list_widget = NodesListWidget() + self.nodes_list_widget = NodesListWidget(network=self.network) self.nodes_list_widget.followServer.connect(self.follow_server) self.nodes_list_widget.followChain.connect(self.follow_branch) @@ -615,15 +618,14 @@ class ServerWidget(QWidget, QtEventListener): self.nodes_list_widget.setServer.connect(do_set_server) self.layout().addWidget(self.nodes_list_widget) - self.nodes_list_widget.update(network=self.network, - servers=self.network.get_servers()) + self.nodes_list_widget.update() self.register_callbacks() self.destroyed.connect(lambda: self.unregister_callbacks()) @qt_event_listener def on_event_network_updated(self): - self.nodes_list_widget.update(network=self.network, servers=self.network.get_servers()) + self.nodes_list_widget.update() def follow_branch(self, chain_id): self.network.run_from_another_thread(self.network.follow_chain_given_id(chain_id))