Commit Graph

14656 Commits

Author SHA1 Message Date
Sander van Grieken bf072b037c hook up invoice confirm to payment flow (onchain only)
fix some leftover QEAmount issues
2022-07-07 18:29:01 +02:00
Sander van Grieken 0dce872d37 add invoice status 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 cd4bd39583 wip 2022-07-07 18:29:01 +02:00
Sander van Grieken 8a3aff73fc fix qewallet calls to invoice list model 2022-07-07 18:29:01 +02:00
Sander van Grieken 3aef04f824 factor out InvoiceDelegate 2022-07-07 18:29:01 +02:00
Sander van Grieken 06aed727ef add listmodel for send queue/invoices
generalize request and invoice list models into abstract base
2022-07-07 18:29:01 +02:00
Sander van Grieken e8ce221a34 Qt.UserRole can be 0 offset, don't repeat wallet create request dict 2022-07-07 18:29:01 +02:00
Sander van Grieken 6a22a7698c various UI 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 3b25f00041 update History page delegates when rates or rate settings change 2022-07-07 18:29:01 +02:00
Sander van Grieken 0e42744bc0 add request status code to listmodel, update request delegates,
enable bip21 uri copy
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 b2f2dfc44f historic rates 2022-07-07 18:29:01 +02:00
Sander van Grieken 5c7060fffb add (today, yesterday, last week, last month, older) sections to history 2022-07-07 18:29:01 +02:00
Sander van Grieken 3868878be4 filter out more unneeded files for packaging 2022-07-07 18:29:01 +02:00
Sander van Grieken c4c35c7cde make Constants an Item and a child of main so it properly inherits material
style settings from main
2022-07-07 18:29:01 +02:00
Sander van Grieken 90416bd6e2 let most signals not be handled in the UI thread,
use quint64 type for slots where satoshis are expected
2022-07-07 18:29:01 +02:00
Sander van Grieken bbaf0fe5db UI history page 2022-07-07 18:29:01 +02:00
Sander van Grieken 6cb3a07500 move reusable controls into controls/ subdir 2022-07-07 18:29:01 +02:00
Sander van Grieken f2a9b5d06a add option for unformatted numbers to string 2022-07-07 18:29:01 +02:00
Sander van Grieken fad2d879ef UI fixes 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 a8ff969ad7 send/receive amounts same style 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 e30cb4ed5f android back button pops pages from stackview unless we reach
bottom of stack
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 d5cfb67ebe add fiat<->sat conversion methods and hook up UI 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 50e7c082cd request dialog improve, icons 2022-07-07 18:29:01 +02:00
Sander van Grieken a65ea46b5d avoid duplicate QEWallet instances 2022-07-07 18:29:01 +02:00
Sander van Grieken 201669d178 UI here and there 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 d88cd75460 keep all models and various UI items updated on new transactions 2022-07-07 18:29:01 +02:00
Sander van Grieken cb203dfe50 show popup for user notifications 2022-07-07 18:29:01 +02:00
Sander van Grieken 3b66cf70ee qewallet: minimally viable send_onchain() 2022-07-07 18:29:01 +02:00
Sander van Grieken 3a8e787b58 qenetwork: add height and fiat changed signals 2022-07-07 18:29:01 +02:00
Sander van Grieken 1c7f559f32 UI use constants 2022-07-07 18:29:01 +02:00
Sander van Grieken 2229322beb copy closebutton.png to gui/icons 2022-07-07 18:29:01 +02:00
Sander van Grieken 64745ece10 add simple internal notification popup,
refactor MessageDialog
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 3942745270 add input method hints 2022-07-07 18:29:01 +02:00
Sander van Grieken 5e039a215a forgot RequestDialog 2022-07-07 18:29:01 +02:00
Sander van Grieken da727278fa small fixes 2022-07-07 18:29:01 +02:00
Sander van Grieken 490862d096 add RequestDialog, open request on create, and implement UI delete request 2022-07-07 18:29:01 +02:00
Sander van Grieken 1609fe8663 parse QR async 2022-07-07 18:29:01 +02:00
Sander van Grieken 756cd9706f use fixed font on amount, address fields 2022-07-07 18:29:01 +02:00
Sander van Grieken 758a30462e implement QR code scanning 2022-07-07 18:29:01 +02:00