From e18ddd0096250d6ebcda2bc16a9ea49335d0e7c7 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Thu, 6 Aug 2015 11:12:15 +0200 Subject: [PATCH] do not show plugins that register a custom wallet type in the plugins toggle dialog --- gui/qt/main_window.py | 2 ++ plugins/trezor.py | 16 +++++++--------- plugins/trustedcoin.py | 6 ------ 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py index 5b4a27c7..047d28c5 100644 --- a/gui/qt/main_window.py +++ b/gui/qt/main_window.py @@ -2835,6 +2835,8 @@ class ElectrumWindow(QMainWindow): for i, descr in enumerate(descriptions): name = descr['name'] p = plugins.get(name) + if descr.get('registers_wallet_type'): + continue try: cb = QCheckBox(descr['fullname']) cb.setEnabled(is_available(name, self.wallet)) diff --git a/plugins/trezor.py b/plugins/trezor.py index e783898a..781c3c80 100644 --- a/plugins/trezor.py +++ b/plugins/trezor.py @@ -22,6 +22,7 @@ from electrum.util import print_error, print_msg from electrum.wallet import pw_decode, bip32_private_derivation, bip32_root from electrum_gui.qt.util import * +from electrum_gui.qt.main_window import StatusBarButton try: from trezorlib.client import types @@ -49,7 +50,6 @@ class Plugin(BasePlugin): def __init__(self, config, name): BasePlugin.__init__(self, config, name) self._is_available = self._init() - self._requires_settings = True self.wallet = None self.handler = None self.client = None @@ -70,9 +70,6 @@ class Plugin(BasePlugin): return False return True - def requires_settings(self): - return self._requires_settings - def set_enabled(self, enabled): self.wallet.storage.put('use_' + self.name, enabled) @@ -132,21 +129,24 @@ class Plugin(BasePlugin): self.wallet = wallet self.window = window self.wallet.plugin = self - + self.trezor_button = StatusBarButton( QIcon(":icons/trustedcoin.png"), _("Network"), self.settings_dialog) + self.window.statusBar().addPermanentWidget(self.trezor_button) if self.handler is None: self.handler = TrezorQtHandler(self.window.app) - try: self.get_client().ping('t') except BaseException as e: QMessageBox.information(self.window, _('Error'), _("Trezor device not detected.\nContinuing in watching-only mode." + '\n\nReason:\n' + str(e)), _('OK')) self.wallet.force_watching_only = True return - if self.wallet.addresses() and not self.wallet.check_proper_device(): QMessageBox.information(self.window, _('Error'), _("This wallet does not match your Trezor device"), _('OK')) self.wallet.force_watching_only = True + @hook + def close_wallet(self): + self.window.statusBar().removeWidget(self.trezor_button) + @hook def installwizard_load_wallet(self, wallet, window): self.load_wallet(wallet, window) @@ -192,8 +192,6 @@ class Plugin(BasePlugin): finally: self.handler.stop() - def settings_widget(self, window): - return EnterButton(_('Settings'), self.settings_dialog) def settings_dialog(self): get_label = lambda: self.get_client().features.label diff --git a/plugins/trustedcoin.py b/plugins/trustedcoin.py index 8fca7805..72ed5517 100644 --- a/plugins/trustedcoin.py +++ b/plugins/trustedcoin.py @@ -228,9 +228,6 @@ class Plugin(BasePlugin): return True return False - def requires_settings(self): - return True - def set_enabled(self, enabled): self.wallet.storage.put('use_' + self.name, enabled) @@ -538,9 +535,6 @@ class Plugin(BasePlugin): return return pw.get_amount() - def settings_widget(self, window): - return EnterButton(_('Settings'), self.settings_dialog) - def settings_dialog(self): self.waiting_dialog = WaitingDialog(self.window, 'please wait...', self.request_billing_info, self.show_settings_dialog) self.waiting_dialog.start()