kivy: use NumericProperty for blocks and nodes

This commit is contained in:
ThomasV 2017-03-30 10:13:58 +02:00
parent 98dcc7c094
commit 08fd7d95ab
3 changed files with 8 additions and 15 deletions

View File

@ -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()

View File

@ -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)

View File

@ -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()