Commit Graph

3241 Commits

Author SHA1 Message Date
Sander van Grieken
b361d02467 qml: tighten self._loading guard to encompass whole loadWallet fn, not just task thread.
Also make sure QEWallet is never instantiated within the task thread.
2024-02-05 17:41:56 +01:00
Sander van Grieken
0a2a22b822 qt: use selected_key instead of selected_item[0] for ChoiceWidgets 2024-02-05 14:39:03 +01:00
Sander van Grieken
0a6b2d521b qml: move final wizard submit() to WizardComponent.finish handler 2024-02-05 11:13:58 +01:00
accumulator
019baa5a71 Merge pull request #8862 from SomberNight/202401_qml_wizard_final_accept
qml wizard: run navmap[view]['accept'] handler a final time on finish
2024-02-05 10:46:22 +01:00
SomberNight
07dc80dd9a qml wizard: stricter validation for new wallet name
user on bitcointalk [0] tried to create wallet with name "w/o 2FA".
Before this, one would only get an error after the last page of the wizard.
With this, the "Next" button does not even get enabled if the name does not look ok.
(and as in comment, maybe we should be even stricter re what is allowed)

[0]: https://bitcointalk.org/index.php?topic=5483514.msg63584789#msg63584789
2024-02-04 08:54:40 +00:00
SomberNight
ca206de16b qt NetworkDialog: small clean-up 2024-02-03 11:52:33 +00:00
SomberNight
a9a8ed2eb4 follow-up: factor out more hardcoded "sat/byte" and "sat/b" strings
- rename globals
- also rm hardcoded strings from qml
- use consistent unit names in qml
  (previously mixed sat/vB and sat/byte (latter coming from core lib))
2024-02-03 05:26:31 +00:00
SomberNight
13a421aabb factor out hardcoded "sat/byte" and "sat/b" strings
Though note that the qml GUI has some more in qml/js context.
2024-02-03 04:18:46 +00:00
SomberNight
16eec8daf5 qml QEChannelDetails: show currentFeerate
related https://github.com/spesmilo/electrum/issues/8863
2024-02-03 03:43:16 +00:00
SomberNight
d7a9e2d022 qml QEChannelDetails: add some type hints 2024-02-03 03:35:54 +00:00
SomberNight
48a96f6776 qml wizard: run navmap[view]['accept'] handler a final time on finish
For example, see
061c821128/electrum/plugins/trustedcoin/trustedcoin.py (L624)
Even if navmap[view]['last'] is True, we still want the navmap[view]['accept'] handler to run.

fixes https://github.com/spesmilo/electrum/issues/8861

---

Note that an analogous issue does not exist for the desktop qt gui,
see 061c821128/electrum/gui/qt/wizard/wizard.py (L206)
There, wizard.resolve_next is called regardless of is_last.
2024-01-31 12:59:47 +00:00
SomberNight
cb55c65677 qml wizard: WCWalletPassword: show warning if pw is too short 2024-01-31 10:28:10 +00:00
SomberNight
e7ebf5d950 qt wizard: handle some cases of hw device being unplugged during flow
To reproduce, open two wizards in parallel. Use one to enter the flow and start creating a wallet,
then physically unplug the hw device at the correct time, and use the other wizard to trigger a rescan.
The rescan will unpair the hw device, resulting in device_manager.client_by_id to return None when
continuing the flow on the first wizard.

fixes https://github.com/spesmilo/electrum/issues/8858
2024-01-31 04:02:02 +00:00
SomberNight
67b57da402 qml: WCHaveMasterKey: (fix) re-verify text in onTextChanged
fixes https://github.com/spesmilo/electrum/issues/8853

This is a bit ugly, but activeFocus is declared as final and cannot be overridden directly...
```
  1.42 | W | gui.qml.qeapp | file:///home/user/wspace/electrum/electrum/gui/qml/components/controls/ElTextArea.qml:23:5: Cannot override FINAL property
```
2024-01-30 02:11:01 +00:00
SomberNight
522e9485c1 text gui: rm some magic numbers (ascii key codes), and small clean-up 2024-01-23 23:43:08 +00:00
SomberNight
cd3be429e4 qt: PayToEdit: always use monospace font 2024-01-23 00:49:03 +00:00
Sander van Grieken
50a53aaedc qml: handle 2fa wallet can have None for billing_info 2024-01-22 13:30:46 +01:00
SomberNight
43a5d03426 qt: coins tab: also define sort order for coins mined in same block
follow-up 0f55a1e309
2024-01-19 14:34:33 +00:00
Sander van Grieken
9518bd0e68 qt: replace timer based delayed call with a less confusing event loop queued call 2024-01-19 14:57:55 +01:00
Sander van Grieken
17147732fb qt: fix macOS workaround introducing race 2024-01-19 14:54:23 +01:00
SomberNight
9fd16cd677 follow-up prev 2024-01-19 13:19:44 +00:00
SomberNight
0f55a1e309 qt: coins tab: properly sort unconfirmed/local utxos to top 2024-01-19 13:12:36 +00:00
Sander van Grieken
1f5004320b qt: re-add processEvents() calls for abstract wizard.
might work around #8809/#8815
2024-01-18 17:55:52 +01:00
Sander van Grieken
55a2005a6b qml: update history view after address/key delete. fixes #8782 2024-01-18 00:28:02 +01:00
SomberNight
49c3567d7d wallet: simplify bump_fee: rm txid arg
closes https://github.com/spesmilo/electrum/issues/8797
2024-01-17 19:20:29 +00:00
SomberNight
4a82072443 qt: new_channel_dialog: init USE_RECOVERABLE_CHANNELS cb intuitively
if `not lnworker.can_have_recoverable_channels()`,
- previously: the cb was disabled and checked
- now: the cb is disabled and unchecked
2024-01-17 14:13:20 +00:00
Sander van Grieken
e2bb7df54a qml: invert, more strict check in determine_can_pay for invoice types,
also disable paste button while PI is being evaluated
2024-01-17 14:09:57 +01:00
Sander van Grieken
4469e9989d qml: LNURLp has no bolt11 to query until later. fixes #8822 2024-01-17 13:52:01 +01:00
SomberNight
248e50eed0 transaction: rename tx.is_final to tx.is_rbf_enabled, and invert it 2024-01-17 02:08:15 +00:00
ghost43
52c4acb483 Merge pull request #8814 from SomberNight/202401_lnpeer_chan_reest
lnpeer.reestablish_channel: fix some timing issues for dataloss case
2024-01-16 17:33:27 +00:00
Sander van Grieken
6a28ef5db3 qt: add ElectrumWindow.set_payment_identifier delegate 2024-01-16 17:40:50 +01:00
Sander van Grieken
291f0ce235 qml: handle exception more gracefully when attempting to delete last address from imported wallet 2024-01-16 15:56:49 +01:00
Sander van Grieken
4a4497b5e9 qt: wizard: styling, add icons to success/error messages 2024-01-16 12:44:00 +01:00
Sander van Grieken
82c21bc30d wizard: take hardware_device from correct location for cosigners. fixes #8808 2024-01-16 11:45:20 +01:00
Sander van Grieken
2b3d7096c6 qt: add typing to ResizableStackedWidget, add index validation to setCurrentIndex,
return None for currentWidget() if current_index == -1
2024-01-16 11:13:57 +01:00
Sander van Grieken
d19dd817d3 followup dab768b932 2024-01-16 10:27:40 +01:00
SomberNight
d4f31929af qt chan details dlg: add onchain feerate, to_self_delay 2024-01-16 04:07:48 +00:00
SomberNight
df58dd1f25 lnchannel.get_close_opts: allow REQUEST_REMOTE_FCLOSE if WE_ARE_TOXIC
related https://github.com/spesmilo/electrum/issues/8770
2024-01-15 20:13:38 +00:00
Sander van Grieken
57bd291491 call super().__init__() for WalletFileException descendants,
qt: handle unfinished wallets when opened via File>Open (ref #8809)
2024-01-15 17:06:44 +01:00
SomberNight
d660c57808 qt BalanceToolButton: rm hardcoded min size
"18 pixels" is too large when using qdarkstyle on "low" DPI screens, on Windows
(if there is also a high DPI screen connected as another monitor... eh)
2024-01-15 15:08:59 +00:00
SomberNight
66b24411e0 qt BalanceToolButton: better sizing on high DPI screens
specifically, on Windows, with display scaling > 100%, the pie btn was too small (not scaled)
2024-01-15 14:41:00 +00:00
Sander van Grieken
10be631039 qml: tx.txid() can be None in qetxfinalizer. fixes (#8807) 2024-01-13 01:36:45 +01:00
ThomasV
14ec36dba1 Merge pull request #8741 from accumulator/labels_update
add labels_received callback and update labels even when set for item
2024-01-11 16:05:04 +01:00
SomberNight
d89f9846b9 qt/qrreader(zbar): don't call callback if user closes camera window
- without this, in send tab paytoedit, try_payment_identifier will get called and it will error
df1b9a223c/electrum/gui/qt/paytoedit.py (L153)
- also, in all text fields this used to result in clearing the current text (but now it is kept instead)
2024-01-10 20:39:58 +00:00
Sander van Grieken
65210d03ac qml: log txid when assertion fails in qetxdetails.py 2024-01-09 12:57:26 +01:00
SomberNight
f7ea2e0d3c trustedcoin: fix qt wizard two-part-wallet-creation, online phase
```
 25.30 | E | gui.qt.exception_window.Exception_Hook | exception caught by crash reporter
Traceback (most recent call last):
  File "/home/user/wspace/electrum/electrum/gui/qt/__init__.py", line 439, in _start_wizard_to_select_or_create_wallet
    wallet = self.daemon.load_wallet(wallet_file, d['password'], upgrade=True)
  File "/home/user/wspace/electrum/electrum/daemon.py", line 481, in func_wrapper
    return func(self, *args, **kwargs)
  File "/home/user/wspace/electrum/electrum/daemon.py", line 491, in load_wallet
    wallet = self._load_wallet(path, password, upgrade=upgrade, config=self.config)
  File "/home/user/wspace/electrum/electrum/util.py", line 481, in do_profile
    o = func(*args, **kw_args)
  File "/home/user/wspace/electrum/electrum/daemon.py", line 516, in _load_wallet
    raise WalletUnfinished(db)
electrum.wallet_db.WalletUnfinished: <electrum.wallet_db.WalletDB object at 0x7f11db3a7ca0>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/user/wspace/electrum/electrum/gui/qt/wizard/wizard.py", line 203, in on_next_button_clicked
    if self.is_finalized(wd):
  File "/home/user/wspace/electrum/electrum/gui/qt/wizard/wallet.py", line 178, in is_finalized
    if not wizard_data['wallet_exists'] or wizard_data['wallet_is_open']:
KeyError: 'wallet_exists'
```
2024-01-05 15:34:20 +00:00
SomberNight
77c55d78b7 qt wizard: show warning when trying to restore 2fa seed as std wallet
With wallet_type=="standard", if the user enters a 2fa electrum seed, the "next" btn is disabled.
This is a regression in the new wizard, the old one used to "redirect" seamlessly.
This commit does not fix this, but at least shows a user-friendly warning message.

Note: would be nice if the wizard redirected automatically, in both directions (2fa->std, std->2fa).
The old wizard implemented std->2fa (probably the more common case hit by users), and had this
warning message shown for the 2fa->std case. Now I am repurposing the warning also for std->2fa.
2024-01-05 15:00:45 +00:00
SomberNight
dab768b932 qt/wizard/wallet: improve typing: introduce WalletWizardComponent cls 2024-01-05 13:34:57 +00:00
SomberNight
37173845c2 qt wizard: WizardComponent: (fix) also inherit ABC
for `@abstractmethod` decorator to work
(except, turns out, it's not so simple because of pyqt's own magic for QWidget)
2024-01-05 13:26:33 +00:00
SomberNight
201c0ab71b qt wizard: fix restoring from 2fa seed
follow-up 7df057aaf9
2024-01-05 12:51:54 +00:00