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