Browse Source

qt gui: clean-up QCheckBox.stateChanged handling

Some checkboxes, e.g. main_window.warn_if_testnet became buggy with pyqt6:
looks like the stateChanged signal passes an int, not a Qt.CheckState.
(and note that Qt.CheckState is an Enum, not an IntEnum).
So `x == Qt.CheckState.Checked` would always evaluate to False.

```
def on_cb(_x):
    print(f"heyheyhey. {_x=!r}, {Qt.CheckState.Checked=!r}, {cb.checkState()=!r}, {cb.isChecked()=!r}")
cb = QCheckBox("")
cb.stateChanged.connect(on_cb)
```

heyheyhey. x=2, Qt.CheckState.Checked=<CheckState.Checked: 2>, cb.checkState()=<CheckState.Checked: 2>, cb.isChecked()=True
heyheyhey. x=0, Qt.CheckState.Checked=<CheckState.Checked: 2>, cb.checkState()=<CheckState.Unchecked: 0>, cb.isChecked()=False
master
SomberNight 1 year ago
parent
commit
e05d2a5dbe
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 4
      electrum/gui/qt/channels_list.py
  2. 4
      electrum/gui/qt/main_window.py
  3. 34
      electrum/gui/qt/settings_dialog.py

4
electrum/gui/qt/channels_list.py

@ -139,8 +139,8 @@ class ChannelsList(MyTreeView):
def force_close(self, channel_id):
self.save_backup = True
backup_cb = QCheckBox('Create a backup now', checked=True)
def on_checked(b):
self.save_backup = bool(b)
def on_checked(_x):
self.save_backup = backup_cb.isChecked()
backup_cb.stateChanged.connect(on_checked)
chan = self.lnworker.channels[channel_id]
to_self_delay = chan.config[REMOTE].to_self_delay

4
electrum/gui/qt/main_window.py

@ -594,9 +594,9 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener):
])
cb = QCheckBox(_("Don't show this again."))
cb_checked = False
def on_cb(x):
def on_cb(_x):
nonlocal cb_checked
cb_checked = x == Qt.CheckState.Checked
cb_checked = cb.isChecked()
cb.stateChanged.connect(on_cb)
self.show_warning(msg, title=_('Testnet'), checkbox=cb)
if cb_checked:

34
electrum/gui/qt/settings_dialog.py

@ -114,8 +114,8 @@ class SettingsDialog(QDialog, QtEventListener):
# lightning
trampoline_cb = checkbox_from_configvar(self.config.cv.LIGHTNING_USE_GOSSIP)
trampoline_cb.setChecked(not self.config.LIGHTNING_USE_GOSSIP)
def on_trampoline_checked(use_trampoline):
use_trampoline = bool(use_trampoline)
def on_trampoline_checked(_x):
use_trampoline = trampoline_cb.isChecked()
if not use_trampoline:
if not window.question('\n'.join([
_("Are you sure you want to disable trampoline?"),
@ -137,15 +137,15 @@ class SettingsDialog(QDialog, QtEventListener):
legacy_add_trampoline_cb = checkbox_from_configvar(self.config.cv.LIGHTNING_LEGACY_ADD_TRAMPOLINE)
legacy_add_trampoline_cb.setChecked(self.config.LIGHTNING_LEGACY_ADD_TRAMPOLINE)
def on_legacy_add_trampoline_checked(b):
self.config.LIGHTNING_LEGACY_ADD_TRAMPOLINE = bool(b)
def on_legacy_add_trampoline_checked(_x):
self.config.LIGHTNING_LEGACY_ADD_TRAMPOLINE = legacy_add_trampoline_cb.isChecked()
legacy_add_trampoline_cb.stateChanged.connect(on_legacy_add_trampoline_checked)
remote_wt_cb = checkbox_from_configvar(self.config.cv.WATCHTOWER_CLIENT_ENABLED)
remote_wt_cb.setChecked(self.config.WATCHTOWER_CLIENT_ENABLED)
def on_remote_wt_checked(x):
self.config.WATCHTOWER_CLIENT_ENABLED = bool(x)
self.watchtower_url_e.setEnabled(bool(x))
def on_remote_wt_checked(_x):
self.config.WATCHTOWER_CLIENT_ENABLED = remote_wt_cb.isChecked()
self.watchtower_url_e.setEnabled(remote_wt_cb.isChecked())
remote_wt_cb.stateChanged.connect(on_remote_wt_checked)
watchtower_url = self.config.WATCHTOWER_CLIENT_URL
self.watchtower_url_e = QLineEdit(watchtower_url)
@ -194,8 +194,8 @@ class SettingsDialog(QDialog, QtEventListener):
msat_cb = checkbox_from_configvar(self.config.cv.BTC_AMOUNTS_PREC_POST_SAT)
msat_cb.setChecked(self.config.BTC_AMOUNTS_PREC_POST_SAT > 0)
def on_msat_checked(v):
prec = 3 if v == Qt.CheckState.Checked else 0
def on_msat_checked(_x):
prec = 3 if msat_cb.isChecked() else 0
if self.config.amt_precision_post_satoshi != prec:
self.config.amt_precision_post_satoshi = prec
self.config.BTC_AMOUNTS_PREC_POST_SAT = prec
@ -224,8 +224,8 @@ class SettingsDialog(QDialog, QtEventListener):
thousandsep_cb = checkbox_from_configvar(self.config.cv.BTC_AMOUNTS_ADD_THOUSANDS_SEP)
thousandsep_cb.setChecked(self.config.BTC_AMOUNTS_ADD_THOUSANDS_SEP)
def on_set_thousandsep(v):
checked = v == Qt.CheckState.Checked
def on_set_thousandsep(_x):
checked = thousandsep_cb.isChecked()
if self.config.amt_add_thousands_sep != checked:
self.config.amt_add_thousands_sep = checked
self.config.BTC_AMOUNTS_ADD_THOUSANDS_SEP = checked
@ -258,14 +258,14 @@ class SettingsDialog(QDialog, QtEventListener):
updatecheck_cb = checkbox_from_configvar(self.config.cv.AUTOMATIC_CENTRALIZED_UPDATE_CHECKS)
updatecheck_cb.setChecked(self.config.AUTOMATIC_CENTRALIZED_UPDATE_CHECKS)
def on_set_updatecheck(v):
self.config.AUTOMATIC_CENTRALIZED_UPDATE_CHECKS = (v == Qt.CheckState.Checked)
def on_set_updatecheck(_x):
self.config.AUTOMATIC_CENTRALIZED_UPDATE_CHECKS = updatecheck_cb.isChecked()
updatecheck_cb.stateChanged.connect(on_set_updatecheck)
filelogging_cb = checkbox_from_configvar(self.config.cv.WRITE_LOGS_TO_DISK)
filelogging_cb.setChecked(self.config.WRITE_LOGS_TO_DISK)
def on_set_filelogging(v):
self.config.WRITE_LOGS_TO_DISK = (v == Qt.CheckState.Checked)
def on_set_filelogging(_x):
self.config.WRITE_LOGS_TO_DISK = filelogging_cb.isChecked()
self.need_restart = True
filelogging_cb.stateChanged.connect(on_set_filelogging)
@ -355,8 +355,8 @@ class SettingsDialog(QDialog, QtEventListener):
self.fx.set_exchange(exchange)
self.app.update_fiat_signal.emit()
def on_history_rates(checked):
self.config.FX_HISTORY_RATES = bool(checked)
def on_history_rates(_x):
self.config.FX_HISTORY_RATES = self.history_rates_cb.isChecked()
if not self.fx:
return
update_exchanges()

Loading…
Cancel
Save