From 7146e320f05114ce8ca48f12c305092906fef613 Mon Sep 17 00:00:00 2001 From: Sander van Grieken Date: Thu, 1 May 2025 12:06:16 +0200 Subject: [PATCH] plugins: coldcard: use RichLabel, org imports qt/util.py: introduce RichLabel, allows link select and open --- electrum/gui/qt/util.py | 11 ++++++++++- electrum/plugins/coldcard/qt.py | 17 ++++++++--------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/electrum/gui/qt/util.py b/electrum/gui/qt/util.py index 1649df47b..0b11435e9 100644 --- a/electrum/gui/qt/util.py +++ b/electrum/gui/qt/util.py @@ -105,12 +105,21 @@ class ThreadedButton(QPushButton): class WWLabel(QLabel): - def __init__ (self, text="", parent=None): + """Word-wrapping label""" + def __init__(self, text="", parent=None): QLabel.__init__(self, text, parent) self.setWordWrap(True) self.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse) +class RichLabel(WWLabel): + """Word-wrapping label with link activation""" + def __init__(self, text='', parent=None): + WWLabel.__init__(self, text, parent) + self.setTextInteractionFlags(Qt.TextInteractionFlag.TextBrowserInteraction) + self.setOpenExternalLinks(True) + + class AmountLabel(QLabel): def __init__(self, *args, **kwargs): QLabel.__init__(self, *args, **kwargs) diff --git a/electrum/plugins/coldcard/qt.py b/electrum/plugins/coldcard/qt.py index f89041090..78cd1335a 100644 --- a/electrum/plugins/coldcard/qt.py +++ b/electrum/plugins/coldcard/qt.py @@ -4,17 +4,18 @@ from typing import TYPE_CHECKING from PyQt6.QtCore import Qt from PyQt6.QtWidgets import QPushButton, QLabel, QVBoxLayout, QWidget, QGridLayout -from electrum.gui.qt.util import WindowModalDialog, CloseButton, getOpenFileName, getSaveFileName -from electrum.gui.qt.main_window import ElectrumWindow - from electrum.i18n import _ from electrum.plugin import hook from electrum.wallet import Multisig_Wallet -from .coldcard import ColdcardPlugin, xfp2str from electrum.hw_wallet.qt import QtHandlerBase, QtPluginBase from electrum.hw_wallet.plugin import only_hook_if_libraries_available + from electrum.gui.qt.wizard.wallet import WCScriptAndDerivation, WCHWXPub, WCHWUninitialized, WCHWUnlock +from electrum.gui.qt.util import WindowModalDialog, CloseButton, getOpenFileName, getSaveFileName, RichLabel +from electrum.gui.qt.main_window import ElectrumWindow + +from .coldcard import ColdcardPlugin, xfp2str if TYPE_CHECKING: from electrum.gui.qt.wizard.wallet import QENewWalletWizard @@ -177,14 +178,12 @@ class CKCCSettingsDialog(WindowModalDialog): grid = QGridLayout() grid.setColumnStretch(2, 1) - # see - title = QLabel('''
+ title = RichLabel('''
Coldcard Wallet
from Coinkite Inc.
coldcardwallet.com''') - title.setTextInteractionFlags(Qt.TextInteractionFlag.LinksAccessibleByMouse) - grid.addWidget(title, 0,0, 1,2, Qt.AlignmentFlag.AlignHCenter) + grid.addWidget(title, 0, 0, 1, 2, Qt.AlignmentFlag.AlignHCenter) y = 3 rows = [ @@ -199,7 +198,7 @@ class CKCCSettingsDialog(WindowModalDialog): widget = QLabel('000000000000') widget.setTextInteractionFlags(Qt.TextInteractionFlag.TextSelectableByMouse | Qt.TextInteractionFlag.TextSelectableByKeyboard) - grid.addWidget(QLabel(label), y, 0, 1,1, Qt.AlignmentFlag.AlignRight) + grid.addWidget(QLabel(label), y, 0, 1, 1, Qt.AlignmentFlag.AlignRight) grid.addWidget(widget, y, 1, 1, 1, Qt.AlignmentFlag.AlignLeft) setattr(self, member_name, widget) y += 1