From: gg Date: Tue, 13 Jan 2026 07:15:47 +0000 (-0500) Subject: better balance (based on wallet status and sync pause status) X-Git-Url: https://git.nutra.tk/v2?a=commitdiff_plain;h=45625b52e258a977f57808d08b5d7e0378c6601c;p=gamesguru%2Ffeather.git better balance (based on wallet status and sync pause status) --- diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 314c2a7b..1b5a0d89 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -910,8 +910,17 @@ void MainWindow::onBalanceUpdated(quint64 balance, quint64 spendable) { if (conf()->get(Config::balanceShowFiat).toBool() && !hide) { QString fiatCurrency = conf()->get(Config::preferredFiatCurrency).toString(); double balanceFiatAmount = appData()->prices.convert("XMR", fiatCurrency, balance / constants::cdiv); - if (balance > 0 && balanceFiatAmount == 0.0) { - suffixStr += " (unknown)"; + bool isCacheFresh = appData()->prices.lastUpdateTime.isValid() && + appData()->prices.lastUpdateTime.secsTo(QDateTime::currentDateTime()) < 3600; + + if (balance > 0 && (balanceFiatAmount == 0.0 || !isCacheFresh)) { + if (conf()->get(Config::offlineMode).toBool() || m_wallet->connectionStatus() == Wallet::ConnectionStatus_Disconnected) { + suffixStr += " (offline)"; + } else if (!appData()->prices.markets.contains("XMR")) { + suffixStr += " (connecting)"; + } else { + suffixStr += " (unknown)"; + } } else { suffixStr += QString(" (%1)").arg(Utils::amountToCurrencyString(balanceFiatAmount, fiatCurrency)); } diff --git a/src/utils/prices.cpp b/src/utils/prices.cpp index 10ac77f1..ccd283c8 100644 --- a/src/utils/prices.cpp +++ b/src/utils/prices.cpp @@ -31,6 +31,7 @@ void Prices::cryptoPricesReceived(const QJsonArray &data) { this->markets.insert(ms.symbol.toUpper(), ms); } + this->lastUpdateTime = QDateTime::currentDateTime(); emit cryptoPricesUpdated(); } diff --git a/src/utils/prices.h b/src/utils/prices.h index 8972c0e9..afee8b61 100644 --- a/src/utils/prices.h +++ b/src/utils/prices.h @@ -5,6 +5,7 @@ #define FEATHER_PRICES_H #include +#include #include "utils/Utils.h" @@ -24,6 +25,7 @@ public: explicit Prices(QObject *parent = nullptr); QMap rates; QMap markets; + QDateTime lastUpdateTime; public slots: void cryptoPricesReceived(const QJsonArray &data);