Files
pallectrum/electrum/gui/qt/wizard/terms_of_use.py
f321x 52e2ced62e qt: fix: ToU 'I Accept' button not getting enabled
The 'I Accept' button might not get enabled for some users where startup
is very slow.
The first check if the 'I Agree' button should be enabled gets fired
100ms after constructing the Dialog, which might not be enough.
So we can either remove the logic completely (done here) to prevent these
issues, or alternatively increase the initial timer to some large timout
after which the window should be assembled fully (e.g. 2 seconds). As
the user is not able to read the whole terms in few seconds this would
be a viable option too.
2025-06-13 14:45:27 +02:00

59 lines
2.1 KiB
Python

from typing import TYPE_CHECKING
from PyQt6.QtCore import QTimer, QEvent
from PyQt6.QtGui import QPixmap
from PyQt6.QtWidgets import QLabel, QHBoxLayout, QScrollArea
from electrum.i18n import _
from electrum.wizard import TermsOfUseWizard
from electrum.gui.qt.util import icon_path, WWLabel
from electrum.gui import messages
from .wizard import QEAbstractWizard, WizardComponent
if TYPE_CHECKING:
from electrum.simple_config import SimpleConfig
from electrum.gui.qt import QElectrumApplication
class QETermsOfUseWizard(TermsOfUseWizard, QEAbstractWizard):
def __init__(self, config: 'SimpleConfig', app: 'QElectrumApplication'):
TermsOfUseWizard.__init__(self, config)
QEAbstractWizard.__init__(self, config, app)
self.window_title = _('Terms of Use')
self.finish_label = _('I Accept')
self.title.setVisible(False)
# self.window().setMinimumHeight(565) # Enough to show the whole text without scrolling
self.next_button.setToolTip("You accept the Terms of Use by clicking this button.")
# attach gui classes
self.navmap_merge({
'terms_of_use': {'gui': WCTermsOfUseScreen, 'params': {'icon': ''}},
})
class WCTermsOfUseScreen(WizardComponent):
def __init__(self, parent, wizard):
WizardComponent.__init__(self, parent, wizard, title='')
self.wizard_title = _('Electrum Terms of Use')
self.img_label = QLabel()
pixmap = QPixmap(icon_path('electrum_darkblue_1.png'))
self.img_label.setPixmap(pixmap)
self.img_label2 = QLabel()
pixmap = QPixmap(icon_path('electrum_text.png'))
self.img_label2.setPixmap(pixmap)
hbox_img = QHBoxLayout()
hbox_img.addStretch(1)
hbox_img.addWidget(self.img_label)
hbox_img.addWidget(self.img_label2)
hbox_img.addStretch(1)
self.layout().addLayout(hbox_img)
self.layout().addSpacing(15)
self.tos_label = WWLabel()
self.tos_label.setText(messages.MSG_TERMS_OF_USE)
self.layout().addWidget(self.tos_label)
self._valid = True
def apply(self):
pass