Commit Graph

650 Commits

Author SHA1 Message Date
Sander van Grieken
bcbcf18c4d qml: arrows consistency.
replace with unicode arrows once we can assure these glyphs are included on device
2023-04-06 09:16:56 +02:00
ThomasV
b9c81b0fcb qml rbf dialogs: use 'new fee', 'new fee rate' instead of 'mining fee' 2023-04-05 15:08:01 +02:00
SomberNight
8ea63f9bde qml network overview: show server height, if lagging
to see how many blocks it is behind
2023-04-05 11:21:31 +00:00
Sander van Grieken
dd1a83e1c0 qml: fixes 2023-04-05 13:18:50 +02:00
Sander van Grieken
7ac3afdcda qml: fixes 2023-04-05 13:13:50 +02:00
ThomasV
80a16e1377 fix typo (the error was silent) 2023-04-05 11:50:54 +02:00
Sander van Grieken
6c65161d27 qml: refactor qeinvoice.py
QEInvoice/QEInvoiceParser now properly split for mapping to Invoice type (QEInvoice)
and parsing/resolving of payment identifiers (QEInvoiceParser).
additionally, old, unused QEUserEnteredPayment was removed.

invoices are now never saved with user-entered amount if the original invoice
did not specify an amount (e.g. address-only, no-amount bip21 uri, or no-amount
lightning invoice). Furthermore, QEInvoice now adds an isSaved property so the
UI doesn't need to infer that from the existence of the invoice key.

Payments of lightning invoices are now triggered through QEInvoice.pay_lightning_invoice(),
using the internally kept Invoice instance. This replaces the old call path of
QEWallet.pay_lightning_invoice(invoice_key) which required the invoice to be saved
in the backend wallet before payment.

The LNURLpay flow arriving on InvoiceDialog implicitly triggered payment, this is
now indicated by InvoiceDialog.payImmediately property instead of inferrred from the
QEInvoiceParser isLnurlPay property.
2023-04-04 16:13:00 +02:00
Sander van Grieken
2f9ecf3311 qml: combine Connections on same target 2023-04-04 13:22:58 +02:00
ThomasV
157954d4ff qml: do not block access to BalanceSummary if we are not connected. Display warning instead 2023-04-03 17:10:52 +02:00
Sander van Grieken
e362ac52fa qml: styling 2023-04-03 14:01:59 +02:00
Sander van Grieken
01c31edae2 qml: force same auto-capitalizing behavior on PasswordField regardless of echoMode 2023-04-03 13:31:20 +02:00
Sander van Grieken
86711a6a99 qml: icon 2023-04-03 12:07:47 +02:00
Sander van Grieken
ffac79c324 qml: follupup prev 2023-04-03 10:27:33 +02:00
Sander van Grieken
4c87773174 qml: move user_knowns_press_and_hold to config 2023-04-03 10:26:03 +02:00
ThomasV
198ca10cd0 qml: add InfoTextArea about PressAndHold 2023-04-02 11:15:28 +02:00
ThomasV
03fbf6c3d8 qml: show lightning can send/receive amounts in balance details,
rather than in requestDetaildDialog.

Also remove junk code copy-pasted from WalletDetails.
2023-04-02 10:40:57 +02:00
ThomasV
da802d20ad qml: make zero balance visible in balance details. Disable open channel button if there is no confirmed balance 2023-04-02 09:33:32 +02:00
ThomasV
84cb210e7e qml TxDetails: do not show rbf buttons if the tx is local 2023-04-01 17:11:15 +02:00
ThomasV
48689ecc89 qml tx details and rbf dialogs: use a single InfoTextArea, to the
top of each dialog.

Do not display 'cannot bump fee' as the first thing we see when we
enter the bump fee dialog; suggest to move the slider instead.
2023-04-01 15:10:44 +02:00
ThomasV
ba82813c06 qml InvoiceDialog: remove delete button, it only makes sense if you visit the list 2023-04-01 14:05:58 +02:00
ThomasV
02f093c2d2 qml SwapDialog: move userinfo to the top, make it constant, add padding and labels below the slider 2023-04-01 13:46:46 +02:00
ThomasV
d6cbaaa2e9 qml InvoiceDialog: show invoice type in the title, fallback address in the details 2023-04-01 12:26:46 +02:00
ThomasV
ad18298878 qml: Give user feedback after bumping the fee.
This is better than nothing, but not ideal. This window should
have a general purpose 'userinfo' field, like InvoiceDialog,
that would also display 'Broadcasting...' while the tx is being
broadcast.

Note that in order to bump the fee again, the user will have to
leave this window and open it again.
2023-04-01 12:10:35 +02:00
ThomasV
f396d15146 qml: (clarity) use separate slots for sign and sign_and_broadcast. 2023-04-01 12:03:50 +02:00
ThomasV
986955a6e8 qml: allow user to delete invoices and requests from the list screen
also, delete expired requests before loading list
2023-03-31 20:00:29 +02:00
ThomasV
d4aeeaf541 follow-up c98b9e8d7b
(unintended deletion)
2023-03-31 18:36:45 +02:00
ThomasV
847c8d4941 balance details: use onClicked event. Early return if balance is not available 2023-03-31 16:47:15 +02:00
ThomasV
c98b9e8d7b qml: dashboard
Balance details are shown if the user presses and holds the
balance area; the idea is that this should be less chaotic
than if the popup is triggerred by a simple click. However,
we might as well try with a simple click, because we already
do it with transaction details; I am not sure what is the best
option, we should try both.

This also makes 'new channel' and 'swap' buttons available from
theBalance details, so that users do not need to visit the
channels list.
2023-03-31 16:47:15 +02:00
Sander van Grieken
2bdc303662 qml: keep lnurlData even after bolt11 has been retrieved, add isLnurlPay property and save bolt11 before triggering pay 2023-03-31 15:39:29 +02:00
Sander van Grieken
ec2f903573 qml: force Pin dialog above other dialogs 2023-03-31 15:38:53 +02:00
Sander van Grieken
244ead2624 qml: auto-pay if entering InvoiceDialog from a lnurl-pay dialog 2023-03-31 15:05:05 +02:00
SomberNight
771ffa371c qml: mempool histogram color bar: show tooltips
to teach meanings of colours and positions in the bar
2023-03-31 11:55:33 +00:00
SomberNight
f7e7b4c9db qml: mempool histogram color bar: flip sign in feerate label
I think this is more intuitive as a "greater than" relation sign
than to use a signal that the label is for the leftmost point in the coloured bar.
As in, "feerates not displayed towards that direction are even higher than this value".
2023-03-31 11:55:30 +00:00
Sander van Grieken
b8aa87ded8 qml: handle phase-2 lnurl errors from within WalletMainView, add sanity check on
the bolt11 invoice we get from the service
2023-03-31 13:21:11 +02:00
Sander van Grieken
df44a5c361 qml: port over 'show_qr to warn if QR code is missing data' 2023-03-31 10:50:11 +02:00
ThomasV
ea46d3c318 qml create request: if no address is available, show how to access
the list of pending requests.
2023-03-31 10:22:16 +02:00
ThomasV
1babc96913 qml: rename Invoices -> Saved Invoices, Receive Requests -> Pending Requests 2023-03-31 10:14:49 +02:00
ThomasV
4647fda04f qml: show invoices/requests lists through long press
I think we can re-enable the requests list, because requests
are now created explicitly by pressing the create request button.

Since this is an advanced feature, it should not be in the way of
people who do not want to see it. Here is a solution that might
work.
2023-03-30 16:09:59 +02:00
Sander van Grieken
8a2372a133 followup 4517b3c2bb 2023-03-30 16:05:10 +02:00
Sander van Grieken
4517b3c2bb qml: handle DataOverflow in qeqr.py and QRImage 2023-03-30 16:00:36 +02:00
Sander van Grieken
c08ca94591 qml: support create & save transaction on watch-only wallet, refactor showExport and supply
relevant help text when sharing a transaction
2023-03-30 12:28:09 +02:00
ThomasV
6bec498560 qml: use the same button for copy and paste 2023-03-30 12:26:35 +02:00
ThomasV
5ef7fabc73 qml InvoiceDialog: merge status and userinfo 2023-03-30 11:24:50 +02:00
Sander van Grieken
2cbb16ae4b qml: move save_tx to qewallet 2023-03-30 10:41:01 +02:00
SomberNight
81761c2ef1 qml: BalanceSummary to treat server_status=="connecting" same as DC-ed 2023-03-30 00:59:20 +00:00
SomberNight
3149ccf729 qml: update server in network dialog on more events
"defaultServerChanged" was not the right event to listen to. It is only sent
*after* the interface is ready.
"network_updated" is a bit overkill as it is triggered every time any of the
interfaces goes down or a new one is created, still, better to trigger a
few more times than to be stale.
In particular, if there is no internet connection, the server string is now
updated as expected, instead of showing stale values and ignoring trying
to change servers.
Also, a further state that did not exist before: just like it worked in
the kivy GUI, if the main server was changed but it is not yet connected,
instead of showing the old server still, we now show f"{new_server} (connecting...)".
2023-03-30 00:59:16 +00:00
SomberNight
1530668960 qt/qml: delay starting network until after first-start-network-setup
The qt, qml, and kivy GUIs have a first-start network-setup screen
that allows the user customising the network settings before creating a wallet.
Previously the daemon used to create the network and start it, before this screen,
before the GUI even starts. If the user changed network settings, those would
be set on the already running network, potentially including restarting the network.

Now it becomes the responsibility of the GUI to start the network, allowing this
first-start customisation to take place before starting the network at all.
The qt and the qml GUIs are adapted to make use of this. Kivy, and the other
prototype GUIs are not adapted and just start the network right away, as before.
2023-03-30 00:59:02 +00:00
SomberNight
9ef6d6a56f qml: rm QEConfig.serverString. Network.server is sufficient
If there is no network object, it's ok not to be able to customise it.
2023-03-30 00:58:58 +00:00
Sander van Grieken
cc60ab0b20 qml: move payment progress info text updates fully into qeinvoice, qeinvoice now updates itself
directly from backend wallet callbacks
2023-03-29 19:08:11 +02:00
Sander van Grieken
7efd6fe1e2 qml: don't show ln payment dialog, update info text instead 2023-03-29 19:08:11 +02:00