diff --git a/src/cutecoin/core/net/node.py b/src/cutecoin/core/net/node.py index 1fd819567498959b38b9d5ed86722d69bdb7ce82..6ed23a0e504717eef72053c9058a81b674d72692 100644 --- a/src/cutecoin/core/net/node.py +++ b/src/cutecoin/core/net/node.py @@ -34,13 +34,7 @@ class Node(QObject): def __init__(self, currency, endpoints, pubkey, block, state): ''' - Constructor of a node - - :param str currency: The currency name of this node community - :param list endpoints: Endpoints ucoinpy objects - :param str pubkey: The node pubkey - :param int block: The node last current block - :param state: The state of the node + Constructor ''' super().__init__() self._endpoints = endpoints @@ -117,7 +111,7 @@ class Node(QObject): return self._pubkey @property - def endpoint(self): + def endpoint(self) -> BMAEndpoint: return next((e for e in self._endpoints if type(e) is BMAEndpoint)) @property @@ -219,3 +213,7 @@ class Node(QObject): time.sleep(interval) except RequestException as e: self._state = Node.OFFLINE + + def __str__(self): + return ','.join([str(self.pubkey), str(self.endpoint.server), str(self.endpoint.port), str(self.block), + str(self.currency), str(self.state), str(self.neighbours)]) diff --git a/src/cutecoin/gui/currency_tab.py b/src/cutecoin/gui/currency_tab.py index d91e9a8b7ae247e317b1af61edaa68f2f0d9ce13..4ccf8b02566ce9806b889f2fefdadc5ebdf21503 100644 --- a/src/cutecoin/gui/currency_tab.py +++ b/src/cutecoin/gui/currency_tab.py @@ -5,6 +5,7 @@ Created on 2 févr. 2014 ''' import time +import logging from PyQt5.QtWidgets import QWidget, QMenu, QAction, QApplication, \ QMessageBox, QDialog, QAbstractItemView, QHeaderView from PyQt5.QtCore import QModelIndex, Qt, pyqtSlot, \ @@ -145,6 +146,13 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget): QIcon(':/icons/informations_icon'), "Informations") + # fix bug refresh_nodes launch on destroyed NetworkTabWidget + logging.debug('Disconnect community.network.nodes_changed') + try: + self.community.network.nodes_changed.disconnect() + except TypeError: + logging.debug('No signals on community.network.nodes_changed') + self.tab_network = NetworkTabWidget(self.community) self.tabs_account.addTab(self.tab_network, QIcon(":/icons/network_icon"), diff --git a/src/cutecoin/models/network.py b/src/cutecoin/models/network.py index 528e1632ac06ea6c5f2ee2995618a35add9b7874..f44a7735e3ea146d5d279a30d5412758979dcd59 100644 --- a/src/cutecoin/models/network.py +++ b/src/cutecoin/models/network.py @@ -94,7 +94,12 @@ class NetworkTableModel(QAbstractTableModel): return self.column_types[section] - def data_node(self, node): + def data_node(self, node: Node) -> tuple: + """ + Return node data tuple + :param ..core.net.node.Node node: Network node + :return: + """ try: person = Person.lookup(node.pubkey, self.community) uid = person.name @@ -112,7 +117,7 @@ class NetworkTableModel(QAbstractTableModel): address = node.endpoint.ipv6 port = node.endpoint.port - return (node.pubkey, is_member, uid, address, port, node.block) + return node.pubkey, is_member, uid, address, port, node.block def data(self, index, role): row = index.row()