plugins: call load_wallet in install wizard

This commit is contained in:
ThomasV 2015-06-10 12:40:08 +02:00
parent 479a6f84e7
commit 060e3aa23e
5 changed files with 12 additions and 5 deletions

View File

@ -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()

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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: