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