Commit Graph

133 Commits

Author SHA1 Message Date
tomFlowee 56f6fcf43c Add QML properties 2024-06-23 19:37:58 +02:00
tomFlowee 6d1cc00eeb Finish the basic functionality of the checker. 2024-06-23 19:37:58 +02:00
tomFlowee ef462fb9df Give some meat to the BlockHeadersChecker
This actually checks the need for downloading more headers,
then decides on which headers to download (from which known checkpoint,
really) and downloads them to a file.
2024-06-23 19:37:58 +02:00
tomFlowee 491af94040 Provide another plugin integration.
Plugins can be plugged into the main menu and the send menu already,
this adds the ability for a (section of a) plugin to be loaded as
custom component in the main app, among others.
2024-06-23 19:37:52 +02:00
tomFlowee 6c54a74eaa Start new module 2024-06-23 19:35:32 +02:00
tomFlowee 2a507a6a96 Move the TextPasteDecorator (and icon) to common
The widget actually is pretty useful on desktop too.
2024-05-05 20:52:26 +02:00
tomFlowee 39b23f3725 Enhance the TestPasteDecorator
This moves the component out to its own file while fixing some UX
issues.

* It is now always visible for (UI) discovery purposes.
* When we paste when there is no matching text we show negative
feedback.
2024-04-30 21:51:16 +02:00
tomFlowee 6312a468af Improve the entry of pin and numbers. 2024-02-14 00:02:53 +01:00
tomFlowee a6af4c8771 Remap 'tried' to a more logical backing value.
This changes 'tried' being about the amount of peers we actually
handshaked with to the amount of peers we tried to connect to at all.
2024-02-10 21:56:59 +01:00
tomFlowee 2eff679495 Improve list UX
We add animations on remove and give an indication of connectionid
2024-01-28 19:58:27 +01:00
tomFlowee 34b676d043 Make the un-finished connections show lighter too 2024-01-28 15:28:51 +01:00
tomFlowee 5554636c71 Show number in header 2024-01-26 14:44:34 +01:00
tomFlowee 1455d90b30 Add ban / disconnect UI elements on NetView 2024-01-26 14:26:40 +01:00
tomFlowee 519b6d7532 Add button to pardon the banned.
This allows a user to re-connect to formerly banned peers.
2024-01-26 13:45:51 +01:00
tomFlowee efc4e7c7d4 Make peers show up faster in netView
A peer that has not yet handshaked is now show in this view, giving a
better indication of what is going on on platforms that do not have easy
access to a log file.
2024-01-26 12:12:45 +01:00
tomFlowee b1cbf45849 Add cmake option 'skip-example' & skip that module
The final release should not include the example module as we aim
releases at normal people, not devs.
This makes the skipping of the example module part of the build
setup by simply passing in -Dskip_example=TRUE
to cmake.
2024-01-16 14:40:37 +01:00
tomFlowee 6161a43dac Add a statistics page to the Netview 2024-01-06 23:10:50 +01:00
tomFlowee 0b7587b51b Refactor the NetView (peers dialog)
This is likely the oldest component in the app and it was
really in need of a rewrite.
The state of peers is shown much clearer now, we use a proper
model in order to avoid the jumping and we use a more safe
way of getting at the data.
2024-01-04 23:20:28 +01:00
tomFlowee 2e71a162aa Tweak and fix clipboard paste based workflows.
One surprise was that the main usecase of pasting is one where the user
activates another app to go and copy data in order to come back to paste
it.
And the Qt clipboard didn't manage to get any notification of clipboard
changes. Even copying data on becoming active had no effect.

So now I just show the paste optimistically when the user comes back
from another screen, assuming the main reason for that was to copy.
2023-10-17 12:02:24 +02:00
tomFlowee 7cdd3acdf7 Improve clipboard interaction on making payments.
This makes available a clipboard helper component in QML.
Based on filters we then can make the 'paste' button visible and
only allow pasting stuff that is remotely useful.

This then also adds a 'paste' button to the transaction-building
module, the 'destination' screen.
2023-10-17 12:02:24 +02:00
tomFlowee 81861f7cc5 Follow refactor in Payment 2023-09-06 21:07:30 +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 f649d8e39a Fix crash on pay-to-many-addressses.
Hide target address if there is more than one.
2023-07-07 10:54:38 +02:00
tomFlowee 7f5e4130ad Move the Netview to a module of its own: Peers-view 2023-07-04 22:35:58 +02:00
tomFlowee f68d6a2a1c Add a readme for the modules 2023-07-04 21:53:32 +02:00
tomFlowee bff9cd5dc2 Introduce app-level password feature and more.
We already allowed individual wallets to get PIN-to-Open/PIN-to-Pay
but that is too advanced for most users. Not to mention that encrypted
private keys means a slower payment process and certain types of
features become impossible. Like auto-invoicing (incasso).

The gap, for mobile, is a simple not-encrypting password on startup
of the app which is likely what 80% of the privacy / security minded
people on mibile will be more than happy with.

This adds this mode and additionally streamlines the encrypted modes
of wallets.
2023-07-04 18:39:16 +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 5634f2ba2b Move modules status to the end
Make the module messages appear below the "configuration results"
section by moving the messages to the end of the CMakeLists file
2023-06-23 12:48:22 +02:00
tomFlowee 58614e17a6 Add a module explorer page in mobile view.
This allows discovering of the modules and enabling / disabling them.
2023-06-13 15:59:37 +02:00
tomFlowee c25adfffa0 After an API review.
This simplyfies things and ensures the translations are loaded before
any possible tr() calls.
2023-06-13 15:59:37 +02:00
tomFlowee 42d3c2e96b Make the build-transactions module function
This moves the last of the assets to the module and provides the base
requirements to actually make the featue function from a module.
2023-06-13 15:59:37 +02:00
tomFlowee a73e004998 Move QML and introduce i18n concept for modules 2023-06-13 15:59:37 +02:00
tomFlowee 1220a3839c Start a setup for modules.
This sets up a basic system for creating modules on top of the flowee
pay static lib in a way that is ensured to be isolated (modules can't
accidentally use each other's classes)

The setup is made such that the buildsystem does the hard work on
plugging in a new module, making it so that all you need to do is create
a new dir and a "{something}ModuleInfo.h" file and it will get compiled
in.
The point there is to make it not have any merge conflicts and just make
it dead easy to get started.
2023-06-13 15:59:37 +02:00