From 08fd7d95ab663cd0f6be02d6e4b7fd0b0c0f631b Mon Sep 17 00:00:00 2001 From: ThomasV Date: Thu, 30 Mar 2017 10:13:58 +0200 Subject: [PATCH] kivy: use NumericProperty for blocks and nodes --- gui/kivy/main_window.py | 6 +++++- gui/kivy/uix/dialogs/checkpoint_dialog.py | 10 ++-------- gui/kivy/uix/dialogs/settings.py | 7 +------ 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/gui/kivy/main_window.py b/gui/kivy/main_window.py index e270ccaa..326287df 100644 --- a/gui/kivy/main_window.py +++ b/gui/kivy/main_window.py @@ -22,7 +22,7 @@ from kivy.core.window import Window from kivy.logger import Logger from kivy.utils import platform from kivy.properties import (OptionProperty, AliasProperty, ObjectProperty, - StringProperty, ListProperty, BooleanProperty) + StringProperty, ListProperty, BooleanProperty, NumericProperty) from kivy.cache import Cache from kivy.clock import Clock from kivy.factory import Factory @@ -75,6 +75,8 @@ class ElectrumWindow(App): electrum_config = ObjectProperty(None) language = StringProperty('en') + num_blocks = NumericProperty(0) + num_nodes = NumericProperty(0) def set_URI(self, uri): self.switch_to('send') @@ -532,6 +534,8 @@ class ElectrumWindow(App): def on_network(self, event, *args): if event == 'updated': + self.num_blocks = self.network.get_local_height() + self.num_nodes = len(self.network.get_interfaces()) self._trigger_update_wallet() elif event == 'status': self._trigger_update_status() diff --git a/gui/kivy/uix/dialogs/checkpoint_dialog.py b/gui/kivy/uix/dialogs/checkpoint_dialog.py index 5ae413cf..e99944c3 100644 --- a/gui/kivy/uix/dialogs/checkpoint_dialog.py +++ b/gui/kivy/uix/dialogs/checkpoint_dialog.py @@ -22,11 +22,11 @@ Builder.load_string(''' TopLabel: height: '48dp' id: bc_height - text: '' + text: _("Verified headers: %d blocks.")% app.num_blocks TopLabel: height: '48dp' id: bc_status - text: '' + text: _("Connected to %d nodes.")% app.num_nodes if app.num_nodes else _("Not connected?") Widget: size_hint: 1, 0.1 TopLabel: @@ -88,12 +88,6 @@ class CheckpointDialog(Factory.Popup): self.cp_height, self.cp_value = self.network.blockchain.get_checkpoint() self.callback = callback - n_nodes = len(network.get_interfaces()) - n_blocks = network.get_local_height() - self.ids.bc_height.text = _("Verified headers: %d blocks.")%n_blocks - self.ids.bc_status.text = _("Connected to %d nodes.")%n_nodes if n_nodes else _("Not connected?") - - def on_height_str(self): try: new_height = int(self.ids.height_input.text) diff --git a/gui/kivy/uix/dialogs/settings.py b/gui/kivy/uix/dialogs/settings.py index c453cf29..a786c8b2 100644 --- a/gui/kivy/uix/dialogs/settings.py +++ b/gui/kivy/uix/dialogs/settings.py @@ -121,7 +121,7 @@ Builder.load_string(''' action: partial(root.coinselect_dialog, self) CardSeparator SettingsItem: - status: root.blockchain_status() + status: "%d blocks"% app.num_blocks title: _('Blockchain') + ': ' + self.status description: _("Configure checkpoints") action: partial(root.blockchain_dialog, self) @@ -191,17 +191,12 @@ class SettingsDialog(Factory.Popup): self._coinselect_dialog = ChoiceDialog(_('Coin selection'), choosers, chooser_name, cb) self._coinselect_dialog.open() - def blockchain_status(self): - height = self.app.network.get_local_height() - return "%d blocks"% height - def blockchain_dialog(self, item, dt): from checkpoint_dialog import CheckpointDialog if self._blockchain_dialog is None: def callback(height, value): if value: self.app.network.blockchain.set_checkpoint(height, value) - item.status = self.blockchain_status() self._blockchain_dialog = CheckpointDialog(self.app.network, callback) self._blockchain_dialog.open()