electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit f0657a35071d74e7ee0e0897601dc670709cb907
parent dae187badabf4a8e458a217455e33a8a97c6f2f2
Author: SomberNight <somber.night@protonmail.com>
Date:   Fri, 11 May 2018 00:03:01 +0200

qt: show start-up wizard in case of exception

related: #4355

Diffstat:
Mgui/qt/__init__.py | 10+++++++---
Mgui/qt/installwizard.py | 4++--
2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py @@ -185,7 +185,7 @@ class ElectrumGui: run_hook('on_new_window', w) return w - def start_new_window(self, path, uri): + def start_new_window(self, path, uri, app_is_starting=False): '''Raises the window for the wallet if it is open. Otherwise opens the wallet and creates a new window for it''' try: @@ -195,7 +195,11 @@ class ElectrumGui: d = QMessageBox(QMessageBox.Warning, _('Error'), _('Cannot load wallet') + ' (1):\n' + str(e)) d.exec_() - return + if app_is_starting: + # do not return so that the wizard can appear + wallet = None + else: + return if not wallet: storage = WalletStorage(path, manual_upgrades=True) wizard = InstallWizard(self.config, self.app, self.plugins, storage) @@ -270,7 +274,7 @@ class ElectrumGui: self.timer.start() self.config.open_last_wallet() path = self.config.get_wallet_path() - if not self.start_new_window(path, self.config.get('url')): + if not self.start_new_window(path, self.config.get('url'), app_is_starting=True): return signal.signal(signal.SIGINT, lambda *args: self.app.quit()) diff --git a/gui/qt/installwizard.py b/gui/qt/installwizard.py @@ -227,10 +227,10 @@ class InstallWizard(QDialog, MessageBoxMixin, BaseWizard): self.name_e.setText(n) while True: - if self.storage.file_exists() and not self.storage.is_encrypted(): - break if self.loop.exec_() != 2: # 2 = next return + if self.storage.file_exists() and not self.storage.is_encrypted(): + break if not self.storage.file_exists(): break wallet_from_memory = get_wallet_from_daemon(self.storage.path)