fix #862: ask passphrase only once
This commit is contained in:
@@ -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.util import *
|
||||||
from electrum_gui.qt.main_window import StatusBarButton, ElectrumWindow
|
from electrum_gui.qt.main_window import StatusBarButton, ElectrumWindow
|
||||||
|
from electrum_gui.qt.installwizard import InstallWizard
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from trezorlib.client import types
|
from trezorlib.client import types
|
||||||
@@ -133,7 +134,7 @@ class Plugin(BasePlugin):
|
|||||||
if type(window) is ElectrumWindow:
|
if type(window) is ElectrumWindow:
|
||||||
self.window.statusBar().addPermanentWidget(self.trezor_button)
|
self.window.statusBar().addPermanentWidget(self.trezor_button)
|
||||||
if self.handler is None:
|
if self.handler is None:
|
||||||
self.handler = TrezorQtHandler(self.window.app)
|
self.handler = TrezorQtHandler(self.window)
|
||||||
try:
|
try:
|
||||||
self.get_client().ping('t')
|
self.get_client().ping('t')
|
||||||
except BaseException as e:
|
except BaseException as e:
|
||||||
@@ -625,18 +626,23 @@ class TrezorQtHandler:
|
|||||||
self.done.set()
|
self.done.set()
|
||||||
|
|
||||||
def passphrase_dialog(self):
|
def passphrase_dialog(self):
|
||||||
from electrum_gui.qt.password_dialog import make_password_dialog, run_password_dialog
|
if type(self.win) is ElectrumWindow:
|
||||||
d = QDialog()
|
passphrase = self.win.password_dialog(_("Please enter your Trezor passphrase"))
|
||||||
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.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()
|
self.done.set()
|
||||||
|
|
||||||
def message_dialog(self):
|
def message_dialog(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user