tplugins: call load_wallet in install wizard - electrum - Electrum Bitcoin wallet (HTM) git clone https://git.parazyd.org/electrum (DIR) Log (DIR) Files (DIR) Refs (DIR) Submodules --- (DIR) commit 060e3aa23e6affc5441b6173b17b7aa76e7fa964 (DIR) parent 479a6f84e70eb28b75a845584a3f41493a515328 (HTM) Author: ThomasV <thomasv@gitorious> Date: Wed, 10 Jun 2015 12:40:08 +0200 plugins: call load_wallet in install wizard Diffstat: M gui/qt/__init__.py | 2 +- M gui/qt/installwizard.py | 8 ++++++-- M gui/qt/main_window.py | 2 +- M lib/plugins.py | 2 ++ M plugins/trezor.py | 3 ++- 5 files changed, 12 insertions(+), 5 deletions(-) --- (DIR) diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py t@@ -153,7 +153,7 @@ class ElectrumGui: QMessageBox.information(None, _('Warning'), _('The file was removed'), _('OK')) return return - wizard = installwizard.InstallWizard(self.config, self.network, storage) + wizard = installwizard.InstallWizard(self.config, self.network, storage, self.app) wizard.show() if action == 'new': action, wallet_type = wizard.restore_or_create() (DIR) diff --git a/gui/qt/installwizard.py b/gui/qt/installwizard.py t@@ -15,7 +15,7 @@ from amountedit import AmountEdit import sys import threading -from electrum.plugins import always_hook +from electrum.plugins import always_hook, run_hook from electrum.mnemonic import prepare_seed MSG_ENTER_ANYTHING = _("Please enter a wallet seed, a master public key, a list of Bitcoin addresses, or a list of private keys") t@@ -28,8 +28,9 @@ MSG_VERIFY_SEED = _("Your seed is important!") + "\n" + _("To make sure th class InstallWizard(QDialog): - def __init__(self, config, network, storage): + def __init__(self, config, network, storage, app): QDialog.__init__(self) + self.app = app self.config = config self.network = network self.storage = storage t@@ -345,6 +346,9 @@ class InstallWizard(QDialog): # fixme: password is only needed for multiple accounts password = None + # load wallet in plugins + run_hook('load_wallet', wallet, self) + while action is not None: util.print_error("installwizard:", wallet, action) (DIR) diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py t@@ -2635,7 +2635,7 @@ class ElectrumWindow(QMainWindow): try: cb = QCheckBox(descr['fullname']) cb.setEnabled(is_available(name, self.wallet)) - cb.setChecked(p is not None) + cb.setChecked(p is not None and p.is_enabled()) grid.addWidget(cb, i, 0) if p and p.requires_settings(): w = p.settings_widget(self) (DIR) diff --git a/lib/plugins.py b/lib/plugins.py t@@ -63,9 +63,11 @@ def init_plugins(config, is_local, gui_name): def constructor(name, storage): if plugins.get(name) is None: try: + print_error(_("Loading plugin by constructor:"), name) p = loader(name) plugins[name] = p.Plugin(config, name) except: + print_msg(_("Error: cannot initialize plugin"), name) return return plugins[name].constructor(storage) (DIR) diff --git a/plugins/trezor.py b/plugins/trezor.py t@@ -98,6 +98,7 @@ class Plugin(BasePlugin): @hook def load_wallet(self, wallet, window): + self.print_error("load_wallet") self.wallet = wallet self.window = window self.wallet.plugin = self t@@ -106,7 +107,7 @@ class Plugin(BasePlugin): self.handler = TrezorQtHandler(self.window.app) if self.trezor_is_connected(): - if not self.wallet.check_proper_device(): + 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 else: