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)