commit 060e3aa23e6affc5441b6173b17b7aa76e7fa964
parent 479a6f84e70eb28b75a845584a3f41493a515328
Author: ThomasV <thomasv@gitorious>
Date: Wed, 10 Jun 2015 12:40:08 +0200
plugins: call load_wallet in install wizard
Diffstat:
5 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py
@@ -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()
diff --git a/gui/qt/installwizard.py b/gui/qt/installwizard.py
@@ -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")
@@ -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
@@ -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)
diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
@@ -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)
diff --git a/lib/plugins.py b/lib/plugins.py
@@ -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)
diff --git a/plugins/trezor.py b/plugins/trezor.py
@@ -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
@@ -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: