This alters the build setup to create two executables based on
practically the same CPP static lib but with different QML
dirs and translations.
This also adds a cmake option
-Dlocal_qml=ON
when passed it will create an executable that will load the QML
from local disk instead of using the compiled-in version.
The main advantage of that is that there is no need to recompile
after each QML change.
This promotes the `--offline` command line option from being a
debug-build only option to being always compiled in.
This should make it easier to develop in QML.
To avoid recompiles and such generally to simplify stuff, this
moves all the code into a static lib that is then linked with
by the various apps (including tests).
The only reason we get focus on a groupbox is to allow it to take
'enter' to toggle collapsing, so when we turn this off then we
should not allow the groupbox to get focus.
This moves all the checks and UI interactions into the model, making the
QML much lighter and less error-probe.
At the same time this allows us to add new UX features like when a 'max'
button is pressed it live-updates the amounts in the fiat and bch fields
as the user changes any spending in other outputs.
To allow the UI to modify the payment we split it into details. A detail
is, for instance, an output. This allows the user to add multiple
outputs in one payment, and thus one transaction.
Further payment details can be an input selection (to select exactly
which coins need to be spent) and others may be added later.
Every time the AccountDetails is closed and reopened, the UI is re-
loaded. We now reset the backing model to show the default values and
match the checkbox widget.
- extend clearing of 'new' icon timeout.
- make unconfirmed transactions also 'new'
- put a timer on the datetime item of the transaction to allow
timestamps like "now" and "an hour ago" to be updated as time passes.