Commit Graph

3333 Commits

Author SHA1 Message Date
SomberNight
2ebf8fd9ef qt gui: use QGuiApplication.setApplicationName
I noticed that when running from source on macOS, the OS menubar has an "About Python" menu item,
instead of an "About Electrum" menu item. I tried to fix that by this, but actually it is not working :P

Nevertheless, this looks useful at least on Linux and Windows. E.g. when instantiating a new dialog
without an explicit title, the qt application name is used as default.

The application name, without this change AFAICS was already "Electrum" when running any of the binaries.
However when running from source, it was in some cases "python" or "run_electrum" or even "electrum-4"
(depending on OS and how the main script is started).
Now it is consistent -- except on macOS it still is not, as there it really wants to look for a .plist...
2024-09-09 16:34:43 +00:00
SomberNight
a674a22155 follow-up moving some funcs from ecc.py to bitcoin.py
follow-up 2f3d89f415
2024-09-03 16:58:41 +00:00
ghost43
fcb4d06421 Merge pull request #9170 from SomberNight/202408_android_qr_set_max_brightness
qml/android: set max screen brightness when displaying QR codes
2024-09-02 15:45:11 +00:00
SomberNight
a54751ee4f gui: qt: tx dialog: add option to copy scriptpubkey of output
if there is no corresponding address
(otherwise due to "..." elision, the full spk would be inaccessible)
2024-09-02 14:54:15 +00:00
SomberNight
7a7b43c0a8 qml/android: set max screen brightness when displaying QR codes
In some cases this makes it much easier to successfully scan a QR code.
I was trying to scan a PSBT using a laptop camera from my phone screen for 2 minutes, until I realised the screen brightness was the issue.  o.O
2024-08-21 23:37:36 +00:00
SomberNight
1880c6a749 qt wizard WCWalletName: focus password textedit
- between the Back btn and the Next btn, the latter should have priority for focus
- but if the user needs to enter the wallet password, that textedit should have focus

closes https://github.com/spesmilo/electrum/issues/9157
related c6802adbae
2024-08-13 04:05:03 +00:00
timesince
18d90aee4f chore: fix some comments and var name
Signed-off-by: timesince <seekseat@icloud.com>
2024-08-12 01:36:35 +08:00
SomberNight
76f5d6ceb0 qt gui: clean-up efilter when exiting
related: https://github.com/spesmilo/electrum/issues/6889#issuecomment-2184052577
2024-07-09 14:26:24 +00:00
SomberNight
2eb51bcbe6 trustedcoin: sanitize error messages coming from 2fa server
related https://github.com/spesmilo/electrum/issues/9096
2024-06-17 16:52:26 +00:00
ThomasV
2f3d89f415 prepare for separation of ecc module:
- move encrypt/sign functions elsewhere
- remove local dependencies in ecc.py, ecc_fast.py (except logging)
2024-06-17 13:05:57 +02:00
SomberNight
a2d5e31838 mnemonic: rename seed_type() fn
Some functions have an argument named "seed_type" in which it was annoying to call the seed_type() fn.
(especially for functions inside the same module)
2024-06-10 20:00:52 +00:00
accumulator
784f209d02 Merge pull request #9091 from accumulator/channel_backup_import_nolightning
qml: fix handling of channel backup import on lightning-disabled wallets
2024-06-10 17:28:27 +02:00
Sander van Grieken
8d9bcda36f qml: fix handling of channel backup import on lightning-disabled wallets 2024-06-10 15:07:02 +02:00
longxiangqiao
8b6eb24b81 chore: fix some comments
Signed-off-by: longxiangqiao <longxiangqiao@qq.com>
2024-06-10 14:25:22 +08:00
accumulator
15f13ebc66 Merge pull request #9076 from SomberNight/202405_android_config_pin
qml: "wallet_else_pin" auth should only use the wallet pw if is unified
2024-05-31 11:14:50 +02:00
SomberNight
db5f1a11a5 fix typo
note: "everytime" even appears in the old_mnemonic wordlist, but it is a misspelling.
2024-05-30 16:59:28 +00:00
SomberNight
11614f035d qml: "wallet_else_pin" auth should only use the wallet pw if is unified
related https://github.com/spesmilo/electrum/pull/9074
2024-05-30 16:17:21 +00:00
ghost43
183bdd1464 Merge pull request #9073 from accumulator/android_qr_scanner_fix
qml: don't unbind/unregister the ActivityResultListener from within the ActivityResultListener handler func
2024-05-30 15:51:26 +00: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
450b9a03ce qml: don't unbind/unregister the ActivityResultListener from within the ActivityResultListener handler func.
instead, schedule a queued finished signal to unregister the listener after the handler has finished.
See PythonActivity.java in P4A for why this probably causes the most often occurring crash we see on the Play Store:

```
Exception java.lang.RuntimeException:
  at android.app.ActivityThread.deliverResults (ActivityThread.java:5164)
  at android.app.ActivityThread.handleSendResult (ActivityThread.java:5205)
  at android.app.servertransaction.ActivityResultItem.execute (ActivityResultItem.java:51)
  at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2136)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:236)
  at android.app.ActivityThread.main (ActivityThread.java:8061)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:656)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:967)
Caused by java.util.ConcurrentModificationException:
  at java.util.ArrayList$Itr.next (ArrayList.java:860)
  at org.kivy.android.PythonActivity.onActivityResult (PythonActivity.java:218)
  at android.app.Activity.dispatchActivityResult (Activity.java:8501)
  at android.app.ActivityThread.deliverResults (ActivityThread.java:5157)
```
2024-05-30 14:53:33 +02:00
Sander van Grieken
3d189d99a5 followup 4159ceee35 2024-05-29 16:59:00 +02:00
Sander van Grieken
4159ceee35 qt: fix ReceiveWidget layout (fixes #9049) 2024-05-29 15:14:23 +02:00
SomberNight
7827be17d1 qt wizard: fix offline 2fa wallet creation in some cases
fixes https://github.com/spesmilo/electrum/issues/9037
2024-05-28 15:31:37 +00:00
SomberNight
e8a9e45291 qml wizard: even stricter validation for new wallet name
related: 07dc80dd9a
2024-05-28 14:20:28 +00:00
SomberNight
2f02e0acc3 qt main window: rm dead code 2024-05-23 13:38:18 +00:00
SomberNight
48513df4ae qml: NetworkOverview: show server height when syncing headers
for better feedback during initial header sync
2024-05-22 14:43:28 +00:00
Sander van Grieken
9d29e6e03c qml: log error if not able to retrieve private key for address 2024-05-16 12:12:26 +02:00
Sander van Grieken
cea9055a65 wizard: fix wrong icon and icon disappearing when resuming unfinished wallet 2024-05-16 00:08:07 +02:00
Sander van Grieken
082cf6677e qml: expose LIGHTNING_PAYMENT_BUDGET_FEE_MAX_MILLIONTHS in preferences 2024-05-09 12:31:51 +02:00
SomberNight
5b74aa443e qt settings: expose LIGHTNING_PAYMENT_BUDGET_FEE_MAX_MILLIONTHS
Expose as a slider; perhaps it is less footgunny this way?
2024-05-08 15:54:20 +00:00
SomberNight
c84664617d qml: qeinvoice: fix regression in update_userinfo
follow-up 3b0cdef871

```
 29.60 | E | lnworker.LNWallet.[test_segwit_2] | Exception in pay_invoice: TypeError("unhashable type: 'list'")
Traceback (most recent call last):
  File "/home/user/wspace/electrum/electrum/util.py", line 1153, in wrapper
    return await func(*args, **kwargs)
  File "/home/user/wspace/electrum/electrum/lnworker.py", line 1518, in pay_invoice
    self.set_invoice_status(key, PR_INFLIGHT)
  File "/home/user/wspace/electrum/electrum/lnworker.py", line 2404, in set_invoice_status
    util.trigger_callback('invoice_status', self.wallet, key, status)
  File "/home/user/wspace/electrum/electrum/util.py", line 1796, in trigger_callback
    callback(*args)
  File "/home/user/wspace/electrum/electrum/gui/qml/qeinvoice.py", line 90, in on_event_invoice_status
    self.update_userinfo()
  File "/home/user/wspace/electrum/electrum/gui/qml/qeinvoice.py", line 327, in update_userinfo
    self.userinfo = userinfo_for_invoice_status([self.status])
  File "/home/user/wspace/electrum/electrum/gui/qml/qeinvoice.py", line 305, in userinfo_for_invoice_status
    return {
TypeError: unhashable type: 'list'
```
2024-05-06 18:11:31 +00:00
SomberNight
13d9677e53 transaction: tx.sign API change: rm hex usage 2024-04-29 17:10:30 +00:00
SomberNight
2f1095510c bitcoin.py/transaction.py: API changes: rm most hex usage
Instead of some functions operating with hex strings,
and others using bytes, this consolidates most things to use bytes.

This mainly focuses on bitcoin.py and transaction.py,
and then adapts the API usages in other files.

Notably,
- scripts,
- pubkeys,
- signatures
should be bytes in almost all places now.
2024-04-29 17:10:26 +00:00
Sander van Grieken
3b0cdef871 qml: lightning invoice status can be one of onchain invoice states when using fallback address. (fixes #9018) 2024-04-24 13:37:33 +02:00
Sander van Grieken
41bb849f8a qt: normalize wallet path before lookup in window list 2024-04-24 13:16:12 +02:00
SomberNight
96bb1611c5 follow-up plugins changes: fix qml gui
follow-up https://github.com/spesmilo/electrum/pull/8713

```
  1.35 | E | __main__ | daemon.run_gui errored
Traceback (most recent call last):
  File "/home/user/wspace/electrum/./run_electrum", line 458, in handle_cmd
    d.run_gui()
  File "/home/user/wspace/electrum/electrum/daemon.py", line 623, in run_gui
    self.gui_object = gui.ElectrumGui(config=self.config, daemon=self, plugins=self._plugins)
  File "/home/user/wspace/electrum/electrum/util.py", line 482, in do_profile
    o = func(*args, **kw_args)
  File "/home/user/wspace/electrum/electrum/gui/qml/__init__.py", line 82, in __init__
    self.app = ElectrumQmlApplication(sys.argv, config=config, daemon=daemon, plugins=plugins)
  File "/home/user/wspace/electrum/electrum/gui/qml/qeapp.py", line 428, in __init__
    self.plugins.load_plugin('trustedcoin')
  File "/home/user/wspace/electrum/electrum/plugin.py", line 269, in load_plugin
    raise Exception(f"could not find plugin {name!r}")
Exception: could not find plugin 'trustedcoin'
```
2024-04-18 17:01:08 +00:00
ThomasV
8759928ec0 Merge pull request #9000 from SomberNight/202404_ecc_schnorr
ecc: add bindings for schnorr sign/verify, and refactor
2024-04-15 11:57:29 +02:00
ThomasV
c9820aeca0 Qt: add download_plugin_dialog 2024-04-13 11:35:49 +02:00
ThomasV
ad774a49be external plugins: add methods to read image files 2024-04-13 11:35:49 +02:00
ThomasV
858d999d31 Allow external plugins
- borrows code brom ElectronCash
 - external plugins are imported as zip files
 - check hash from plugins.json file
2024-04-13 11:35:49 +02:00
SomberNight
bd9d0ccc33 ecc: refactor/clean-up sign/verify APIs 2024-04-11 15:25:45 +00:00
SomberNight
f495511886 safer os.chmod for wallet files and config: set perms before write
Set unix file permissions first, before writing data.
2024-04-08 14:09:00 +00:00
Sander van Grieken
79f9b499ff qt: focus reason can't be None (fixes #8962) 2024-04-08 13:48:03 +02:00
ThomasV
17599de611 save notes whenever modified, using 10s rate limiter. fixes #8951 2024-03-27 16:44:31 +01:00
ThomasV
61dc8b7c85 Merge pull request #8894 from SomberNight/202402_qetxdetails_rbf_localtx
qml: QETxDetails: defer to wallet.get_tx_info() for rbf/cpfp
2024-03-15 11:18:03 +01:00
ThomasV
dcdbb0fb9c Merge pull request #8909 from accumulator/qml_finalizer_options
qml: add tx options to ConfirmTxDialog, RbfBumpFeeDialog
2024-03-15 10:46:33 +01:00
SomberNight
01155ac6f5 swaps: homogenise gui messages
see https://github.com/spesmilo/electrum/issues/8940
2024-03-13 13:52:40 +00:00
ThomasV
c6802adbae qt wizard: set focus on next_button 2024-03-01 16:42:16 +01:00
SomberNight
d6ef53dfab qt: fix some strings for localization
closes https://github.com/spesmilo/electrum/issues/8919
2024-02-28 13:40:01 +00:00
Sander van Grieken
d0c37c6e33 qml: refactor help text in CpfpBumpFeeDialog, move most to help text popup 2024-02-23 11:11:12 +01:00