On the mobile client this allows the user to check per wallet which kind
of transactions to show or hide.
We allow selection of send/receive/both.
We allow the hiding of cash-fusion transactions.
To amke it more clear that the QR scanning screen also always allows
clipboard input, make the paste button always be there and just make
it have a constrasting background when the clipboard content is
acceptable.
We also add a 'shake' feedback when the paste doesn't work, and naturall
the paste button is available for clicking even if it doesn't look
'enabled' which will then just result in a shake and 'failed' feedback.
As we get more modules it turns out that the 'send' tab as originally
envisioned isn't really representative of how we're evolving.
Various items end up being about doing 'stuff' in general. Including
creating a transaction to receive. Only in a very loose way can we
say those are 'send' items.
So, without actually any user-visible changes, this renames the
enum in the module manager and module-section to make it about the
more accurate "action menu".
When importing a new wallet while the initial wallet still is not user-
owned, this new wallet effectively replaces the old one.
This means that we still are a single-account setup, even though there
are two wallets. In that usecase we should point to the new one.
Use a buffer to store the json in, allowing us to process the result
even if it is much larger than expected.
Seems there are a lot of onion servers, which 'bloats' the result to the
point that it didn't go in one callback.
The Sweep feature needs the 'previous' transactions to build the new
transaction.
This shows a progress-report per-transaction as they are downloaded.
Additionally this splits the incoming electron-X reply into lines before
processing.
to be allowed to upload it to the google store. Maybe once a year
requiring an upgrade to the latest release is Ok for Google, for
app-devs it is a chore that makes no sense.
Avoiding using the deprecated one would make sense, just forcing
me to use the latest, not so much.
This adds the backend code and the buttons that allow deletion of a
wallet.
Formerly you could archive a wallet and thus remove it from view,
at popular request an archived wallet now gets a button in the
wallets overview to delete the actual wallet completely.
This indeed also removes the files from disk, making it unrecoverable.
Additionally, an actually more complex feature, this allows an existing
wallet to have its history removed and start a re-scan to re-download
all transactions and build the balance.
This is useful for debugging or for recovering from buggy code we
probably had in older versions. (nobody is perfect all the time)
This code now catches the exceptions and logs it.
For instance when a wallet is aware of a transaction but can't find
the file on disk, we now don't just weirdly misbehave but forward an
error.
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.