fix #862: ask passphrase only once
This commit is contained in:
parent
2ffd419e66
commit
2996ec927f
|
@ -23,6 +23,7 @@ from electrum.wallet import pw_decode, bip32_private_derivation, bip32_root
|
|||
|
||||
from electrum_gui.qt.util import *
|
||||
from electrum_gui.qt.main_window import StatusBarButton, ElectrumWindow
|
||||
from electrum_gui.qt.installwizard import InstallWizard
|
||||
|
||||
try:
|
||||
from trezorlib.client import types
|
||||
|
@ -133,7 +134,7 @@ class Plugin(BasePlugin):
|
|||
if type(window) is ElectrumWindow:
|
||||
self.window.statusBar().addPermanentWidget(self.trezor_button)
|
||||
if self.handler is None:
|
||||
self.handler = TrezorQtHandler(self.window.app)
|
||||
self.handler = TrezorQtHandler(self.window)
|
||||
try:
|
||||
self.get_client().ping('t')
|
||||
except BaseException as e:
|
||||
|
@ -625,18 +626,23 @@ class TrezorQtHandler:
|
|||
self.done.set()
|
||||
|
||||
def passphrase_dialog(self):
|
||||
from electrum_gui.qt.password_dialog import make_password_dialog, run_password_dialog
|
||||
d = QDialog()
|
||||
d.setModal(1)
|
||||
d.setLayout(make_password_dialog(d, None, self.message, False))
|
||||
confirmed, p, passphrase = run_password_dialog(d, None, None)
|
||||
if not confirmed:
|
||||
QMessageBox.critical(None, _('Error'), _("Password request canceled"), _('OK'))
|
||||
self.passphrase = None
|
||||
else:
|
||||
if passphrase is None:
|
||||
passphrase = '' # Even blank string is valid Trezor passphrase
|
||||
if type(self.win) is ElectrumWindow:
|
||||
passphrase = self.win.password_dialog(_("Please enter your Trezor passphrase"))
|
||||
self.passphrase = unicodedata.normalize('NFKD', unicode(passphrase))
|
||||
else:
|
||||
assert type(self.win) is InstallWizard
|
||||
from electrum_gui.qt.password_dialog import make_password_dialog, run_password_dialog
|
||||
d = QDialog()
|
||||
d.setModal(1)
|
||||
d.setLayout(make_password_dialog(d, None, self.message, False))
|
||||
confirmed, p, passphrase = run_password_dialog(d, None, None)
|
||||
if not confirmed:
|
||||
QMessageBox.critical(None, _('Error'), _("Password request canceled"), _('OK'))
|
||||
self.passphrase = None
|
||||
else:
|
||||
if passphrase is None:
|
||||
passphrase = '' # Even blank string is valid Trezor passphrase
|
||||
self.passphrase = unicodedata.normalize('NFKD', unicode(passphrase))
|
||||
self.done.set()
|
||||
|
||||
def message_dialog(self):
|
||||
|
|
Loading…
Reference in New Issue