Commit Graph

43 Commits

Author SHA1 Message Date
tomFlowee 7b505f29d7 Make checkbox actually clickable again 2026-01-19 22:49:28 +01:00
tomFlowee 7e90b59c70 Fix regression
Seems these lines got deleted accidentally
2026-01-19 16:50:27 +01:00
tomFlowee 2765fa4e84 Ensure that on send the comment textfield has focus.
Allowing the user to start typing instantly.
2025-11-16 12:35:01 +01:00
tomFlowee d396e1bdfd Improve UX of desktop wallet
This redoes the "AccountDetails" page, matching ideas from the mobile
wallet and fixing a lot of bad interactions.

This also looked at the colors in desktop to be consistent and nicer.

Lots of smaller fixes and UI changes.
2025-11-16 12:35:01 +01:00
tomFlowee f1ba1b0401 Add support for opening the app on planned payments. 2025-09-15 21:42:02 +02:00
tomFlowee 4fff156631 Make more GUIs to use screenInsets
For Page inhering screens (BroadcastFeedback/UnlockApplication)
This changes the Page.hideHeader to now act like a full screen,
removing all insets from the Page object when enabled.
The insets are then re-added on the child pages, but
without affecting the background fields, so they cover the insets.

UnlockApplication is a simply full screen widget, we added the
insets to it too.
2025-09-05 12:44:35 +02:00
tomFlowee dfabcde813 Use Basic QQ Controls theme
The non-themed import basically is just a proxy using some
auto-detection to find out which theme to use.
As the app only uses the basic theme, this is what we'll import.
2025-06-19 15:09:36 +02:00
tomFlowee 78b11368bc Don't reserve space for fiat in testnet 2025-03-16 22:20:32 +01:00
tomFlowee 872e37b572 Make notes properties more declarative
This changes the notes property to be only set by the user of the
BroadcastFeedback.qml, and not from inside anymore which could break the
property binding causing strange things to happen.
2025-03-16 22:14:20 +01:00
tomFlowee 040ae97e8f Improve readability of coin selector 2025-03-03 13:47:34 +01:00
tomFlowee 4ea93c24e1 Add the new broadcast screen to desktop too 2025-02-04 22:54:05 +01:00
tomFlowee 7e60f1fdea Refactor Intent: disconnect from app lifetime
The idea of using Flowee Pay to open a payment screen, or a sweep
screen, was so far married to the executable lifetime due to it being
passed as a command line argument.
This does not reflect reality, on neither desktop nor on mobile as
multi-tasking is possible and we should allow that.

As a result the new object "Intent" has been introduced with the
usecase specific properties. Setting those properties at any time
during the lifetime of the app now pushes the correct page to the
stack on mobile. Desktop is in need of more love in this department.
2024-10-27 21:54:48 +01:00
tomFlowee 5a729b4da2 Ensure that the feedback instantly opens
This way we don't depend on the backend, but the actual user interaction
is the one that starts the process.
2024-10-14 20:09:43 +02:00
tomFlowee f1f97f5347 Add op-return creation UI for desktop 2024-10-01 17:55:05 +02:00
tomFlowee 410763fc6f minor; consistent naming. 2024-09-25 16:02:24 +02:00
tomFlowee 0c315370dd Fixes in CoinSelector
This (desktop only) component now works properly with:

- Showing the CF-logo for approriate coins.
- Clicking on a locked coin no longer selects it.
2024-06-30 22:50:16 +02:00
tomFlowee 3bcbf58b1d Fix color theme settings on Wayland
Seems that the problem we saw on Android is also present on
Linux and Wayland.
A lot of components no longer use the palette which makes it
not possible to use them as-is with our light/dark theme feature.

This changes the many components to the Flowee specific ones
where we already solved this for the Android UI.
2024-05-28 23:31:23 +02:00
tomFlowee 88dd71b9ab Add 'copy address' menu option in the coin-selector. 2024-01-15 20:17:10 +01:00
tomFlowee 25909437fd Clarify the terminology 2023-11-06 12:40:11 +01:00
tomFlowee a7fd8a4d86 UX: hide help text when not appropriate. 2023-10-31 15:25:31 +01:00
tomFlowee 02bf2ab1df Translations update 2023-09-06 16:21:09 +02:00
tomFlowee 02288299fc Improve BIP activation on startup
For desktop we now properly support starting a payment when
the user clicks on a bitcoincash link in a browser.

For Android the activation logic _should_ work, except that the
Android specific way has yet to be tied to our app.
2023-09-05 20:45:32 +02:00
tomFlowee 69e0fe8869 Finish up BIP70 feature
Squash of 12 commits, this makes the UX actually useful and
we detect errors and show errors and warnings to the user.
This also adds an 'editable' bool to OutputDetail in order to
disable editing of a payment request address.
Additionally, this introduces the ability for a Payment to carry
a raw script instead of an address. So op-return or more complex
payment requests will be sent just fine.

Fun fact is that our broadcast is INV/SendData, which is two
roundtrips and thus slow, which is needed to be sure we get proper
rejection messages.
The sending of the transaction via BIP70 causes the network to
already know about the tx because the server we send it to has
likely much better Internet than we do.
So confirmation from the payment provider is used to show success
instead of the normal way.
2023-09-05 13:38:24 +02:00
tomFlowee bc459f74d5 PaymentProtocol abstraction
The PaymentProtcol class now handles the pasting of a payment uri,
like bip21.

Additionally this adds the feature where we pass in the payment uri on
the commandline which then results in an auto-opened payment screen.
2023-08-30 23:46:00 +02:00
tomFlowee 78830c8aa4 Cleanup call to no longer existing function 2023-06-04 19:20:46 +02:00
tomFlowee 49a8a9ce34 Cleanup nice-address usage
A Payment object now has a user-typed address,
a formattedAddress which is a properly formatted cash-address
and last a 'niceAddress' which is the same cash-address but without the
chain prefix.

This cleans up the usage and removes some code from the GUI that did the
string manipulation there.
2023-05-31 15:47:14 +02:00
tomFlowee 2724e2cd67 UX: make checkbox follow price indicator 2023-05-30 19:25:09 +02:00
tomFlowee b0c22c98e1 Fix regression; make green check show up again
On having a correct address we validate it and show that green check.
This follows the refactor where we moved the logic to the AddressInfo
QML class.
2023-05-06 11:34:42 +02:00
tomFlowee 47b4e1ea0a Synchronize the errorRed colors
This adds a errorRedBg 'background' color for a popup with normal white
text on top of it.
2023-04-18 21:54:43 +02:00
tomFlowee 43c5f250d5 Merge branch 'master' into buildPayment 2023-03-13 12:15:59 +01:00
tomFlowee 8b50ae1ec0 Use the shared QML AddressInfoWidget 2023-03-13 12:14:23 +01:00
tomFlowee 8b3a85a88b Synchronize property names
This makes the payment detail (output) have the same property name as the
payment itself which was supposed to just be a proxy for a single-output
payment.
Consistency is good.
2023-03-13 11:56:35 +01:00
tomFlowee 457edc20b4 Simplify the payment and amounts getters
This merges the paymentAmount and effectiveBchAmount methods because they
did 99% the same.
Same with the paymentAmountFiat and effectiveFiatAmount.

This removes the 'effective*' set of properties.
2023-02-22 15:28:06 +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 155647d7ac Add docs and make input selector work again
Document various of the Payment properties better and make the input
selector use the multi-detail getter for price.
2023-02-17 19:22:24 +01:00
tomFlowee 80200fa28c Start new mobile page 'wallet information'.
This shows all wallets and wallet details.

Additionally, this moves the AccountTypeLabel out of the desktop page to
be reusable. Not so much because its hard, but because they have
translations and we'd better push shared translations into the common
translation unit as opposed to duplicating it.

The LabelWithClipboard now has as default context-menu-item text "Copy"
instead of "Copy Address".
2022-12-16 19:57:43 +01:00
tomFlowee 12c514e024 Avoid confusion, use palette.windowText
The 'text' and 'windowText' were both used like they were the same
thing, which they currently are but don't have to be.

Now migrate the various cases where to we use 'text' to 'windowText'.
This choice is made because the Label object uses windowText by default.

In future we might want to make the 'text' one have a slightly different
color. Its still used in Qt components like the popup menu.
2022-12-14 14:41:55 +01:00
tomFlowee 4f35c21a4f Cleanup
The shapes code moved out of this file, remove the import.
2022-12-14 14:18:07 +01:00
tomFlowee 91ae779f91 Reuse BroadcastFeedback on Mobile
This moves the broadcastfeedback part of the desktop to its own (now
shared) widget, and with minor changes reuses it on the mobile side.
2022-12-08 15:27:59 +01:00
tomFlowee fbd4c1a8ea Fix UX issue
When the user changes unit (BCH / mBCH), the widget would not update
until you typed something. Creating a surprise moment.
This fixes that, at the expense of a seemingly innocent warning by QML
about a binding loop.
2022-12-06 22:10:03 +01:00
tomFlowee 50ca6c112f Remove version numbers in imports
This idea has been removed in Qt6.
2022-11-26 10:46:57 +01:00
tomFlowee 6a9848366d Refactor enum; move to own class
The usage of the big application singleton for enums is not the best for
linkage.

See, in QML you like to use enums, but you need to register the object
it is defined on with QML. So, you ideally have one object with loads of
enums. Easy to maintain, less to learn for the QML author.
Using the application-wide singleton made kind of sense, but this
creates a dependency requirement for all users of these enums that
doesn't jibe well with maintainable code.

So, introduce a simple enums-only class that can be used from QML and is
cheap to include from any using classes.
2022-11-18 13:09:12 +01:00
tomFlowee d384167445 Prepare for better shared-widgets setup
QML allows re-usable components, this makes the already created
list of widgets for Desktop easy to use for mobile as well.
2022-11-14 21:25:36 +01:00