diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 4a74add..fcf60ab 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -943,9 +943,9 @@ void MainWindow::setupMarketTab() { auto s = Settings::getInstance(); auto ticker = s->get_currency_name(); - ui->volumeExchange->setText(QString::number((double) s->getVolume("HUSH") ,'f',8) + " HUSH"); - ui->volumeExchangeLocal->setText(QString::number((double) s->getVolume(ticker) ,'f',8) + " " + QString::fromStdString(ticker)); - ui->volumeExchangeBTC->setText(QString::number((double) s->getVolume("BTC") ,'f',8) + " BTC"); + ui->volume->setText(QString::number((double) s->get_volume("HUSH") ,'f',8) + " HUSH"); + ui->volumeLocal->setText(QString::number((double) s->get_volume(ticker) ,'f',8) + " " + QString::fromStdString(ticker)); + ui->volumeBTC->setText(QString::number((double) s->get_volume("BTC") ,'f',8) + " BTC"); } void MainWindow::setupTransactionsTab() { diff --git a/src/mainwindow.ui b/src/mainwindow.ui index 20896ef..89ec4f9 100644 --- a/src/mainwindow.ui +++ b/src/mainwindow.ui @@ -999,21 +999,21 @@ - + Loading... - + Loading... - + Loading... diff --git a/src/rpc.cpp b/src/rpc.cpp index c0c91e2..8345bef 100644 --- a/src/rpc.cpp +++ b/src/rpc.cpp @@ -1,4 +1,5 @@ // Copyright 2019 The Hush Developers +// Released under the GPLv3 #include "rpc.h" #include "addressbook.h" @@ -1145,7 +1146,16 @@ void RPC::refreshPrice() { // convert ticker to upper case std::for_each(ticker.begin(), ticker.end(), [](char & c){ c = ::tolower(c); }); qDebug() << "ticker=" << QString::fromStdString(ticker); - s->set_price(ticker, hush[ticker]); + // TODO: update all stats and prevent coredumps! + auto price = hush[ticker]; + auto vol = hush[ticker + "_24h_vol"]; + auto mcap = hush[ticker + "_market_cap"]; + s->set_price(ticker, price); + s->set_volume(ticker, vol); + //s->set_marketcap(ticker, mcap); + //ui->marketcap = QString::number(mcap); + ui->volume = QString::number((double) vol); + refresh(true); return; } else { diff --git a/src/settings.cpp b/src/settings.cpp index e277d1c..5099ac4 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -177,10 +177,47 @@ double Settings::get_price(std::string currency) { void Settings::set_price(std::string curr, double price) { QString ticker = QString::fromStdString(curr); qDebug() << "Setting price of " << ticker << "=" << QString::number(price); - // prices[curr] = price; auto it = prices.insert( std::make_pair(curr, price) ); } +void Settings::set_volume(std::string curr, double volume) { + QString ticker = QString::fromStdString(curr); + qDebug() << "Setting volume of " << ticker << "=" << QString::number(volume); + auto it = volumes.insert( std::make_pair(curr, volume) ); +} + +double Settings::get_volume(std::string currency) { + std::for_each(currency.begin(), currency.end(), [](char & c){ c = ::tolower(c); }); + QString ticker = QString::fromStdString(currency); + auto search = volumes.find(currency); + if (search != volumes.end()) { + qDebug() << "Found volume of " << ticker << " = " << search->second; + return search->second; + } else { + qDebug() << "Could not find volume of" << ticker << "!!!"; + return -1.0; + } +} + +void Settings::set_marketcap(std::string curr, double marketcap) { + QString ticker = QString::fromStdString(curr); + qDebug() << "Setting marketcap of " << ticker << "=" << QString::number(marketcap); + auto it = marketcaps.insert( std::make_pair(curr, marketcap) ); +} + +double Settings::get_marketcap(std::string currency) { + std::for_each(currency.begin(), currency.end(), [](char & c){ c = ::tolower(c); }); + QString ticker = QString::fromStdString(currency); + auto search = marketcaps.find(currency); + if (search != marketcaps.end()) { + qDebug() << "Found marketcap of " << ticker << " = " << search->second; + return search->second; + } else { + qDebug() << "Could not find marketcap of" << ticker << "!!!"; + return -1.0; + } +} + unsigned int Settings::getBTCPrice() { // in satoshis return btcPrice; @@ -309,9 +346,6 @@ void Settings::set_currency_name(std::string currency_name) { QSettings().setValue("options/currency_name", QString::fromStdString(currency_name)); } -double Settings::getVolume(std::string ticker) { - return 0.0; -} bool Settings::removeFromZcashConf(QString confLocation, QString option) { if (confLocation.isEmpty()) diff --git a/src/settings.h b/src/settings.h index 36f3263..e33a508 100644 --- a/src/settings.h +++ b/src/settings.h @@ -98,8 +98,9 @@ public: double get_fiat_price(); unsigned int getBTCPrice(); double get_price(std::string currency); + double get_marketcap(std::string currency); void set_price(std::string currency, double price); - double getVolume(std::string ticker); + double get_volume(std::string ticker); void setPeers(int peers); int getPeers(); @@ -163,7 +164,8 @@ private: double fiat_price = 0.0; unsigned int btcPrice = 0; std::map prices; - + std::map volumes; + std::map marketcaps; }; #endif // SETTINGS_H