kivy: update settings dialog before display

This commit is contained in:
ThomasV 2016-03-06 12:57:21 +01:00
parent 8bc0fcf541
commit 6ca699459a
2 changed files with 11 additions and 10 deletions

View File

@ -432,6 +432,7 @@ class ElectrumWindow(App):
if self._settings_dialog is None: if self._settings_dialog is None:
from uix.dialogs.settings import SettingsDialog from uix.dialogs.settings import SettingsDialog
self._settings_dialog = SettingsDialog(self) self._settings_dialog = SettingsDialog(self)
self._settings_dialog.update()
self._settings_dialog.open() self._settings_dialog.open()
def popup_dialog(self, name): def popup_dialog(self, name):

View File

@ -47,6 +47,8 @@ Builder.load_string('''
<SettingsDialog@Popup> <SettingsDialog@Popup>
id: settings id: settings
title: _('Electrum Settings') title: _('Electrum Settings')
watching_only: False
use_encryption: False
BoxLayout: BoxLayout:
orientation: 'vertical' orientation: 'vertical'
ScrollView: ScrollView:
@ -63,8 +65,8 @@ Builder.load_string('''
action: partial(root.language_dialog, self) action: partial(root.language_dialog, self)
CardSeparator CardSeparator
SettingsItem: SettingsItem:
status: root.password_status() status: 'watching-only' if root.watching_only else ('ON' if root.use_encryption else 'OFF')
disabled: app.wallet.is_watching_only() disabled: root.watching_only
title: _('PIN code') + ': ' + self.status title: _('PIN code') + ': ' + self.status
description: _("Change your PIN code.") description: _("Change your PIN code.")
action: partial(root.change_password, self) action: partial(root.change_password, self)
@ -125,18 +127,16 @@ class SettingsDialog(Factory.Popup):
self._unit_dialog = None self._unit_dialog = None
self._coinselect_dialog = None self._coinselect_dialog = None
def update(self):
self.wallet = self.app.wallet
self.watching_only = self.wallet.is_watching_only()
self.use_encryption = self.wallet.use_encryption
def get_language_name(self): def get_language_name(self):
return languages.get(self.config.get('language', 'en_UK'), '') return languages.get(self.config.get('language', 'en_UK'), '')
def password_status(self):
if self.app.wallet.is_watching_only():
return 'watching-only'
return 'ON' if self.app.wallet.use_encryption else 'OFF'
def change_password(self, item, dt): def change_password(self, item, dt):
def cb(): self.app.change_password(self.update)
item.status = self.password_status()
self.app.change_password(cb)
def language_dialog(self, item, dt): def language_dialog(self, item, dt):
if self._language_dialog is None: if self._language_dialog is None: