plugins: call load_wallet in install wizard
This commit is contained in:
parent
479a6f84e7
commit
060e3aa23e
|
@ -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()
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue