commit bbe64621ca983375365c547f89311f245bc473fb
parent f84d873f6221ad4e24b97750a41fdd9b5fe5b166
Author: ThomasV <thomasv@gitorious>
Date: Tue, 1 Sep 2015 09:35:32 +0200
close wallet when window is closed
Diffstat:
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py
@@ -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)
@@ -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)
@@ -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()
diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
@@ -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()
@@ -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)