From 5b84cbe9fbfb6570a5b5062262a02ccf3a851e6c Mon Sep 17 00:00:00 2001 From: ThomasV Date: Fri, 12 Sep 2014 19:58:59 +0200 Subject: [PATCH] close_wallet --- gui/qt/__init__.py | 2 +- gui/qt/main_window.py | 11 ++++++----- plugins/trezor.py | 5 +++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py index 21ad1331..025b7e1b 100644 --- a/gui/qt/__init__.py +++ b/gui/qt/__init__.py @@ -220,6 +220,6 @@ class ElectrumGui: event = QtCore.QEvent(QtCore.QEvent.Clipboard) self.app.sendEvent(self.app.clipboard(), event) - wallet.stop_threads() + w.close_wallet() diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py index dbfeaaea..65dc4f5a 100644 --- a/gui/qt/main_window.py +++ b/gui/qt/main_window.py @@ -200,10 +200,12 @@ class ElectrumWindow(QMainWindow): else: self.account_selector.hide() + def close_wallet(self): + self.wallet.stop_threads() + run_hook('close_wallet') def load_wallet(self, wallet): import electrum - self.wallet = wallet self.update_wallet_format() # address used to create a dummy transaction and estimate transaction fee @@ -257,12 +259,11 @@ class ElectrumWindow(QMainWindow): self.show_message("file not found "+ filename) return - self.wallet.stop_threads() - - # create new wallet + # close current wallet + self.close_wallet() + # load new wallet wallet = Wallet(storage) wallet.start_threads(self.network) - self.load_wallet(wallet) diff --git a/plugins/trezor.py b/plugins/trezor.py index 68fda7be..b7b62bdc 100644 --- a/plugins/trezor.py +++ b/plugins/trezor.py @@ -79,6 +79,11 @@ class Plugin(BasePlugin): def enable(self): return BasePlugin.enable(self) + @hook + def close_wallet(self): + print_error("trezor: clear session") + self.wallet.client.clear_session() + @hook def load_wallet(self, wallet): self.wallet = wallet