qt: wizard back button disabled while busy. Wrap error texts
This commit is contained in:
@@ -16,7 +16,7 @@ from electrum.i18n import _
|
|||||||
from electrum.keystore import bip44_derivation, bip39_to_seed, purpose48_derivation, ScriptTypeNotSupported
|
from electrum.keystore import bip44_derivation, bip39_to_seed, purpose48_derivation, ScriptTypeNotSupported
|
||||||
from electrum.plugin import run_hook, HardwarePluginLibraryUnavailable
|
from electrum.plugin import run_hook, HardwarePluginLibraryUnavailable
|
||||||
from electrum.storage import StorageReadWriteError
|
from electrum.storage import StorageReadWriteError
|
||||||
from electrum.util import WalletFileException, get_new_wallet_name, UserCancelled
|
from electrum.util import WalletFileException, get_new_wallet_name, UserCancelled, UserFacingException
|
||||||
from electrum.wallet import wallet_types
|
from electrum.wallet import wallet_types
|
||||||
from .wizard import QEAbstractWizard, WizardComponent
|
from .wizard import QEAbstractWizard, WizardComponent
|
||||||
from electrum.logging import get_logger, Logger
|
from electrum.logging import get_logger, Logger
|
||||||
@@ -1271,6 +1271,9 @@ class WCHWXPub(WizardComponent, Logger):
|
|||||||
self.root_fingerprint = client.request_root_fingerprint_from_device()
|
self.root_fingerprint = client.request_root_fingerprint_from_device()
|
||||||
self.label = client.label()
|
self.label = client.label()
|
||||||
self.soft_device_id = client.get_soft_device_id()
|
self.soft_device_id = client.get_soft_device_id()
|
||||||
|
except UserFacingException as e:
|
||||||
|
self.error = str(e)
|
||||||
|
self.logger.error(repr(e))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.error = repr(e) # TODO: handle user interaction exceptions (e.g. invalid pin) more gracefully
|
self.error = repr(e) # TODO: handle user interaction exceptions (e.g. invalid pin) more gracefully
|
||||||
self.logger.error(repr(e))
|
self.logger.error(repr(e))
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from PyQt5.QtWidgets import (QDialog, QPushButton, QWidget, QLabel, QVBoxLayout,
|
|||||||
|
|
||||||
from electrum.i18n import _
|
from electrum.i18n import _
|
||||||
from electrum.logging import get_logger
|
from electrum.logging import get_logger
|
||||||
from electrum.gui.qt.util import Buttons, icon_path, MessageBoxMixin
|
from electrum.gui.qt.util import Buttons, icon_path, MessageBoxMixin, WWLabel
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from electrum.simple_config import SimpleConfig
|
from electrum.simple_config import SimpleConfig
|
||||||
@@ -58,7 +58,7 @@ class QEAbstractWizard(QDialog, MessageBoxMixin):
|
|||||||
error_l = QLabel(_("Error!"))
|
error_l = QLabel(_("Error!"))
|
||||||
error_l.setAlignment(Qt.AlignCenter)
|
error_l.setAlignment(Qt.AlignCenter)
|
||||||
error_layout.addWidget(error_l)
|
error_layout.addWidget(error_l)
|
||||||
self.error_msg = QLabel()
|
self.error_msg = WWLabel()
|
||||||
self.error_msg.setAlignment(Qt.AlignCenter)
|
self.error_msg.setAlignment(Qt.AlignCenter)
|
||||||
error_layout.addWidget(self.error_msg)
|
error_layout.addWidget(self.error_msg)
|
||||||
error_layout.addStretch(1)
|
error_layout.addStretch(1)
|
||||||
@@ -161,6 +161,7 @@ class QEAbstractWizard(QDialog, MessageBoxMixin):
|
|||||||
page = self.main_widget.currentWidget()
|
page = self.main_widget.currentWidget()
|
||||||
self.title.setText(f'<b>{page.title}</b>' if page.title else '')
|
self.title.setText(f'<b>{page.title}</b>' if page.title else '')
|
||||||
self.back_button.setText(_('Back') if self.can_go_back() else _('Cancel'))
|
self.back_button.setText(_('Back') if self.can_go_back() else _('Cancel'))
|
||||||
|
self.back_button.setEnabled(not page.busy)
|
||||||
self.next_button.setText(_('Next') if not self.is_last(page.wizard_data) else _('Finish'))
|
self.next_button.setText(_('Next') if not self.is_last(page.wizard_data) else _('Finish'))
|
||||||
self.next_button.setEnabled(page.valid)
|
self.next_button.setEnabled(page.valid)
|
||||||
self.main_widget.setVisible(not page.busy and not bool(page.error))
|
self.main_widget.setVisible(not page.busy and not bool(page.error))
|
||||||
|
|||||||
Reference in New Issue
Block a user