diff --git a/src/cutecoin/core/app.py b/src/cutecoin/core/app.py index d7e8e1bee6fb2a4a66e4b34f8f8dff9d129499b5..0ffcd2ec6ebf9e4f88d23569b8126c75a81122ca 100644 --- a/src/cutecoin/core/app.py +++ b/src/cutecoin/core/app.py @@ -254,8 +254,11 @@ class Application(QObject): for community in account.communities: community.network.blockchain_rollback.connect(community.rollback_cache) - community.network.new_block_mined.connect(lambda b, co=community: account.refresh_transactions(self, co)) - community.network.blockchain_rollback.connect(lambda b, co=community: account.rollback_transaction(self, co)) + community.network.new_block_mined.connect(lambda b, co=community: + account.refresh_transactions(self, co)) + community.network.blockchain_rollback.connect(lambda b, co=community: + account.rollback_transaction(self, co)) + community.network.root_nodes_changed.connect(lambda acc=account: self.save(acc)) def load_cache(self, account): """ diff --git a/src/cutecoin/core/net/network.py b/src/cutecoin/core/net/network.py index 6d3bd0f3b7ba240c42b0f23bd974c5b0e2c4365c..4d49b68ee3dcd9b32d3a61e971766e3ae6d0a9ae 100644 --- a/src/cutecoin/core/net/network.py +++ b/src/cutecoin/core/net/network.py @@ -23,6 +23,7 @@ class Network(QObject): given community. """ nodes_changed = pyqtSignal() + root_nodes_changed = pyqtSignal() new_block_mined = pyqtSignal(int) blockchain_rollback = pyqtSignal(int) @@ -238,12 +239,16 @@ class Network(QObject): n.state = Node.DESYNCED def _check_nodes_unique(self): + """ + Check that all nodes are unique by them pubkeys + """ pubkeys = set() unique_nodes = [] for n in self.nodes: if n.pubkey not in pubkeys: unique_nodes.append(n) pubkeys.add(n.pubkey) + self._nodes = unique_nodes def fork_window(self, members_pubkeys): @@ -272,12 +277,14 @@ class Network(QObject): Add a node to the root nodes list """ self._root_nodes.append(node) + self.root_nodes_changed.emit() def remove_root_node(self, index): """ Remove a node from the root nodes list """ self._root_nodes.pop(index) + self.root_nodes_changed.emit() def is_root_node(self, node): """ diff --git a/src/cutecoin/gui/network_tab.py b/src/cutecoin/gui/network_tab.py index 245361b78df2ccb883768a4c628d64188f574466..dee4a989568ff299846383f8858ae75e86085fe4 100644 --- a/src/cutecoin/gui/network_tab.py +++ b/src/cutecoin/gui/network_tab.py @@ -91,11 +91,13 @@ class NetworkTabWidget(QWidget, Ui_NetworkTabWidget): def set_root_node(self): node = self.sender().data() self.community.network.add_root_node(node) + self.table_network.model().sourceModel().refresh_nodes() @pyqtSlot() def unset_root_node(self): index = self.sender().data() self.community.network.remove_root_node(index) + self.table_network.model().sourceModel().refresh_nodes() @pyqtSlot() def open_node_in_browser(self):