URI: 
       tMove install wizard invocations to one place - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit bcabfaeccb24fc03a28eab3bb8f5f26d71908da9
   DIR parent 93d05e8cfe9e419a316a8ac78b21a4112f964710
  HTML Author: Neil Booth <kyuupichan@gmail.com>
       Date:   Thu, 31 Dec 2015 12:02:16 +0900
       
       Move install wizard invocations to one place
       
       Fixes bugs whereby install wizard invoked from the GUI was missing
       various things, such as updating recently used list, setting up
       ttimers, etc.
       
       Diffstat:
         M gui/qt/__init__.py                  |      52 ++++++++++++++++---------------
         M gui/qt/main_window.py               |       6 +-----
       
       2 files changed, 28 insertions(+), 30 deletions(-)
       ---
   DIR diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py
       t@@ -150,45 +150,47 @@ class ElectrumGui(MessageBoxMixin):
                        self.show_warning(str(e))
                        return
                    action = wallet.get_action()
       -        # run wizard
       +
                if action is not None:
       -            wizard = InstallWizard(self.app, self.config, self.network, storage)
       -            wallet = wizard.run(action)
       -            # keep current wallet
       -            if not wallet:
       -                return
       -        else:
       -            wallet.start_threads(self.network)
       +            return self.install_wizard(storage, action)
        
       -        return wallet
       +        wallet.start_threads(self.network)
       +        return self.create_window_for_wallet(wallet)
       +
       +    def install_wizard(self, storage, action):
       +        wizard = InstallWizard(self.app, self.config, self.network, storage)
       +        wallet = wizard.run(action)
       +        return self.create_window_for_wallet(wallet)
        
            def new_window(self, path, uri=None):
                # Use a signal as can be called from daemon thread
                self.app.emit(SIGNAL('new_window'), path, uri)
        
       +    def create_window_for_wallet(self, wallet):
       +        if not wallet:
       +            return
       +        w = ElectrumWindow(self, wallet)
       +        w.connect_slots(self.timer)
       +        w.update_recently_visited(wallet.storage.path)
       +        # initial configuration
       +        if self.config.get('hide_gui') is True and self.tray.isVisible():
       +            w.hide()
       +        else:
       +            w.show()
       +        self.windows.append(w)
       +        self.build_tray_menu()
       +        run_hook('on_new_window', w)
       +        return w
       +
            def start_new_window(self, path, uri):
                for w in self.windows:
                    if w.wallet.storage.path == path:
                        w.bring_to_top()
                        break
                else:
       -            wallet = self.load_wallet_file(path)
       -            if not wallet:
       -                return
       -            w = ElectrumWindow(self, wallet)
       -            w.connect_slots(self.timer)
       -            # add to recently visited
       -            w.update_recently_visited(path)
       -            # initial configuration
       -            if self.config.get('hide_gui') is True and self.tray.isVisible():
       -                w.hide()
       -            else:
       -                w.show()
       -            self.windows.append(w)
       -            self.build_tray_menu()
       -            run_hook('on_new_window', w)
       +            w = self.load_wallet_file(path)
        
       -        if uri:
       +        if uri and w:
                    w.pay_to_URI(uri)
        
                return w
   DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
       t@@ -50,7 +50,6 @@ from network_dialog import NetworkDialog
        from qrcodewidget import QRCodeWidget, QRDialog
        from qrtextedit import ShowQRTextEdit
        from transaction_dialog import show_transaction
       -from installwizard import InstallWizard
        
        
        
       t@@ -385,10 +384,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
                if storage.file_exists:
                    self.show_critical(_("File exists"))
                    return
       -        wizard = InstallWizard(self.app, self.config, self.network, storage)
       -        wallet = wizard.run('new')
       -        if wallet:
       -            self.new_window(full_path)
       +        self.gui_object.install_wizard(storage, 'new')
        
            def init_menubar(self):
                menubar = QMenuBar()