URI: 
       tclose wallet when window is closed - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit bbe64621ca983375365c547f89311f245bc473fb
   DIR parent f84d873f6221ad4e24b97750a41fdd9b5fe5b166
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Tue,  1 Sep 2015 09:35:32 +0200
       
       close wallet when window is closed
       
       Diffstat:
         M gui/qt/__init__.py                  |      13 ++++++-------
         M gui/qt/main_window.py               |       3 +++
       
       2 files changed, 9 insertions(+), 7 deletions(-)
       ---
   DIR diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py
       t@@ -69,7 +69,7 @@ class ElectrumGui:
                set_language(config.get('language'))
                self.network = network
                self.config = config
       -        self.windows = {}
       +        self.windows = []
                self.efilter = OpenFileEventFilter(self.windows)
                self.app = QApplication(sys.argv)
                self.app.installEventFilter(self.efilter)
       t@@ -111,14 +111,16 @@ class ElectrumGui:
        
            def start_new_window(self, config):
                path = config.get_wallet_path()
       -        if path not in self.windows:
       +        for w in self.windows:
       +            if w.config.get_wallet_path() == path:
       +                break
       +        else:
                    w = ElectrumWindow(config, self.network, self)
                    w.connect_slots(self.timer)
                    w.load_wallet_file(path)
                    w.show()
       -            self.windows[path] = w
       +            self.windows.append(w)
        
       -        w = self.windows[path]
                url = config.get('url')
                if url:
                    w.pay_to_URI(url)
       t@@ -162,8 +164,5 @@ class ElectrumGui:
                event = QtCore.QEvent(QtCore.QEvent.Clipboard)
                self.app.sendEvent(self.app.clipboard(), event)
        
       -        for window in self.windows.values():
       -            window.close_wallet()
       -
                if self.tray:
                    self.tray.hide()
   DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
       t@@ -217,6 +217,7 @@ class ElectrumWindow(QMainWindow):
                    self.account_selector.hide()
        
            def close_wallet(self):
       +        print_error('close_wallet', self.config.get_wallet_path())
                if self.wallet:
                    self.wallet.storage.put('accounts_expanded', self.accounts_expanded)
                    self.wallet.stop_threads()
       t@@ -551,7 +552,9 @@ class ElectrumWindow(QMainWindow):
                if self.qr_window:
                    self.qr_window.close()
                QMainWindow.close(self)
       +        self.close_wallet()
                run_hook('close_main_window')
       +        self.gui_object.windows.remove(self)
        
            def connect_slots(self, sender):
                self.connect(sender, QtCore.SIGNAL('timersignal'), self.timer_actions)