From 2bb980c84c9e2fefd4685d48ffc47df63ad2d672 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Fri, 21 Jul 2017 00:09:47 +0200 Subject: [PATCH] kivy: trigger_update_interfaces --- gui/kivy/main_window.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/gui/kivy/main_window.py b/gui/kivy/main_window.py index 64f6a732b..4c869077c 100644 --- a/gui/kivy/main_window.py +++ b/gui/kivy/main_window.py @@ -268,6 +268,7 @@ class ElectrumWindow(App): self._trigger_update_wallet = Clock.create_trigger(self.update_wallet, .5) self._trigger_update_status = Clock.create_trigger(self.update_status, .5) self._trigger_update_history = Clock.create_trigger(self.update_history, .5) + self._trigger_update_interfaces = Clock.create_trigger(self.update_interfaces, .5) # cached dialogs self._settings_dialog = None self._password_dialog = None @@ -589,20 +590,24 @@ class ElectrumWindow(App): # connect callbacks if self.network: - interests = ['updated', 'status', 'new_transaction', 'verified'] - self.network.register_callback(self.on_network, interests) + interests = ['updated', 'status', 'new_transaction', 'verified', 'interfaces'] + self.network.register_callback(self.on_network_event, interests) self.tabs = self.root.ids['tabs'] - def on_network(self, event, *args): - chain = self.network.blockchain() + def update_interfaces(self, dt): + self.num_nodes = len(self.network.get_interfaces()) self.num_chains = len(self.network.get_blockchains()) + chain = self.network.blockchain() self.blockchain_checkpoint = chain.get_checkpoint() self.blockchain_name = chain.get_name() if self.network.interface: self.server_host = self.network.interface.host - if event == 'updated': - self.num_blocks = self.network.get_local_height() - self.num_nodes = len(self.network.get_interfaces()) + + def on_network_event(self, event, *args): + Logger.info('network event: '+ event) + if event == 'interfaces': + self._trigger_update_interfaces() + elif event == 'updated': self._trigger_update_wallet() self._trigger_update_status() elif event == 'status': @@ -624,6 +629,7 @@ class ElectrumWindow(App): run_hook('load_wallet', wallet, self) def update_status(self, *dt): + self.num_blocks = self.network.get_local_height() if not self.wallet: self.status = _("No Wallet") return