twizard: (trivial) add show_error to base class, document API - electrum - Electrum Bitcoin wallet
 (HTM) git clone https://git.parazyd.org/electrum
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
       ---
 (DIR) commit 71eed1d4cb70b69767974d21430cfa28ba2cc6eb
 (DIR) parent 08a79252353476aed746ff4c1085cf108f314a23
 (HTM) Author: SomberNight <somber.night@protonmail.com>
       Date:   Thu,  9 Apr 2020 19:10:39 +0200
       
       wizard: (trivial) add show_error to base class, document API
       
       Diffstat:
         M electrum/base_wizard.py             |       3 +++
         M electrum/gui/kivy/main_window.py    |       9 +++++----
         M electrum/gui/kivy/uix/dialogs/inst… |       7 ++++++-
       
       3 files changed, 14 insertions(+), 5 deletions(-)
       ---
 (DIR) diff --git a/electrum/base_wizard.py b/electrum/base_wizard.py
       t@@ -685,3 +685,6 @@ class BaseWizard(Logger):
                    self.line_dialog(run_next=f, title=title, message=message, default='', test=lambda x: x==passphrase)
                else:
                    f('')
       +
       +    def show_error(self, msg: Union[str, BaseException]) -> None:
       +        raise NotImplementedError()
 (DIR) diff --git a/electrum/gui/kivy/main_window.py b/electrum/gui/kivy/main_window.py
       t@@ -975,8 +975,8 @@ class ElectrumWindow(App):
                self.qr_dialog(label.name, label.data, True)
        
            def show_error(self, error, width='200dp', pos=None, arrow_pos=None,
       -        exit=False, icon='atlas://electrum/gui/kivy/theming/light/error', duration=0,
       -        modal=False):
       +                   exit=False, icon='atlas://electrum/gui/kivy/theming/light/error', duration=0,
       +                   modal=False):
                ''' Show an error Message Bubble.
                '''
                self.show_info_bubble( text=error, icon=icon, width=width,
       t@@ -984,7 +984,7 @@ class ElectrumWindow(App):
                    duration=duration, modal=modal)
        
            def show_info(self, error, width='200dp', pos=None, arrow_pos=None,
       -        exit=False, duration=0, modal=False):
       +                  exit=False, duration=0, modal=False):
                ''' Show an Info Message Bubble.
                '''
                self.show_error(error, icon='atlas://electrum/gui/kivy/theming/light/important',
       t@@ -992,7 +992,7 @@ class ElectrumWindow(App):
                    arrow_pos=arrow_pos)
        
            def show_info_bubble(self, text=_('Hello World'), pos=None, duration=0,
       -        arrow_pos='bottom_mid', width=None, icon='', modal=False, exit=False):
       +                         arrow_pos='bottom_mid', width=None, icon='', modal=False, exit=False):
                '''Method to show an Information Bubble
        
                .. parameters::
       t@@ -1002,6 +1002,7 @@ class ElectrumWindow(App):
                    width: width of the Bubble
                    arrow_pos: arrow position for the bubble
                '''
       +        text = str(text)  # so that we also handle e.g. Exception
                info_bubble = self.info_bubble
                if not info_bubble:
                    info_bubble = self.info_bubble = Factory.InfoBubble()
 (DIR) diff --git a/electrum/gui/kivy/uix/dialogs/installwizard.py b/electrum/gui/kivy/uix/dialogs/installwizard.py
       t@@ -2,6 +2,7 @@
        from functools import partial
        import threading
        import os
       +from typing import TYPE_CHECKING
        
        from kivy.app import App
        from kivy.clock import Clock
       t@@ -24,6 +25,10 @@ from . import EventsDialog
        from ...i18n import _
        from .password_dialog import PasswordDialog
        
       +if TYPE_CHECKING:
       +    from electrum.gui.kivy.main_window import ElectrumWindow
       +
       +
        # global Variables
        is_test = (platform == "linux")
        test_seed = "grape impose jazz bind spatial mind jelly tourist tank today holiday stomach"
       t@@ -1153,7 +1158,7 @@ class InstallWizard(BaseWizard, Widget):
            def show_message(self, msg): self.show_error(msg)
        
            def show_error(self, msg):
       -        app = App.get_running_app()
       +        app = App.get_running_app()  # type: ElectrumWindow
                Clock.schedule_once(lambda dt: app.show_error(msg))
        
            def request_password(self, run_next, force_disable_encrypt_cb=False):