Commit Graph

70 Commits

Author SHA1 Message Date
SomberNight 8945dcda7a qt init: on exc, let crash reporter appear instead of silently dying
related: https://github.com/spesmilo/electrum/issues/7390

```
20210706T091826.513398Z |    ERROR | __main__ | daemon.run_gui errored
Traceback (most recent call last):
  File "run_electrum", line 407, in handle_cmd
  File "electrum\daemon.py", line 584, in run_gui
  File "electrum\gui\qt\__init__.py", line 414, in main
  File "electrum\gui\qt\__init__.py", line 291, in wrapper
  File "electrum\gui\qt\__init__.py", line 316, in start_new_window
  File "electrum\gui\qt\__init__.py", line 361, in _start_wizard_to_select_or_create_wallet
  File "electrum\wallet_db.py", line 73, in __init__
  File "electrum\wallet_db.py", line 106, in load_data
  File "electrum\util.py", line 412, in <lambda>
  File "electrum\util.py", line 408, in do_profile
  File "electrum\wallet_db.py", line 175, in upgrade
  File "electrum\wallet_db.py", line 540, in _convert_version_24
ValueError: too many values to unpack (expected 2)
```
2021-07-07 19:19:43 +02:00
SomberNight 013cf869f1 qt: qrreader: keep both old and new toolchain; try to abstract it away 2021-06-25 16:52:02 +02:00
SomberNight c1dbcab9bb qt: new qrreader using QtMultimedia; drop CalinsQRReader(mac)
This commit ports the work of EchterAgo and cculianu from Electron-Cash,
to implement a new toolchain to scan qr codes.

Previously, on Linux and Win, we have been using zbar to access the camera
and read qrcodes; and on macOS we used CalinsQRReader (an objective-C
project by cculianu).

The new toolchain added here can use QtMultimedia to access the camera,
and then feed that image into zbar. When used this way, zbar needs
fewer dependencies and is easier to compile, in particular it can be
compiled for macOS.

The new toolchain works on all three platforms, with some caveats
(see code comments in related commits) -- so we also keep the end-to-end
zbar toolchain; but at least we can drop CalinsQRReader.

The related changes in Electron-Cash are spread over 50+ commits (several PRs and direct
pushes to master), but see in particular:
https://github.com/Electron-Cash/Electron-Cash/pull/1376

some other interesting links:
https://github.com/Electron-Cash/Electron-Cash/commit/b2b737001c8cc41a38fa580ea252a6d24e08f5d5
https://github.com/Electron-Cash/Electron-Cash/commit/163224cf1fad3af63f2d3cbe68a34fb8ff279af6
https://github.com/Electron-Cash/Electron-Cash/commit/3b31e0fcb13f67646228ff42c0dd39d2a0912291
https://github.com/Electron-Cash/Electron-Cash/commit/eda015908e9d6ea9a0adfbda9db55b929c0926ba
https://github.com/Electron-Cash/Electron-Cash/pull/1545
https://github.com/Electron-Cash/Electron-Cash/commit/052aa06c23b939adcea07c701f70ae28ebcf9e0a
2021-06-25 16:51:58 +02:00
SomberNight c41cd4ae04 qt init: move Ctrl-C handling earlier 2021-04-06 18:27:28 +02:00
SomberNight 1cd5235426 qt init: rm gui.close() method
There is gui.stop() already, which does the same thing (which is shared API with kivy).
Also, the _cleanup_before_exit() call was redundant in close(),
aboutToQuit handles that.
2021-04-04 01:05:23 +02:00
SomberNight a3b16c7640 qt init: shutdown properly if last open window was a wizard
fixes #7171
2021-04-04 00:49:25 +02:00
SomberNight 981381346f qt: even more clean-up before exiting
related: https://github.com/spesmilo/electrum/issues/6889#issuecomment-812776695
2021-04-03 19:17:32 +02:00
SomberNight be43632cc4 qt init: more clean-up for system tray
related: https://github.com/spesmilo/electrum/issues/6889#issuecomment-812776695
2021-04-03 06:17:47 +02:00
SomberNight 14c5ceeacf qt init: (trivial) refactor system tray 2021-04-03 05:42:32 +02:00
SomberNight e686b40819 qt init: don't catch BaseException unless there is good reason
let KeyboardInterrupt propagate out
2021-04-03 01:47:44 +02:00
SomberNight 34e64ef152 qt gui: some more clean-up when exiting
related: https://github.com/spesmilo/electrum/issues/6889

This fixes the case where the user quits by pressing Ctrl+C,
and some other minor things.

There is still another issue that sometimes causes a segfault during shutdown...
2021-04-03 01:44:42 +02:00
ThomasV a4210ce5e7 Qt: remove the 'local watchtower' option from GUI.
It is not realistic to expect Electrum to be used as a watchtower
in GUI mode, and possibly counter-productive (may set wrong
expectations).

A proper watchtower should be configured as a daemon. The
documentation will be updated to reflect this change.
2021-03-28 10:44:03 +02:00
Neil Booth 8b5e312e7e qt: fix handling BIP21 URI from e.g. website on macOS
fixes #6933

based on https://github.com/Electron-Cash/Electron-Cash/commit/e2171f702d0e83abe368d3013dccc5ee3577be6a

Co-authored-by: SomberNight <somber.night@protonmail.com>
2021-01-21 04:41:03 +01:00
SomberNight 95b08e9961 plugins: remove 'on_new_window' hook 2020-12-08 10:33:43 +01:00
bitromortac 4efcb53d24 network: load gossip db early
The gossip db is loaded early when the network is started to save
time when the gui is locked and a wallet not yet loaded. Side effects
of the LNWallet to start peering when a channel db is loaded is
circumvented.
2020-10-22 18:05:51 +02:00
ThomasV 9547a4e60c Qt: override 'persist_daemon' option if users exits from menu 2020-06-30 11:16:27 +02:00
SomberNight 24221f8fca plugins: fix labels plugin FIXME re "just enabled plugin" 2020-05-25 17:31:13 +02:00
SomberNight a4bec80efe (trivial) log Qt version at startup 2020-05-14 19:15:50 +02:00
ThomasV 8f41aeb783 Replace wallet backup with channel backups
- channels can be backed up individually
 - backups are added to lnwatcher
 - AbstractChannel ancestor class
2020-04-10 14:45:23 +02:00
SomberNight e6d43b60fa qt hww show_settings_dialog: don't scan devices in GUI thread
Just makes sense in general.
Also, previously, the GUI would freeze if right after startup the user
clicked the hww status bar icon (especially with multiple hww connected).
2020-04-01 21:09:06 +02:00
ThomasV 0d160cceea Qt: test if lightinng is running 2020-03-06 11:23:26 +01:00
ThomasV 62eceeb573 Save and read lighting backups (Qt) 2020-02-15 16:28:15 +01:00
ThomasV e1ce3aace7 Separate db from storage
- storage is content-agnostic
 - db and storage are passed to wallet contructor
2020-02-10 17:45:23 +01:00
SomberNight 94888739d3 try to fix "--offline" mode 2020-01-09 19:23:24 +01:00
ThomasV fc85dcead6 follow-up previous commit 2019-11-23 11:37:01 +01:00
ThomasV 6c62fb03ac fix #5733 2019-11-23 11:02:31 +01:00
ThomasV 90ce9f195b Allow user to enable lightning in the GUI. Make it a per-wallet setting. 2019-10-13 20:34:38 +02:00
ThomasV af4a3328f7 Qt: separate lightning and watchtower dialogs 2019-10-12 14:30:52 +02:00
SomberNight 04edad9984 config: no longer singleton. it is passed to Wallet.__init__
The few other cases that used SimpleConfig.get_instance() now
either get passed a config instance, or they try to get a reference
to something else that has a reference to a config.
(see lnsweep, qt/qrcodewidget, qt/qrtextedit)
2019-09-22 20:46:01 +02:00
SomberNight 1a08063928 config: remove 'open_last_wallet' side-effecting
related: #5629
2019-09-10 17:10:52 +02:00
SomberNight bcdb72ae93 qt: add some type hints 2019-09-09 22:19:36 +02:00
ThomasV 32e517f407 improve lightning_dialog GUI settings 2019-08-20 09:03:11 +02:00
ThomasV f5c58c5e19 lightning network dialog 2019-08-20 09:03:11 +02:00
ThomasV db60634774 use config instead of watchtower_window to decide if we close the app 2019-08-20 09:03:11 +02:00
Janus f5cee9ecf6 lightning: post-rebase fixes, read_QIcon and invalid import 2019-08-20 09:03:11 +02:00
ThomasV 19e60f00bb add watchtower_window 2019-08-20 09:03:11 +02:00
Janus 18963405ee lightning: remove hub based approach, port qt gui to lnbase 2019-08-20 09:03:09 +02:00
Janus d84eab0418 lightning: complete moving of lightning objects, acquire net/wallet lock while answering lightning requests 2019-08-20 09:03:09 +02:00
SomberNight f60f690ca9 change many str(e) to repr(e) as some exceptions were cryptic
it's often valuable to see the type of the exception
(especially as for some exceptions str(e) == '')
2019-07-17 20:12:52 +02:00
SomberNight e415c0d930 wallet: (fix) synchronizer would also resub closed wallets...
network cb was not removed, so Synchronizer and the wallet itself was
kept in memory; and Synchronizer kept working
2019-05-14 17:04:03 +02:00
SomberNight f6dfcccf8c qt: factor out util.MessageBoxMixin.msg_box into function and use it
so these dialogs also get our custom default settings applied,
e.g. their text is selectable by mouse
2019-05-13 23:59:29 +02:00
SomberNight 4db1535bce qt wizard: catch wallet/bitcoin exceptions (regression)
fix #5342
2019-05-13 22:56:38 +02:00
SomberNight 00b2fee461 qt dark style: fix padding of PayToEdit
based on Electron-Cash/Electron-Cash@7e69f0e6ea
see ColinDuquesnoy/QDarkStyleSheet#159
2019-05-05 02:14:07 +02:00
SomberNight 3385a94753 logging: basics 2019-05-02 15:19:03 +02:00
SomberNight 99f9a1b484 qt: warn user if in testnet mode
closes #5295
2019-04-28 06:31:01 +02:00
SomberNight d55a045405 qt wizard: minor clean-up 2019-03-04 02:20:34 +01:00
SomberNight 2da6692f73 wizard: some fixes
related: #5174
2019-03-04 02:08:23 +01:00
SomberNight 4b36114d0d small fixups 2019-02-28 09:02:58 +01:00
ThomasV 7f2083f667 separate storage and database (JsonDB) 2019-02-28 09:02:58 +01:00
ThomasV d5790ea109 wizard: do not use on storage object during wallet creation 2019-02-28 09:02:58 +01:00