URI: 
       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()