electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit f7b39f49524b8f907783e82533d1196f3c232a79
parent 58fe42cea2c7aae9d42fd14a01dcc896c6c8882c
Author: Neil Booth <kyuupichan@gmail.com>
Date:   Tue, 12 Jan 2016 20:19:21 +0900

A different approach to d5aa646

Only clean up the MainWindow once.

Diffstat:
Mgui/qt/__init__.py | 7++-----
Mgui/qt/main_window.py | 16++++++++++++----
2 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py @@ -163,16 +163,13 @@ class ElectrumGui: return w def close_window(self, window): - # It seems that in some cases this can be called before the - # window is added to the windows list... - if window in self.windows: - self.windows.remove(window) - run_hook('on_close_window', window) + self.windows.remove(window) self.build_tray_menu() # save wallet path of last open window if self.config.get('wallet_path') is None and not self.windows: path = window.wallet.storage.path self.config.set_key('gui_last_wallet', path) + run_hook('on_close_window', window) def main(self): self.timer.start() diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py @@ -113,6 +113,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): self.contacts = gui_object.contacts self.tray = gui_object.tray self.app = gui_object.app + self.cleaned_up = False self.create_status_bar() self.need_update = threading.Event() @@ -2818,19 +2819,26 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): NetworkDialog(self.wallet.network, self.config, self).do_exec() def closeEvent(self, event): + # It seems in some rare cases this closeEvent() is called twice + if not self.cleaned_up: + self.cleaned_up = True + self.clean_up() + event.accept() + + def clean_up(self): if self.network: self.network.unregister_callback(self.on_network) self.config.set_key("is_maximized", self.isMaximized()) if not self.isMaximized(): g = self.geometry() - self.wallet.storage.put("winpos-qt", [g.left(),g.top(),g.width(),g.height()]) - self.config.set_key("console-history", self.console.history[-50:], True) + self.wallet.storage.put("winpos-qt", [g.left(),g.top(), + g.width(),g.height()]) + self.config.set_key("console-history", self.console.history[-50:], + True) if self.qr_window: self.qr_window.close() self.close_wallet() self.gui_object.close_window(self) - event.accept() - def plugins_dialog(self): self.pluginsdialog = d = WindowModalDialog(self, _('Electrum Plugins'))