Previously it was only the actual commands that directly or indirectly verified
the password. This adds a check that runs for any command requiring a password.
related https://github.com/spesmilo/electrum/pull/9238
This is most useful if the user wants to import a significant number of keys,
as every invocation of `importprivkey` results in rewriting the wallet file to disk.
The API of "importprivkey" is left unchanged for the single privkey case.
Traceback (most recent call last):
File "...\electrum\electrum\gui\qt\main_window.py", line 1797, in toggle_search
self.search_box.setFocus(1)
TypeError: arguments did not match any overloaded call:
setFocus(self): too many arguments
setFocus(self, reason: Qt.FocusReason): argument 1 has unexpected type 'int'
The wayland plugin would require at least debian 12 (or ubuntu 22.04) at runtime.
see https://github.com/spesmilo/electrum/pull/9189#pullrequestreview-2309983943 :
> I've now tried running the appimage on debian 10 (oldoldstable), and am getting an error with wayland.
>
> ```
> 4.16 | D | util.profiler | Plugins.__init__ 0.0422 sec
> 4.16 | I | daemon.Daemon | launching GUI: qt
> 4.76 | I | gui.qt.ElectrumGui | Qt GUI starting up... Qt=6.7.1, PyQt=6.7.1
> /tmp/.mount_electrFlGFOt/usr/bin/python3: symbol lookup error: /tmp/.mount_electrFlGFOt/usr/lib/python3.11/site-packages/PyQt6/Qt6/plugins/platforms/../../lib/libQt6WaylandClient.so.6: undefined symbol: wl_proxy_marshal_flags
> ```
>
> If I explicitly specify `QT_QPA_PLATFORM=xcb`, it starts and works as expected. But it picks wayland by default.
> I found https://bugreports.qt.io/browse/QTBUG-114635 and it looks like even debian 11 might be affected.
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
macOS reserves the "About" menu item name, similarly to "Preferences" (see a few lines above).
The "About" keyword seems even more strictly locked down:
not allowed as either a prefix or a suffix.
- With Qt5, a matching menu item is simply auto-recognised as the special "About" item,
- but with Qt6, it seems we explicitly have to do this dance, as directly adding
a menu item with the "About" name results in a segfault...