Commit Graph

26 Commits

Author SHA1 Message Date
tomFlowee 437ee5634d Don't assert that isn't really a problem.
Hit this assert when I had the app open in the debugger for
some minutes.
2024-01-28 20:02:36 +01:00
tomFlowee 750dc9b54d Format currency concistently.
Negative values have the minus now also here before any currency symbol.
2023-11-03 14:48:32 +01:00
tomFlowee 1deccd9226 Make fiat mode an actual bool on BitcoinValue
The CPP now does more of the (heavy) lifting and the UI layer can
ignore
most of the details with regards to there being digits behind the
separator for fiat at all.

The internal change is that the fiat based values are always processed
in cents, even if the cents are not displayed. This solves incorrect
display and generally removes special cases.
2023-10-18 11:43:23 +02:00
tomFlowee 1bf4b8b493 Support more local currencies and fix ARS
This adds support for a convert-from-usd second feed which is advertised
by locals as the correct (non government sanctioned) conversion.
2023-08-27 23:11:58 +02:00
tomFlowee 19008819dc ARS does not use digits behind the separator. 2023-08-17 20:11:02 +02:00
tomFlowee 01ccb87686 Properly display much larger prices.
Handle fiat prices as a long
2023-06-23 10:35:35 +02:00
tomFlowee 7e375f50b5 Bugfix how we handle numbers from user input
This is a long overdue cleanup around the ideas of entering
numbers in Flowee Pay.

The core dataclass BitcoinValue now keeps track where the number
came from, either user input or some calculation. This allows
us to have the Fiat and the Coin price stay in sync without weird
problems.
The one we type uses a string, the price field that we are not typing in
is then a slave and we follow the auto-generated number as the
source.

This solves a host of known issues:

* Editing of value objects is much more consistnnt and predictable now.
* Switching to a different fiat type now properly re-calculates the
  values that are slaved. So if the primary is a BCH value then the fiat
  value gets the new exhange rate instantly applied.
* Switching to a different fiat type properly applies having a separator
  So if you go from euro to Japanese yen, we now remove the separator
  and the numbers behind it.
* Changing the app setting from BCH to mBCH now properly updates all
  amounts. Notice that the user-typed string wins, if you typed 2 and
  then change to mBCH we assume you wanted 2, not 2000.
* Paste now works more logcally.
* Cursor is no longer sometimes invisible, requiring backspace to make
  it show up.

And last we now protect against too large numbers. It is seen as an
error to type a number above 21 million BCH.

Fixes #19
2023-06-23 10:35:35 +02:00
tomFlowee cf59f2f06a Make CHF as a currency work for input
As the name is so much wider the widget didn't work well, this
makes the name not overlap.

Additionally, added a space beteween the currency name and
the numbers.
2023-06-20 20:27:21 +02:00
tomFlowee 88440a6eff Various fixes in PriceDataHistory
Fixes: #16

* Don't store the initial dummy value '100,-' in the history.
* Don't store the 404 server reply as a price file.
* On switching of currency, instantly try downloading the
historical prices instead of waiting for the next restart.
2023-05-06 12:45:33 +02:00
tomFlowee adc7edb250 Make the wallet emit tx removals
Now the wallet handles inserts-in-place by making removing and then
re-adding of transactions, the 'txIndex' is no longer guarenteed to live
forever.
So we now tell the world, and specifically the history model, about the
removal of txIIndexes.
2023-04-05 19:41:40 +02:00
tomFlowee ec8fa4b95d Minor spacing fix 2023-03-29 16:06:12 +02:00
tomFlowee f05f3d52a3 Fix rounding for negative numbers. 2023-03-15 16:03:19 +01:00
tomFlowee a6e9001e4c Fix the cent-less currency display
This partly reverts earlier "fix" from 9b87590 and fixes the
problem in the right place.

fixes #13
2023-03-12 20:45:10 +01:00
tomFlowee 0659c99b37 Make 'price then' use accurate prices.
If we don't have price info near the mining date, don't show an
inaccurate version.
2023-03-09 22:53:56 +01:00
tomFlowee 784ccfbf38 Allow historical date to be accurate
The backend has the historical prices in its database, we ask for it by
timestamp the by default it returns the nearest value. Typically within
24 hours.

But if the database doesn't have the data, or its very inaccurate, this
may casue confusion.
So we now have a new API call that returns zero instead of an inaccurate
historical price. Allowing us to prefer not showing anything over plain
false data.
2023-03-09 22:46:03 +01:00
tomFlowee 5e2e4c1bc4 Fix historical pricing data-state. 2023-02-20 16:20:43 +01:00
tomFlowee 5e2976e803 When we load historical price, emit that change
So the QML that was already loaded can use it.
2023-02-20 10:54:21 +01:00
tomFlowee 44131aa4df Remove no longer used 'mock' method. 2023-02-20 10:52:58 +01:00
tomFlowee aa0a505f8f Add price details popup
Show the current price, historical price-differences and a button to
change the currency.
2023-02-19 18:42:33 +01:00
tomFlowee 9b87590bd9 Fixes in currency number construction
Now tested with more currencies.
2023-02-08 18:23:18 +01:00
tomFlowee a2969750c9 Fully switch currency on failure.
Also add some logging and add an emit on the new currency being set
because sometimes the fetch from server takes very long.
2023-02-08 14:29:02 +01:00
tomFlowee 6c95cd3c09 Make currency changes persist between restarts. 2023-02-07 17:51:29 +01:00
tomFlowee 00dae95023 Allow changing of the currently used currency.
Provide a QML point where a different locale can be given for a different
currency. This then swaps out the historical file to the new one and
fetches from the online stream in that currency.
2023-02-07 14:38:33 +01:00
tomFlowee 8ae25cbf64 Refactor Fiat and historical.
Move the historical fiat prices to share the API with the current ones
and avoid complicating the code in the GUI layer (one less object).
2023-02-03 19:59:02 +01:00
tomFlowee 0f993e07ca Fix copy paste error. 2022-12-21 12:25:28 +01:00
tomFlowee 163e615613 Move sources into the src subdir
Slowly the amount of cpp sources has been growing to the point
where its just too much to store in the root of the project.
I think they are more happy in a subdir as well, getting an elevated
position for themselves.
2022-12-13 11:54:03 +01:00