Commit Graph

21 Commits

Author SHA1 Message Date
tomFlowee dbbbd79f0a Add comment explaining the warning. 2023-10-17 12:02:24 +02:00
tomFlowee 8d3091bdd1 Disable input when not visible
Avoids weird interactions on the receive tab.
2023-09-06 16:21:09 +02:00
tomFlowee 4eb0053042 A litheny of UX-bugfixes. 2023-07-05 12:24:31 +02:00
tomFlowee 0b911143e9 Remove hack and just use FocusScope items 2023-07-04 20:24:26 +02:00
tomFlowee 6f8369e4ff [UX] Take preedit text into account.
For instant validation and similar, use the preedit text into account to
work around the silly design in Qt where the normal is made difficult.
2023-06-30 23:39:45 +02:00
tomFlowee 8db23ba624 Provide a screen to unlock encrypted wallets.
This detects that the currently selected wallet is fully encryted and if
it is, it shows a password request page on top of the current screen.
The default setup aims to have people type a PIN in numbers to unlock
the wallet, but we also provide a way to make it use a textual password
instead.
2023-06-27 20:39:11 +02:00
tomFlowee 13e63fa86b Make the QR not move upon opening the popup menu 2023-06-23 10:35:35 +02:00
tomFlowee 7e375f50b5 Bugfix how we handle numbers from user input
This is a long overdue cleanup around the ideas of entering
numbers in Flowee Pay.

The core dataclass BitcoinValue now keeps track where the number
came from, either user input or some calculation. This allows
us to have the Fiat and the Coin price stay in sync without weird
problems.
The one we type uses a string, the price field that we are not typing in
is then a slave and we follow the auto-generated number as the
source.

This solves a host of known issues:

* Editing of value objects is much more consistnnt and predictable now.
* Switching to a different fiat type now properly re-calculates the
  values that are slaved. So if the primary is a BCH value then the fiat
  value gets the new exhange rate instantly applied.
* Switching to a different fiat type properly applies having a separator
  So if you go from euro to Japanese yen, we now remove the separator
  and the numbers behind it.
* Changing the app setting from BCH to mBCH now properly updates all
  amounts. Notice that the user-typed string wins, if you typed 2 and
  then change to mBCH we assume you wanted 2, not 2000.
* Paste now works more logcally.
* Cursor is no longer sometimes invisible, requiring backspace to make
  it show up.

And last we now protect against too large numbers. It is seen as an
error to type a number above 21 million BCH.

Fixes #19
2023-06-23 10:35:35 +02:00
tomFlowee da864543c0 UX; pressing 'continue' on receive goes home now 2023-06-14 22:53:51 +02:00
tomFlowee 92b3b260c3 Disable clearing if there is nothing to clear. 2023-06-14 16:20:42 +02:00
tomFlowee 0ef5d2b0fc Re-think the interaction of the ReceiveTab
This solves the UX issue that the touch-screen keyboard would
overlap on our main content and that we could actally not input
a price properly on mobile at all.
2023-05-25 23:37:41 +02:00
tomFlowee 3dfb2b3d38 Port the startupscreen and desktop receive tab too
This makes the new PaymentRequest design be used by all components.
2023-05-02 10:52:37 +02:00
tomFlowee 4f93cdface Cleanup layout of receive tab 2023-05-02 10:52:37 +02:00
tomFlowee 4ba71ff870 Improve payment-request tracking
We introduce a new WalletkeyView which is a class that provides a
thread-safe view on a single private-key in the wallet. Detecting all
transactions depositing money in that key and thus being an ideal
backend for the PaymentRequest.
2023-05-02 10:52:37 +02:00
tomFlowee d0b5134527 Create a functional Payment Request screen.
We now use a better design where the PaymentRequest object is owned by
QML.
2023-05-02 10:52:37 +02:00
tomFlowee 1e73c5bee5 Step one of rebuilding the payment-requests
This mostly removes the less than successful architecture.

This architecture stems from my first attempts at mixing C++ and QML, and
its not great.
As we can see from the removals, it touches a lot of places and
especially the wallet owning them is messy, but in QML we have to do a
lot of null pointer checks, also not exactly readable.
Lets try something different.
2023-05-02 10:52:37 +02:00
tomFlowee 01f87acc28 Add address on QR
This exports the payment-request address to the QML side.
We use this to show under the QR the address we are requesting to send
to.

This is quite useful for users wanting to manually check if things are
going well.
2023-03-21 23:33:23 +01:00
tomFlowee 018a27ceb0 cleanup; use local palette
In Qt5 the palette was introduced in the Control object (part of Qt-
Quick-Controls-2).
In Qt6 this property was moved to the superclass 'Item'.

This means that we no longer need to refer to a control when using a
palette, every single thing in QtQuick is an Item, afterall.
2023-02-21 16:40:46 +01:00
tomFlowee a7551e1ab2 Avoid multiple copies, add shared QRWidget 2023-02-09 14:56:39 +01:00
tomFlowee 158b51936e Minor UX fixlets. 2022-12-19 16:20:40 +01:00
tomFlowee 3c30934963 Provide silly icons and do the receive screen.
The 3 icons at the top of the account screen now have 2 with actual
icons. They don't look very good, but at least its better than no
icons.

Also I stole most of the receive screen from desktop and ported it here.
Quick and dirty as that screen has been long overdue for a refresh.
2022-12-08 15:27:59 +01:00