commit 66cfc3ea37ab9252056e4cd49b6219a9f7986c79
parent ae24af9bc2905b4aeb8e6b46020cfc2795911bf7
Author: SomberNight <somber.night@protonmail.com>
Date: Tue, 1 May 2018 15:05:58 +0200
hw_wallet: show_error can now block optionally. trezor: use prev during recovery.
Diffstat:
3 files changed, 11 insertions(+), 8 deletions(-)
diff --git a/plugins/hw_wallet/cmdline.py b/plugins/hw_wallet/cmdline.py
@@ -32,7 +32,7 @@ class CmdLineHandler:
def show_message(self, msg, on_cancel=None):
print_msg(msg)
- def show_error(self, msg):
+ def show_error(self, msg, blocking=False):
print_msg(msg)
def update_status(self, b):
diff --git a/plugins/hw_wallet/qt.py b/plugins/hw_wallet/qt.py
@@ -41,7 +41,7 @@ class QtHandlerBase(QObject, PrintError):
passphrase_signal = pyqtSignal(object, object)
message_signal = pyqtSignal(object, object)
- error_signal = pyqtSignal(object)
+ error_signal = pyqtSignal(object, object)
word_signal = pyqtSignal(object)
clear_signal = pyqtSignal()
query_signal = pyqtSignal(object, object)
@@ -90,8 +90,10 @@ class QtHandlerBase(QObject, PrintError):
def show_message(self, msg, on_cancel=None):
self.message_signal.emit(msg, on_cancel)
- def show_error(self, msg):
- self.error_signal.emit(msg)
+ def show_error(self, msg, blocking=False):
+ self.done.clear()
+ self.error_signal.emit(msg, blocking)
+ self.done.wait()
def finished(self):
self.clear_signal.emit()
@@ -154,8 +156,10 @@ class QtHandlerBase(QObject, PrintError):
vbox.addLayout(Buttons(CancelButton(dialog)))
dialog.show()
- def error_dialog(self, msg):
+ def error_dialog(self, msg, blocking):
self.win.show_error(msg, parent=self.top_level_window())
+ if blocking:
+ self.done.set()
def clear_dialog(self):
if self.dialog:
diff --git a/plugins/trezor/trezor.py b/plugins/trezor/trezor.py
@@ -217,14 +217,13 @@ class TrezorPlugin(HW_PluginBase):
item, label, pin_protection, passphrase_protection = settings
if method == TIM_RECOVER:
- # FIXME the PIN prompt will appear over this message
- # which makes this unreadable
handler.show_error(_(
"You will be asked to enter 24 words regardless of your "
"seed's actual length. If you enter a word incorrectly or "
"misspell it, you cannot change it or go back - you will need "
"to start again from the beginning.\n\nSo please enter "
- "the words carefully!"))
+ "the words carefully!"),
+ blocking=True)
language = 'english'
devmgr = self.device_manager()