thw_wallet: show_error can now block optionally. trezor: use prev during recovery. - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 66cfc3ea37ab9252056e4cd49b6219a9f7986c79 DIR parent ae24af9bc2905b4aeb8e6b46020cfc2795911bf7 HTML 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: M plugins/hw_wallet/cmdline.py | 2 +- M plugins/hw_wallet/qt.py | 12 ++++++++---- M plugins/trezor/trezor.py | 5 ++--- 3 files changed, 11 insertions(+), 8 deletions(-) --- DIR diff --git a/plugins/hw_wallet/cmdline.py b/plugins/hw_wallet/cmdline.py t@@ -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): DIR diff --git a/plugins/hw_wallet/qt.py b/plugins/hw_wallet/qt.py t@@ -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) t@@ -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() t@@ -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: DIR diff --git a/plugins/trezor/trezor.py b/plugins/trezor/trezor.py t@@ -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()