From 9450780afe174ad7de3a6760357aaccfc062c498 Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Sat, 17 Oct 2015 14:49:51 +0200 Subject: [PATCH] Save when root node changes --- src/cutecoin/core/app.py | 7 +++++-- src/cutecoin/core/net/network.py | 7 +++++++ src/cutecoin/gui/network_tab.py | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/cutecoin/core/app.py b/src/cutecoin/core/app.py index d7e8e1be..0ffcd2ec 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 6d3bd0f3..4d49b68e 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 245361b7..dee4a989 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): -- GitLab