From 523de69b5eeb754e89bf4aa0b1cb4433266aca77 Mon Sep 17 00:00:00 2001 From: SomberNight Date: Tue, 24 Oct 2017 04:42:52 +0200 Subject: [PATCH] Introduced BasePlugin.can_user_disable(). TrustedCoin plugin can't be disabled by user. --- gui/qt/main_window.py | 7 +++++-- lib/plugins.py | 3 +++ plugins/trustedcoin/trustedcoin.py | 3 +++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py index 6d6486df0..e9abdb481 100644 --- a/gui/qt/main_window.py +++ b/gui/qt/main_window.py @@ -2853,8 +2853,11 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError): continue try: cb = QCheckBox(descr['fullname']) - cb.setEnabled(plugins.is_available(name, self.wallet)) - cb.setChecked(p is not None and p.is_enabled()) + plugin_is_loaded = p is not None + cb_enabled = (not plugin_is_loaded and plugins.is_available(name, self.wallet) + or plugin_is_loaded and p.can_user_disable()) + cb.setEnabled(cb_enabled) + cb.setChecked(plugin_is_loaded and p.is_enabled()) grid.addWidget(cb, i, 0) enable_settings_widget(p, name, i) cb.clicked.connect(partial(do_toggle, cb, name, i)) diff --git a/lib/plugins.py b/lib/plugins.py index d89f91059..b51ec1f12 100644 --- a/lib/plugins.py +++ b/lib/plugins.py @@ -253,6 +253,9 @@ class BasePlugin(PrintError): def is_available(self): return True + def can_user_disable(self): + return True + def settings_dialog(self): pass diff --git a/plugins/trustedcoin/trustedcoin.py b/plugins/trustedcoin/trustedcoin.py index 4edabdb6c..33f0a7040 100644 --- a/plugins/trustedcoin/trustedcoin.py +++ b/plugins/trustedcoin/trustedcoin.py @@ -332,6 +332,9 @@ class TrustedCoinPlugin(BasePlugin): def is_enabled(self): return True + def can_user_disable(self): + return False + @hook def get_tx_extra_fee(self, wallet, tx): if type(wallet) != Wallet_2fa: