1
0

kivy: do not use an event to call on_wizard_complete, initialize self.app in constructor

This commit is contained in:
ThomasV
2020-12-01 13:18:04 +01:00
parent f187587430
commit 2923c00d38
2 changed files with 18 additions and 35 deletions

View File

@@ -631,7 +631,7 @@ class ElectrumWindow(App, Logger):
else:
return ''
def on_wizard_complete(self, wizard, storage, db):
def on_wizard_complete(self, storage, db):
if storage:
wallet = Wallet(db, storage, config=self.electrum_config)
wallet.start_network(self.daemon.network)
@@ -669,14 +669,13 @@ class ElectrumWindow(App, Logger):
if not storage.file_exists():
wizard = Factory.InstallWizard(self.electrum_config, self.plugins)
wizard.path = storage.path
wizard.bind(on_wizard_complete=self.on_wizard_complete)
wizard.run('new')
else:
assert storage.is_past_initial_decryption()
self.password = pw
db = WalletDB(storage.read(), manual_upgrades=False)
assert not db.requires_upgrade()
self.on_wizard_complete(None, storage, db)
self.on_wizard_complete(storage, db)
def on_stop(self):
self.logger.info('on_stop')

View File

@@ -600,12 +600,11 @@ class WizardDialog(EventsDialog):
self._on_release = False
def _size_dialog(self, dt):
app = App.get_running_app()
if app.ui_mode[0] == 'p':
if self.app.ui_mode[0] == 'p':
self.size = Window.size
else:
#tablet
if app.orientation[0] == 'p':
if self.app.orientation[0] == 'p':
#portrait
self.size = Window.size[0]/1.67, Window.size[1]/1.4
else:
@@ -622,10 +621,9 @@ class WizardDialog(EventsDialog):
if self.wizard.can_go_back():
self.wizard.go_back()
else:
app = App.get_running_app()
if not app.is_exit:
app.is_exit = True
app.show_info(_('Press again to exit'))
if not self.app.is_exit:
self.app.is_exit = True
self.app.show_info(_('Press again to exit'))
else:
self._on_release = False
self.dismiss()
@@ -635,9 +633,8 @@ class WizardDialog(EventsDialog):
Window.unbind(size=self._trigger_size_dialog,
rotation=self._trigger_size_dialog,
on_keyboard=self.on_keyboard)
app = App.get_running_app()
if app.wallet is None and not self._on_release:
app.stop()
if self.app.wallet is None and not self._on_release:
self.app.stop()
def get_params(self, button):
return (None,)
@@ -646,7 +643,7 @@ class WizardDialog(EventsDialog):
self._on_release = True
self.close()
if not button:
self.parent.dispatch('on_wizard_complete', None, None)
self.app.on_wizard_complete(None, None)
return
if button is self.ids.back:
self.wizard.go_back()
@@ -750,8 +747,7 @@ class WizardConfirmDialog(WizardDialog):
def on_parent(self, instance, value):
if value:
app = App.get_running_app()
self._back = _back = partial(app.dispatch, 'on_back')
self._back = _back = partial(self.app.dispatch, 'on_back')
def get_params(self, button):
return (True,)
@@ -778,8 +774,7 @@ class WizardChoiceDialog(WizardDialog):
def on_parent(self, instance, value):
if value:
app = App.get_running_app()
self._back = _back = partial(app.dispatch, 'on_back')
self._back = _back = partial(self.app.dispatch, 'on_back')
def get_params(self, button):
return (button.action,)
@@ -845,7 +840,6 @@ class ShowSeedDialog(WizardDialog):
def on_parent(self, instance, value):
if value:
app = App.get_running_app()
self._back = _back = partial(self.ids.back.dispatch, 'on_release')
def options_dialog(self):
@@ -963,7 +957,6 @@ class RestoreSeedDialog(WizardDialog):
#tis._keyboard.bind(on_key_down=self.on_key_down)
self._back = _back = partial(self.ids.back.dispatch,
'on_release')
app = App.get_running_app()
def on_key_down(self, keyboard, keycode, key, modifiers):
if keycode[0] in (13, 271):
@@ -1061,22 +1054,15 @@ class AddXpubDialog(WizardDialog):
class InstallWizard(BaseWizard, Widget):
'''
events::
`on_wizard_complete` Fired when the wizard is done creating/ restoring
wallet/s.
'''
__events__ = ('on_wizard_complete', )
def on_wizard_complete(self, storage, db):
"""overriden by main_window"""
pass
def __init__(self, *args, **kwargs):
BaseWizard.__init__(self, *args, **kwargs)
self.app = App.get_running_app()
def terminate(self, *, storage=None, db=None, aborted=False):
if storage is None and not aborted:
storage, db = self.create_storage(self.path)
self.dispatch('on_wizard_complete', storage, db)
self.app.on_wizard_complete(storage, db)
def choice_dialog(self, **kwargs):
choices = kwargs['choices']
@@ -1128,8 +1114,7 @@ class InstallWizard(BaseWizard, Widget):
def show_message(self, msg): self.show_error(msg)
def show_error(self, msg):
app = App.get_running_app() # type: ElectrumWindow
Clock.schedule_once(lambda dt: app.show_error(msg))
Clock.schedule_once(lambda dt: self.app.show_error(msg))
def request_password(self, run_next, force_disable_encrypt_cb=False):
if force_disable_encrypt_cb:
@@ -1142,9 +1127,8 @@ class InstallWizard(BaseWizard, Widget):
def on_failure():
self.show_error(_('Password mismatch'))
self.run('request_password', run_next)
app = App.get_running_app()
popup = PasswordDialog(
app,
self.app,
check_password=lambda x:True,
on_success=on_success,
on_failure=on_failure,