1
0

hw_wallet: de-dupe "message_dialog" code, make text selectable

This commit is contained in:
SomberNight
2022-11-09 21:09:02 +00:00
parent e4a880e435
commit e75110ec04
5 changed files with 15 additions and 40 deletions

View File

@@ -66,20 +66,11 @@ class Plugin(BitBox02Plugin, QtPluginBase):
class BitBox02_Handler(QtHandlerBase): class BitBox02_Handler(QtHandlerBase):
MESSAGE_DIALOG_TITLE = _("BitBox02 Status")
def __init__(self, win): def __init__(self, win):
super(BitBox02_Handler, self).__init__(win, "BitBox02") super(BitBox02_Handler, self).__init__(win, "BitBox02")
def message_dialog(self, msg):
self.clear_dialog()
self.dialog = dialog = WindowModalDialog(
self.top_level_window(), _("BitBox02 Status")
)
l = QLabel(msg)
vbox = QVBoxLayout(dialog)
vbox.addWidget(l)
dialog.show()
def name_multisig_account(self): def name_multisig_account(self):
return QMetaObject.invokeMethod( return QMetaObject.invokeMethod(
self, self,

View File

@@ -84,18 +84,11 @@ class Plugin(ColdcardPlugin, QtPluginBase):
class Coldcard_Handler(QtHandlerBase): class Coldcard_Handler(QtHandlerBase):
MESSAGE_DIALOG_TITLE = _("Coldcard Status")
def __init__(self, win): def __init__(self, win):
super(Coldcard_Handler, self).__init__(win, 'Coldcard') super(Coldcard_Handler, self).__init__(win, 'Coldcard')
def message_dialog(self, msg):
self.clear_dialog()
self.dialog = dialog = WindowModalDialog(self.top_level_window(), _("Coldcard Status"))
l = QLabel(msg)
vbox = QVBoxLayout(dialog)
vbox.addWidget(l)
dialog.show()
class CKCCSettingsDialog(WindowModalDialog): class CKCCSettingsDialog(WindowModalDialog):

View File

@@ -28,7 +28,7 @@ import threading
from functools import partial from functools import partial
from typing import TYPE_CHECKING, Union, Optional, Callable, Any from typing import TYPE_CHECKING, Union, Optional, Callable, Any
from PyQt5.QtCore import QObject, pyqtSignal from PyQt5.QtCore import QObject, pyqtSignal, Qt
from PyQt5.QtWidgets import QVBoxLayout, QLineEdit, QHBoxLayout, QLabel from PyQt5.QtWidgets import QVBoxLayout, QLineEdit, QHBoxLayout, QLabel
from electrum.gui.qt.password_dialog import PasswordLayout, PW_PASSPHRASE from electrum.gui.qt.password_dialog import PasswordLayout, PW_PASSPHRASE
@@ -167,14 +167,17 @@ class QtHandlerBase(HardwareHandlerBase, QObject, Logger):
self.word = text.text() self.word = text.text()
self.done.set() self.done.set()
def message_dialog(self, msg, on_cancel): MESSAGE_DIALOG_TITLE = None # type: Optional[str]
# Called more than once during signing, to confirm output and fee def message_dialog(self, msg, on_cancel=None):
self.clear_dialog() self.clear_dialog()
title = _('Please check your {} device').format(self.device) title = self.MESSAGE_DIALOG_TITLE
if title is None:
title = _('Please check your {} device').format(self.device)
self.dialog = dialog = WindowModalDialog(self.top_level_window(), title) self.dialog = dialog = WindowModalDialog(self.top_level_window(), title)
l = QLabel(msg) label = QLabel(msg)
label.setTextInteractionFlags(Qt.TextSelectableByMouse)
vbox = QVBoxLayout(dialog) vbox = QVBoxLayout(dialog)
vbox.addWidget(l) vbox.addWidget(label)
if on_cancel: if on_cancel:
dialog.rejected.connect(on_cancel) dialog.rejected.connect(on_cancel)
vbox.addLayout(Buttons(CancelButton(dialog))) vbox.addLayout(Buttons(CancelButton(dialog)))

View File

@@ -35,13 +35,7 @@ class Jade_Handler(QtHandlerBase):
setup_signal = pyqtSignal() setup_signal = pyqtSignal()
auth_signal = pyqtSignal(object, object) auth_signal = pyqtSignal(object, object)
MESSAGE_DIALOG_TITLE = _("Jade Status")
def __init__(self, win): def __init__(self, win):
super(Jade_Handler, self).__init__(win, 'Jade') super(Jade_Handler, self).__init__(win, 'Jade')
def message_dialog(self, msg):
self.clear_dialog()
self.dialog = dialog = WindowModalDialog(self.top_level_window(), _("Jade Status"))
l = QLabel(msg)
vbox = QVBoxLayout(dialog)
vbox.addWidget(l)
dialog.show()

View File

@@ -35,6 +35,8 @@ class Ledger_Handler(QtHandlerBase):
setup_signal = pyqtSignal() setup_signal = pyqtSignal()
auth_signal = pyqtSignal(object, object) auth_signal = pyqtSignal(object, object)
MESSAGE_DIALOG_TITLE = _("Ledger Status")
def __init__(self, win): def __init__(self, win):
super(Ledger_Handler, self).__init__(win, 'Ledger') super(Ledger_Handler, self).__init__(win, 'Ledger')
self.setup_signal.connect(self.setup_dialog) self.setup_signal.connect(self.setup_dialog)
@@ -48,14 +50,6 @@ class Ledger_Handler(QtHandlerBase):
self.word = str(response[0]) self.word = str(response[0])
self.done.set() self.done.set()
def message_dialog(self, msg):
self.clear_dialog()
self.dialog = dialog = WindowModalDialog(self.top_level_window(), _("Ledger Status"))
l = QLabel(msg)
vbox = QVBoxLayout(dialog)
vbox.addWidget(l)
dialog.show()
def auth_dialog(self, data, client: 'Ledger_Client'): def auth_dialog(self, data, client: 'Ledger_Client'):
try: try:
from .auth2fa import LedgerAuthDialog from .auth2fa import LedgerAuthDialog