Commit Graph

50 Commits

Author SHA1 Message Date
Sander van Grieken
fa45e1b7ba qml: fix name clash QML vs registered QObjects NewWalletWizard and ServerConnectWizard 2023-02-16 13:22:24 +01:00
Sander van Grieken
1bfc4f1529 qml: android notification params 2023-02-10 13:29:18 +01:00
Sander van Grieken
11439fb3fd qml: don't stack exception dialogs when multiple exceptions happen 2023-02-09 01:34:54 +01:00
Sander van Grieken
5eb7bcebef qml: remove ugly notification popup, add wallet name to notifications 2023-02-07 13:55:22 +01:00
Sander van Grieken
26f7238eb5 qml: add initial generic listmodel filter QEFilterProxyModel 2023-01-30 16:22:29 +01:00
Sander van Grieken
58d25d4a5d qml: flake8 happifier 2023-01-10 17:32:20 +01:00
Sander van Grieken
bc91732f22 qml: crash handler, move Exception_Hook to qeapp.py 2023-01-10 17:17:19 +01:00
Sander van Grieken
fa030b3fa5 qml: initial crash handler impl 2023-01-10 17:02:38 +01:00
Sander van Grieken
1887502151 qml: remove back button in top bar, move menu button to left
add AppController.isAndroid function to test for android platform. Disable fade in if not on android
2023-01-06 13:42:59 +01:00
Sander van Grieken
78df722419 qml: add initial logic and UI for CPFP 2022-11-25 18:43:05 +01:00
Sander van Grieken
8fbfe87e78 qml: rename QETxFeeBumper -> QETxRbfFeeBumper, BumpFeeDialog.qml -> RbfBumpFeeDialog.qml 2022-11-23 17:10:34 +01:00
Sander van Grieken
990ec311d2 qml: implement cancel rbf tx 2022-11-22 13:37:46 +01:00
Sander van Grieken
12086ba0de qml: unify to single WalletListModel, WalletDB trigger actions on every path set,
camelcase more QML exposed functions/slots.
2022-11-11 12:00:07 +01:00
Sander van Grieken
902f16204c qml: initial RbF bump fee feature 2022-10-25 15:13:57 +02:00
Sander van Grieken
15e2ed4f58 rewrite server connect wizard to new wizard style
'last' property on WizardComponents is now queried from UI, not from the wizard.
This allows the content of the WizardComponent itself to be taken into account.
2022-10-21 13:32:16 +02:00
Sander van Grieken
43bac2edff qml: use new wizard approach in qml and also implement 2FA/trustedcoin 2022-10-21 13:31:24 +02:00
Sander van Grieken
49037ecc85 qml: handle bitcoin: and lightning: uri intents 2022-10-18 18:31:59 +02:00
Sander van Grieken
27999a9583 qml: clean up, generalize plugin gui base, enumerate plugins in gui
(still quite crude impl, dynamic enable/disable plugin gui is misaligned
with backend)
2022-09-08 15:15:46 +02:00
Sander van Grieken
32a81d8ee7 qml: initial plugin support, with labelsync mostly implemented 2022-09-08 12:19:38 +02:00
Sander van Grieken
f05ff0c9b8 qml: add QERequestDetails component.
Auto binds to wallet request status update signal so qml doesn't have to.
implements timer to update status string when near expiry.
2022-08-23 17:13:22 +02:00
Sander van Grieken
279b5a1b48 qml: let qenetwork monitor gossip events, start/stop gossip service on config change
add simple gossip feedback on NetworkStats page
2022-07-22 14:08:06 +02:00
Sander van Grieken
a970c0f78a qml: add initial bolt-11/bip-21 chooser in requestdialog
implement proper placement of icon over qr code
fix urlencoding in qr imageprovider
2022-07-21 12:56:55 +02:00
Sander van Grieken
0cc22931d8 qml: don't expose WalletListModel as a declarative type 2022-07-20 11:08:46 +02:00
Sander van Grieken
894495aa92 qml: clean up 2022-07-12 19:07:19 +02:00
Sander van Grieken
b2fafcb428 add initial submarine swap functionality 2022-07-07 18:29:02 +02:00
Sander van Grieken
4c9f713f9a further separate invoice objects 2022-07-07 18:29:02 +02:00
Sander van Grieken
12d726efc2 split user entered fields object from invoice uri parsing object 2022-07-07 18:29:01 +02:00
Sander van Grieken
04ce548e42 initial lightning channel details, action menu 2022-07-07 18:29:01 +02:00
Sander van Grieken
9243f3b896 implement wallet password change.
implement wallet delete (though actual wallet file delete is left out still)
2022-07-07 18:29:01 +02:00
Sander van Grieken
d3e88064d0 Use screen size as upper bound for qr code size
also fix some typing issues
2022-07-07 18:29:01 +02:00
Sander van Grieken
8f8a1fc8cf wip 2022-07-07 18:29:01 +02:00
Sander van Grieken
c55aa7bb48 wip lightning 2022-07-07 18:29:01 +02:00
Sander van Grieken
e84bc4561f bold font wasn't loaded when regular font loading was succesful
some styling fixes
2022-07-07 18:29:01 +02:00
Sander van Grieken
bbc1f4dba8 enable android share option 2022-07-07 18:29:01 +02:00
Sander van Grieken
a6e72ae42f add initial Transaction Details page and backing qobject 2022-07-07 18:29:01 +02:00
Sander van Grieken
bb2b1738b7 add initial address detail page 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
cd4bd39583 wip 2022-07-07 18:29:01 +02:00
Sander van Grieken
34ef93b2b5 add confirm payment dialog/feepicker and qobject backing 2022-07-07 18:29:01 +02:00
Sander van Grieken
08db3190ba add android notification
load both regular and bold fonts
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
d5cfb67ebe add fiat<->sat conversion methods and hook up UI 2022-07-07 18:29:01 +02:00
Sander van Grieken
ddbd785a46 add version information to QML context 2022-07-07 18:29:01 +02:00
Sander van Grieken
6cf4fc9e1e implement user notifications for new_transaction events
As the QML app can have multiple active wallets managed from
a single window (unlike the desktop Qt version), we let each
wallet manage its own user notification queue (as there are
some rules here specific to each wallet, e.g. not emitting
user notifications for each tx while the wallet is still
syncing), including collating and rate limiting. The app then
consumes the userNotify events from all active wallets, and
adds these to its own queue, which get displayed (eventually,
again implementing rate limiting) to the user.

It also uses timers efficiently, only enabling them if there
are actual userNotify events waiting.

If at any point the QML app wants to use multiple windows,
it can forego on the app user notification queue and instead
attach each window to the associated wallet userNotify signal.

        app
         ▲
         │
         │  timer -> userNotify(msg) signal
         │
  ┌──┬───┴───────┐
  │  │           │  app user notification queue
  └──┴───▲───────┘
         │
         │  timer -> userNotify(wallet, msg) signal
         │
  ┌──┬───┴───────┐
  │  │           │  wallet user notification queue
  └──┴───▲───────┘
         │
         │  new_transaction
         │
      wallet
2022-07-07 18:29:01 +02:00
Sander van Grieken
d1623c5ed3 QRParser now a type, not a context property 2022-07-07 18:29:01 +02:00
Sander van Grieken
16a2d0c7fb add PT Mono bold 2022-07-07 18:28:00 +02:00
Sander van Grieken
88e8993442 Add PT Mono monospace font. 2022-07-07 18:28:00 +02:00
Sander van Grieken
492f246b9a qml: add QR code imageprovider using qrcode/PIL
adds buildozer 'pillow' recipe to requirements

add initial PoC on qml receive tab
2022-07-07 18:28:00 +02:00
Sander van Grieken
c999b3a297 add Bitcoin QObject for seed generation 2022-07-07 18:28:00 +02:00
Sander van Grieken
0682f05d95 factor off the main QGuiApplication class into its own file 2022-07-07 18:28:00 +02:00