Commit Graph

14625 Commits

Author SHA1 Message Date
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
Sander van Grieken 62009c647e add buttons in address drawers
also copies two kivy icons to gui/icons
2022-07-07 18:28:00 +02:00
Sander van Grieken f60eca054d add watch-only indicator
use default state instead of named state
set font defaults where it is convenient
2022-07-07 18:28:00 +02:00
Sander van Grieken 16a2d0c7fb add PT Mono bold 2022-07-07 18:28:00 +02:00
Sander van Grieken d427be70b2 move wallet name to qewallet 2022-07-07 18:28:00 +02:00
Sander van Grieken ead4600da6 UI address list 2022-07-07 18:28:00 +02:00
Sander van Grieken cc9cc67775 add PaneInsetBackground 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 7e6991c097 UI 2022-07-07 18:28:00 +02:00
Sander van Grieken 7b71323506 cleanup 2022-07-07 18:28:00 +02:00
Sander van Grieken a75960a70d use configured units everywhere 2022-07-07 18:28:00 +02:00
Sander van Grieken 5cfa1fd772 add Preferences to menu and add icons 2022-07-07 18:28:00 +02:00
Sander van Grieken 695f7a31cd add padding constants 2022-07-07 18:28:00 +02:00
Sander van Grieken 3d0fbe5f21 add initial Preferences page 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 cf059cb31b add initial fee histogram 2022-07-07 18:28:00 +02:00
Sander van Grieken 03048d39b6 handle gap limit warning when creating Request.
(using string error code for now, ideally should be properly defined
as an enum)

Also fix animation bug and work around broken ListView header implementation
2022-07-07 18:28:00 +02:00
Sander van Grieken 271f36d3b3 add yes/no button option to generic messagedialog, so it can be used
to ask the user a simple yes/no question.
2022-07-07 18:28:00 +02:00
Sander van Grieken dec0cdd0d3 refactor QEAddressListModel and QETransactionListModel to their own files 2022-07-07 18:28:00 +02:00
Sander van Grieken cd6d2f8a69 add QERequestListModel and hook up the gui in Receive tab 2022-07-07 18:28:00 +02:00
Sander van Grieken e04dbe1eff remove leftover, don't eagerly set wizard pages to not visible 2022-07-07 18:28:00 +02:00
Sander van Grieken f5807df91c add a container for styling constants, so we don't repeat literals all over the code 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 8000327097 gui: copy wallet.png from kivy to gui/icons/ 2022-07-07 18:28:00 +02:00
Sander van Grieken a2fac2e3e3 buildozer: exclude env dir, don't include vs, fs extensions 2022-07-07 18:28:00 +02:00
Sander van Grieken 45f50d3078 fixes 2022-07-07 18:28:00 +02:00
Sander van Grieken 4680521d07 ui history page 2022-07-07 18:28:00 +02:00
Sander van Grieken e329c54162 implement bip39 seed to wallet
fix auto-upgrade wallet
2022-07-07 18:28:00 +02:00
Sander van Grieken bbd0ff8b91 move wizard components to separate files, add initial bip39 refine page 2022-07-07 18:28:00 +02:00
Sander van Grieken 17820b9346 add QEAddressListModel and initial Addresses.qml page.
show sane main view when no wallet loaded.
show error dialog when wallet could not be loaded.
show wallet up_to_date indicator in title bar.
refactor QETransactionListModel to be more self-contained.
2022-07-07 18:28:00 +02:00
Sander van Grieken 7e1606fe86 validate seeds for Electrum, BIP39, SLIP39 seeds and perform create wallet in from seed scenario
Currently only Electrum seeds are considered valid.
For BIP39 additional dialog is needed.
For SLIP39 multiple mnemonics need to be supported to generate a seed
2022-07-07 18:28:00 +02:00
Sander van Grieken c79414012c fix bug where undefined wallet instance crashes app 2022-07-07 18:28:00 +02:00