Commit Graph

111 Commits

Author SHA1 Message Date
tomFlowee e9ee0a22b8 Show num coins found as soon as we know. 2024-10-09 16:53:07 +02:00
tomFlowee 333f1fb401 Re-engineer the TxInfoObject
This separates it into two objects in order to make thead-safety easy
using Qt's signal/slot mechanism.
Additionally this removes magic timeout numbers and simply starts a
timer to check for changes and emit a signal if the status actually
needs updating.

Testing also shows that QML calls the getter a LOT, so I also moved the
broadcastStatus to be buffered and just return that on the call.
This incidentally also simplifies the code, double win.
2024-10-09 16:43:05 +02:00
tomFlowee e96a401bc2 Cleanup and polish the send/sweep module 2024-10-08 21:17:09 +02:00
tomFlowee 4634e17578 Cleanup after ourselves.
The transactions we spent from are downloaded in full, after adding the
spending transaction to the wallet we delete them.
2024-10-06 14:16:43 +02:00
tomFlowee 6aff98edf1 Export more properties and make UX of sweep look good 2024-10-06 14:07:33 +02:00
tomFlowee d7be2d27d6 Add sendsweep properties
This exposes some of the backend data to be shown in the UI.
Also Make 'paste' available for WIFs.
2024-10-06 11:09:34 +02:00
tomFlowee 0ecb7521ad Make AccountSelectorWidget reusable without a Payment 2024-10-05 21:30:39 +02:00
tomFlowee df9f294ee9 Add camera help text to SendSweep page. 2024-10-05 21:13:14 +02:00
tomFlowee 5def4efd26 Build the transaction from the given transactions 2024-10-04 17:14:42 +02:00
tomFlowee 08e2216ce3 Allow result to be used by SweepHandler 2024-10-03 17:57:10 +02:00
tomFlowee caea90b3cb Add ElectronX interaction.
This adds the fetching of utxos and the containing transactions from a
compliant electronx server. Like fulcrum.
2024-10-03 17:57:10 +02:00
tomFlowee 3aa28743f1 Start implementing the sweep module
This adds scanning of private key and processing the data.
2024-10-02 23:04:38 +02:00
tomFlowee 9b7d6749e4 Start new send-sweep module 2024-10-01 21:26:01 +02:00
tomFlowee ad1e187c54 minor fix. More space for touch 2024-10-01 21:14:54 +02:00
tomFlowee 4cdb393f20 Add a recycle icon for the delete-swipe 2024-10-01 19:57:17 +02:00
tomFlowee 3a6e0470a5 Move processing out of UI thread
Processing can take several seconds on a mobile, so we should do that in
its own thread in order to make the progress icon continue rotating.
2024-06-30 22:27:58 +02:00
tomFlowee 845bdbab89 Improve for smaller screens 2024-06-30 16:47:08 +02:00
tomFlowee 59949ebe47 Add the ability to restart download
This adds a label showing the download failed and adds a retry button to
start it again.
2024-06-29 12:15:30 +02:00
tomFlowee 05732c1998 Set timeouts on network
Make requests fail on no network activity for some time. We should then
allow the user to try again.
2024-06-29 12:15:30 +02:00
tomFlowee 7cab767283 Allow the download to be restarted.
We check the first block to figure out if the download is actually the
same one we are about to start, and if it is then Pay will not re-
download the part that is already on disk.
2024-06-29 12:15:30 +02:00
tomFlowee 19efc6575f Split processing and update UI
We set the UI to change from 'downloading' state to 'processing' state,
and now we give the UI the processor time to actually show this new
state on the screen before we start that processing step.
2024-06-29 12:15:30 +02:00
tomFlowee bfa373dc99 Update basic description of the Blocks module
This also adds an icon.
2024-06-26 23:39:30 +02:00
tomFlowee c9d3e5ade4 Fix replacement headers on Android
seems renaming a file that is mapped is not possible on Android, but
remove is. This code now removes the original static headers after we
get an approval of the downloaded file.
2024-06-26 21:30:03 +02:00
tomFlowee 1bcabee85e Add a basic info screen to the 'blocks' module. 2024-06-26 17:58:28 +02:00
tomFlowee 92be995fdd Hide 'blocks' module from user for now
There isn't yet any user interface they can see, so no point in showing
it to the user in the 'explore' part of the app.
2024-06-23 19:55:11 +02:00
tomFlowee 40dce2a91b Minor text improvement. 2024-06-23 19:37:58 +02:00
tomFlowee 7ee064dd59 Add assert detecting misuse. 2024-06-23 19:37:58 +02:00
tomFlowee 47f991a36e Make the DownloadChecker.qml actually functional.
The ImportWalletPage now loads the QML provided by the module,
exposed via the metadata of modules.
The module gets just a blockheight property and then will do
"its thing".
This will either instantly close when there is nothing to do
and continue instantly to the actual import.

Or the module will check the server, initiate download and when
all is setup and done THEN close the popup and continue with
the actual import.
2024-06-23 19:37:58 +02:00
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