URI: 
       tqt: show start-up wizard in case of exception - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit f0657a35071d74e7ee0e0897601dc670709cb907
   DIR parent dae187badabf4a8e458a217455e33a8a97c6f2f2
  HTML 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:
         M gui/qt/__init__.py                  |      10 +++++++---
         M gui/qt/installwizard.py             |       4 ++--
       
       2 files changed, 9 insertions(+), 5 deletions(-)
       ---
   DIR diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py
       t@@ -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:
       t@@ -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)
       t@@ -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())
        
   DIR diff --git a/gui/qt/installwizard.py b/gui/qt/installwizard.py
       t@@ -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)