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