Commit Graph

43 Commits

Author SHA1 Message Date
Josh Geden
6331448860 qml: add config setting for max brightness on qr display 2025-01-22 09:47:10 +01:00
Sander van Grieken
8085c41cfb qml: don't rely on wallet when deactivating PIN and no wallet loaded (fixes #8366) 2024-05-30 15:23:25 +02:00
Sander van Grieken
082cf6677e qml: expose LIGHTNING_PAYMENT_BUDGET_FEE_MAX_MILLIONTHS in preferences 2024-05-09 12:31:51 +02:00
Sander van Grieken
a9282c0e36 qml: add tx options to ConfirmTxDialog, RbfBumpFeeDialog 2024-02-23 10:31:40 +01:00
SomberNight
0dae17339d qml: add config setting to allow screenshots
On Android, we disallow screenshots on screens where the seed is visible.
(The seed is extremely sensitive data that should not be stored digitally without
significant precautions but it's also cumbersome to write down or memorise, so
some people instinctively just try to take a screenshot of it when creating a wallet.)
We do this by using the built-in OS mechanism of setting FLAG_SECURE on the window.
However, on some devices with custom ROMs (one report from LineageOS, one from /e/OS),
unsetting FLAG_SECURE crashes the application for some reason.

As a workaround, this commit adds a config setting into the Preferences,
to disable this mechanism and just always allow screenshots.
(note that you can get into the qml Preferences before creating/opening any wallet)

ref https://github.com/spesmilo/electrum/issues/8522
2023-12-27 07:28:39 +00:00
Sander van Grieken
6270eae5c9 qml: port PyQt5 to PyQt6 2023-11-07 10:16:18 +01:00
Sander van Grieken
c694415b4b qml: add addresslist filter persistence 2023-11-01 18:23:16 +01:00
Sander van Grieken
190c19d48c whitespace, imports, code style 2023-09-22 16:38:37 +02:00
SomberNight
888291a8f8 qml: fix lnurl-pay when config.BTC_AMOUNTS_ADD_THOUSANDS_SEP is True
when paying an lnurl-pay that provides an amount interval,
the amount field is editable by the user and it expects no spaces
2023-06-23 16:23:12 +00:00
SomberNight
24980feab7 config: introduce ConfigVars
A new config API is introduced, and ~all of the codebase is adapted to it.
The old API is kept but mainly only for dynamic usage where its extra flexibility is needed.

Using examples, the old config API looked this:
```
>>> config.get("request_expiry", 86400)
604800
>>> config.set_key("request_expiry", 86400)
>>>
```

The new config API instead:
```
>>> config.WALLET_PAYREQ_EXPIRY_SECONDS
604800
>>> config.WALLET_PAYREQ_EXPIRY_SECONDS = 86400
>>>
```

The old API operated on arbitrary string keys, the new one uses
a static ~enum-like list of variables.

With the new API:
- there is a single centralised list of config variables, as opposed to
  these being scattered all over
- no more duplication of default values (in the getters)
- there is now some (minimal for now) type-validation/conversion for
  the config values

closes https://github.com/spesmilo/electrum/pull/5640
closes https://github.com/spesmilo/electrum/pull/5649

Note: there is yet a third API added here, for certain niche/abstract use-cases,
where we need a reference to the config variable itself.
It should only be used when needed:
```
>>> var = config.cv.WALLET_PAYREQ_EXPIRY_SECONDS
>>> var
<ConfigVarWithConfig key='request_expiry'>
>>> var.get()
604800
>>> var.set(3600)
>>> var.get_default_value()
86400
>>> var.is_set()
True
>>> var.is_modifiable()
True
```
2023-05-25 17:39:48 +00:00
SomberNight
03ab33f4b2 SimpleConfig: change API of set_key(): "save" is now kwarg-only 2023-05-25 17:37:16 +00:00
SomberNight
19759281ef qml: follow-up BtcField validator: take base unit fully into account
Not just for the fractional part, but also for the integer part.

follow-up 4df6052567
2023-05-10 13:06:38 +00:00
Sander van Grieken
4df6052567 qml: add validators for BtcField and FiatField controls 2023-05-09 15:43:52 +02:00
SomberNight
312f2641e7 don't use bare except
use "except Exception", or if really needed explicitly "except BaseException"
2023-04-24 12:58:01 +00:00
Sander van Grieken
4c87773174 qml: move user_knowns_press_and_hold to config 2023-04-03 10:26:03 +02:00
SomberNight
fc6cbb39ea qml: QEConfig.formatMilliSats to use config.format_amount 2023-03-31 22:17:53 +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
8fe181d757 qml: sort languages 2023-03-03 15:50:42 +01:00
Sander van Grieken
264cb7846f qml: add language selection to qeconfig.py/Preferences 2023-01-30 14:12:46 +01:00
Sander van Grieken
a8f1d1c326 qml: remember user selected request type and pre-select on subsequent payment requests 2023-01-27 11:44:46 +01:00
Sander van Grieken
0bc8460005 qml: don't initialize instance variables on class scope for non-singletons
(this somehow escaped attention before, as most objects usually don't have multiple instances,
unless multiple wallets are open at the same time.)
Also, move all signal declarations, class constants and variables to the top of class definitions.
2023-01-12 13:09:21 +01:00
ThomasV
e1dc7d1e6f Set the RBF flat to all transactions, and remove the 'use_rbf'
preference from the GUI, because the mempoolfullrbf option in
Bitcoin 0.24 makes RBF signaling pretty meaningless. Fixes #8088.

Note: RBF remains disabled for channel funding transactions.
In that case, the flag is actually only used as a semaphore
between different instances of the same wallet.
2022-12-10 18:58:15 +01:00
Sander van Grieken
0c9d4abb82 qml: show 2FA status and billing info in WalletDetails, expose billing schedule setting in config 2022-11-04 13:35:15 +01:00
SomberNight
34b594ea40 android: add setting to enable debug logs
If enabled, we log to stderr, which can get inspected via logcat.
Not user-friendly at all - but previously there was no way to get logs from a release build.

closes https://github.com/spesmilo/electrum/issues/7409
2022-10-07 20:28:52 +00:00
Sander van Grieken
dff435a745 qml: expose use_recoverable_channels in config/preferences 2022-10-04 14:20:46 +02:00
Sander van Grieken
e5951bbd2d qml: expose RbF in config/preferences 2022-10-04 14:14:03 +02:00
Sander van Grieken
ae15c0527b qml: expose bolt11_fallback in preferences 2022-09-29 13:18:13 +02:00
Sander van Grieken
fb68931a8d allow zero amount invoices, add edit amount option for invoices 2022-09-28 18:21:07 +02:00
Sander van Grieken
5f9068d7b0 add default request expiry to preferences/config 2022-09-28 18:21:07 +02:00
Sander van Grieken
70cf44ccec qml: wip single password 2022-07-12 16:55:11 +02:00
Sander van Grieken
2a13212ded implement auth by PIN and allow auth override to wallet password
by passing method='wallet' to auth_protect
2022-07-07 18:30:20 +02:00
Sander van Grieken
6a1c39728f add 'spend unconfirmed' config option 2022-07-07 18:30:20 +02:00
Sander van Grieken
8f8a1fc8cf wip 2022-07-07 18:29:01 +02:00
Sander van Grieken
81b1f774e2 expose more trampoline boilerplate
allow delegation of make_tx and accept/send
2022-07-07 18:29:01 +02:00
Sander van Grieken
a163268d79 more QEAmount refactoring 2022-07-07 18:29:01 +02:00
Sander van Grieken
5031391484 add a QEAmount type for storing/passing BTC amounts in the widest sense
from a UI perspective. Stores sats, millisats (LN), whether MAX amount is
requested etc

some refactor QEInvoice type and Send page
2022-07-07 18:29:01 +02:00
Sander van Grieken
7013f9d26b generate and parse bip 21 qr codes 2022-07-07 18:29:01 +02:00
Sander van Grieken
d3e2737308 complete and refactor Fx preferences and use in Send/Receive tabs 2022-07-07 18:29:01 +02:00
Sander van Grieken
ff33102b91 use qint64 for sats, not int, as it will overflow 2022-07-07 18:29:01 +02:00
Sander van Grieken
5d77daa5e3 add currencies to preferences 2022-07-07 18:29:01 +02:00
Sander van Grieken
7b71323506 cleanup 2022-07-07 18:28:00 +02:00
Sander van Grieken
426198dd42 add base unit setting and conversion methods in qeconfig.py 2022-07-07 18:28:00 +02:00
Sander van Grieken
d13f5d0da0 qml: add server connect wizard 2022-07-07 18:28:00 +02:00