Browse Source

Add suport for CNY,RUB,CAD,SGD,CHF,INR,GBP,AUD

pull/23/head
Denio 5 years ago
parent
commit
04fe2be715
  1. 116
      src/camount.cpp
  2. 17
      src/camount.h
  3. 175
      src/controller.cpp
  4. 9
      src/controller.h
  5. 53
      src/recurring.cpp
  6. 140
      src/sendtab.cpp
  7. 24
      src/settings.cpp
  8. 24
      src/settings.h
  9. 34
      src/settings.ui

116
src/camount.cpp

@ -44,7 +44,7 @@ QString CAmount::toDecimalEURString() const {
double dblAmount = static_cast<double>(this->amount) / COIN;
double price = Settings::getInstance()->getEURPrice();
return QLocale(QLocale::German).toString(dblAmount*price, 'f', 2) + "";
return QLocale(QLocale::English).toString(dblAmount*price, 'f', 2) + "";
}
QString CAmount::toDecimalBTCString() const {
double dblAmount = static_cast<double>(this->amount) / COIN;
@ -52,6 +52,55 @@ QString CAmount::toDecimalBTCString() const {
return "BTC " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 9);
}
QString CAmount::toDecimalCNYString() const {
double dblAmount = static_cast<double>(this->amount) / COIN;
double price = Settings::getInstance()->getCNYPrice();
return "¥ /元 " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
}
QString CAmount::toDecimalRUBString() const {
double dblAmount = static_cast<double>(this->amount) / COIN;
double price = Settings::getInstance()->getRUBPrice();
return "" + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
}
QString CAmount::toDecimalCADString() const {
double dblAmount = static_cast<double>(this->amount) / COIN;
double price = Settings::getInstance()->getCADPrice();
return "$ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
}
QString CAmount::toDecimalSGDString() const {
double dblAmount = static_cast<double>(this->amount) / COIN;
double price = Settings::getInstance()->getSGDPrice();
return "$ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
}
QString CAmount::toDecimalCHFString() const {
double dblAmount = static_cast<double>(this->amount) / COIN;
double price = Settings::getInstance()->getCHFPrice();
return "CHF " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
}
QString CAmount::toDecimalINRString() const {
double dblAmount = static_cast<double>(this->amount) / COIN;
double price = Settings::getInstance()->getINRPrice();
return "" + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
}
QString CAmount::toDecimalGBPString() const {
double dblAmount = static_cast<double>(this->amount) / COIN;
double price = Settings::getInstance()->getGBPPrice();
return "£ " + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
}
QString CAmount::toDecimalAUDString() const {
double dblAmount = static_cast<double>(this->amount) / COIN;
double price = Settings::getInstance()->getAUDPrice();
return " $" + QLocale(QLocale::English).toString(dblAmount*price, 'f', 2);
}
QString CAmount::toDecimalhushString() const {
return this->toDecimalString() % " " % Settings::getTokenName();
}
@ -81,6 +130,71 @@ QString CAmount::toDecimalhushBTCString() const {
return this->toDecimalhushString();
}
QString CAmount::toDecimalhushCNYString() const {
auto cnyString = this->toDecimalCNYString();
if (!cnyString.isEmpty())
return this->toDecimalhushString() % " (" % cnyString % ")";
else
return this->toDecimalhushString();
}
QString CAmount::toDecimalhushRUBString() const {
auto rubString = this->toDecimalRUBString();
if (!rubString.isEmpty())
return this->toDecimalhushString() % " (" % rubString % ")";
else
return this->toDecimalhushString();
}
QString CAmount::toDecimalhushCADString() const {
auto cadString = this->toDecimalCADString();
if (!cadString.isEmpty())
return this->toDecimalhushString() % " (" % cadString % ")";
else
return this->toDecimalhushString();
}
QString CAmount::toDecimalhushSGDString() const {
auto sgdString = this->toDecimalSGDString();
if (!sgdString.isEmpty())
return this->toDecimalhushString() % " (" % sgdString % ")";
else
return this->toDecimalhushString();
}
QString CAmount::toDecimalhushCHFString() const {
auto chfString = this->toDecimalCHFString();
if (!chfString.isEmpty())
return this->toDecimalhushString() % " (" % chfString % ")";
else
return this->toDecimalhushString();
}
QString CAmount::toDecimalhushINRString() const {
auto inrString = this->toDecimalINRString();
if (!inrString.isEmpty())
return this->toDecimalhushString() % " (" % inrString % ")";
else
return this->toDecimalhushString();
}
QString CAmount::toDecimalhushGBPString() const {
auto gbpString = this->toDecimalGBPString();
if (!gbpString.isEmpty())
return this->toDecimalhushString() % " (" % gbpString % ")";
else
return this->toDecimalhushString();
}
QString CAmount::toDecimalhushAUDString() const {
auto audString = this->toDecimalAUDString();
if (!audString.isEmpty())
return this->toDecimalhushString() % " (" % audString % ")";
else
return this->toDecimalhushString();
}
CAmount CAmount::fromDecimalString(QString decimalString) {
auto amtParts = decimalString.split(".");
qint64 r = amtParts[0].toULongLong() * COIN;

17
src/camount.h

@ -29,10 +29,27 @@ public:
QString toDecimalUSDString() const;
QString toDecimalEURString() const;
QString toDecimalBTCString() const;
QString toDecimalCNYString() const;
QString toDecimalRUBString() const;
QString toDecimalCADString() const;
QString toDecimalSGDString() const;
QString toDecimalCHFString() const;
QString toDecimalINRString() const;
QString toDecimalGBPString() const;
QString toDecimalAUDString() const;
QString toDecimalhushString() const;
QString toDecimalhushUSDString() const;
QString toDecimalhushEURString() const;
QString toDecimalhushBTCString() const;
QString toDecimalhushCNYString() const;
QString toDecimalhushRUBString() const;
QString toDecimalhushCADString() const;
QString toDecimalhushSGDString() const;
QString toDecimalhushCHFString() const;
QString toDecimalhushINRString() const;
QString toDecimalhushGBPString() const;
QString toDecimalhushAUDString() const;
qint64 toqint64() const { return amount; };
CAmount operator+ (const CAmount& other) const {

175
src/controller.cpp

@ -173,6 +173,23 @@ void Controller::getInfoThenRefresh(bool force) {
main->statusLabel->setText(" HUSH/EUR=€ " + QString::number( (double) Settings::getInstance()->getEURPrice() ,'f',2));
} else if (Settings::getInstance()->get_currency_name() == "BTC") {
main->statusLabel->setText(" HUSH/BTC=BTC " + QString::number((double) Settings::getInstance()->getBTCPrice() ,'f',8));
} else if (Settings::getInstance()->get_currency_name() == "CNY") {
main->statusLabel->setText(" HUSH/CNY=¥ /元 " + QString::number( (double) Settings::getInstance()->getCNYPrice() ,'f',2));
} else if (Settings::getInstance()->get_currency_name() == "RUB") {
main->statusLabel->setText(" HUSH/RUB=₽ " + QString::number((double) Settings::getInstance()->getRUBPrice() ,'f',2));
} else if (Settings::getInstance()->get_currency_name() == "CAD") {
main->statusLabel->setText(" HUSH/CAD=$ " + QString::number( (double) Settings::getInstance()->getCADPrice() ,'f',2));
} else if (Settings::getInstance()->get_currency_name() == "SGD") {
main->statusLabel->setText(" HUSH/SGD=$ " + QString::number((double) Settings::getInstance()->getSGDPrice() ,'f',2));
} else if (Settings::getInstance()->get_currency_name() == "CHF") {
main->statusLabel->setText(" HUSH/CHF=CHF " + QString::number((double) Settings::getInstance()->getCHFPrice() ,'f',2));
} else if (Settings::getInstance()->get_currency_name() == "INR") {
main->statusLabel->setText(" HUSH/INR=₹ " + QString::number( (double) Settings::getInstance()->getINRPrice() ,'f',2));
} else if (Settings::getInstance()->get_currency_name() == "GBP") {
main->statusLabel->setText(" HUSH/GBP=£ " + QString::number((double) Settings::getInstance()->getGBPPrice() ,'f',2));
}else if (Settings::getInstance()->get_currency_name() == "AUD") {
main->statusLabel->setText(" HUSH/AUD=$ " + QString::number((double) Settings::getInstance()->getAUDPrice() ,'f',2));
} else {
main->statusLabel->setText(" error Input" + QString::number(Settings::getInstance()->getEURPrice() ));
}
@ -320,6 +337,54 @@ void Controller::updateUIBalances() {
ui->balVerified ->setToolTip(balVerified.toDecimalBTCString());
ui->balTransparent->setToolTip(balT.toDecimalBTCString());
ui->balTotal ->setToolTip(balTotal.toDecimalBTCString());
} else if (Settings::getInstance()->get_currency_name() == "CNY") {
ui->balSheilded ->setToolTip(balZ.toDecimalCNYString());
ui->balVerified ->setToolTip(balVerified.toDecimalCNYString());
ui->balTransparent->setToolTip(balT.toDecimalCNYString());
ui->balTotal ->setToolTip(balTotal.toDecimalCNYString());
} else if (Settings::getInstance()->get_currency_name() == "RUB") {
ui->balSheilded ->setToolTip(balZ.toDecimalRUBString());
ui->balVerified ->setToolTip(balVerified.toDecimalRUBString());
ui->balTransparent->setToolTip(balT.toDecimalRUBString());
ui->balTotal ->setToolTip(balTotal.toDecimalRUBString());
} else if (Settings::getInstance()->get_currency_name() == "CAD") {
ui->balSheilded ->setToolTip(balZ.toDecimalCADString());
ui->balVerified ->setToolTip(balVerified.toDecimalCADString());
ui->balTransparent->setToolTip(balT.toDecimalCADString());
ui->balTotal ->setToolTip(balTotal.toDecimalCADString());
} else if (Settings::getInstance()->get_currency_name() == "SGD") {
ui->balSheilded ->setToolTip(balZ.toDecimalSGDString());
ui->balVerified ->setToolTip(balVerified.toDecimalSGDString());
ui->balTransparent->setToolTip(balT.toDecimalSGDString());
ui->balTotal ->setToolTip(balTotal.toDecimalSGDString());
} else if (Settings::getInstance()->get_currency_name() == "CHF") {
ui->balSheilded ->setToolTip(balZ.toDecimalCHFString());
ui->balVerified ->setToolTip(balVerified.toDecimalCHFString());
ui->balTransparent->setToolTip(balT.toDecimalCHFString());
ui->balTotal ->setToolTip(balTotal.toDecimalCHFString());
} else if (Settings::getInstance()->get_currency_name() == "INR") {
ui->balSheilded ->setToolTip(balZ.toDecimalINRString());
ui->balVerified ->setToolTip(balVerified.toDecimalINRString());
ui->balTransparent->setToolTip(balT.toDecimalINRString());
ui->balTotal ->setToolTip(balTotal.toDecimalINRString());
} else if (Settings::getInstance()->get_currency_name() == "GBP") {
ui->balSheilded ->setToolTip(balZ.toDecimalGBPString());
ui->balVerified ->setToolTip(balVerified.toDecimalGBPString());
ui->balTransparent->setToolTip(balT.toDecimalGBPString());
ui->balTotal ->setToolTip(balTotal.toDecimalGBPString());
} else if (Settings::getInstance()->get_currency_name() == "AUD") {
ui->balSheilded ->setToolTip(balZ.toDecimalAUDString());
ui->balVerified ->setToolTip(balVerified.toDecimalAUDString());
ui->balTransparent->setToolTip(balT.toDecimalAUDString());
ui->balTotal ->setToolTip(balTotal.toDecimalAUDString());
}
// Send tab
ui->txtAvailablehush->setText(balAvailable.toDecimalhushString());
@ -330,8 +395,23 @@ void Controller::updateUIBalances() {
ui->txtAvailableUSD->setText(balAvailable.toDecimalEURString());
} else if (Settings::getInstance()->get_currency_name() == "BTC") {
ui->txtAvailableUSD->setText(balAvailable.toDecimalBTCString());
} else
ui->txtAvailableUSD->setText(balAvailable.toDecimalBTCString());
} else if (Settings::getInstance()->get_currency_name() == "CNY") {
ui->txtAvailableUSD->setText(balAvailable.toDecimalCNYString());
} else if (Settings::getInstance()->get_currency_name() == "RUB") {
ui->txtAvailableUSD->setText(balAvailable.toDecimalRUBString());
} else if (Settings::getInstance()->get_currency_name() == "CAD") {
ui->txtAvailableUSD->setText(balAvailable.toDecimalCADString());
} else if (Settings::getInstance()->get_currency_name() == "SGD") {
ui->txtAvailableUSD->setText(balAvailable.toDecimalSGDString());
} else if (Settings::getInstance()->get_currency_name() == "CHF") {
ui->txtAvailableUSD->setText(balAvailable.toDecimalCHFString());
} else if (Settings::getInstance()->get_currency_name() == "INR") {
ui->txtAvailableUSD->setText(balAvailable.toDecimalINRString());
} else if (Settings::getInstance()->get_currency_name() == "GBP") {
ui->txtAvailableUSD->setText(balAvailable.toDecimalGBPString());
} else if (Settings::getInstance()->get_currency_name() == "AUD") {
ui->txtAvailableUSD->setText(balAvailable.toDecimalAUDString());
}
}
void Controller::refreshBalances() {
@ -648,7 +728,7 @@ void Controller::refreshZECPrice() {
return noConnection();
// TODO: use/render all this data
QUrl cmcURL("https://api.coingecko.com/api/v3/simple/price?ids=hush&vs_currencies=btc%2Cusd%2Ceur&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true");
QUrl cmcURL("https://api.coingecko.com/api/v3/simple/price?ids=hush&vs_currencies=btc%2Cusd%2Ceur%2Ceth%2Cgbp%2Ccny%2Cjpy%2Crub%2Ccad%2Csgd%2Cchf%2Cinr%2Caud%2Cinr&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true");
QNetworkRequest req;
req.setUrl(cmcURL);
@ -671,6 +751,15 @@ void Controller::refreshZECPrice() {
Settings::getInstance()->setZECPrice(0);
Settings::getInstance()->setEURPrice(0);
Settings::getInstance()->setBTCPrice(0);
Settings::getInstance()->setCNYPrice(0);
Settings::getInstance()->setRUBPrice(0);
Settings::getInstance()->setCADPrice(0);
Settings::getInstance()->setSGDPrice(0);
Settings::getInstance()->setCHFPrice(0);
Settings::getInstance()->setGBPPrice(0);
Settings::getInstance()->setAUDPrice(0);
Settings::getInstance()->setINRPrice(0);
return;
}
@ -682,6 +771,14 @@ void Controller::refreshZECPrice() {
Settings::getInstance()->setZECPrice(0);
Settings::getInstance()->setEURPrice(0);
Settings::getInstance()->setBTCPrice(0);
Settings::getInstance()->setCNYPrice(0);
Settings::getInstance()->setRUBPrice(0);
Settings::getInstance()->setCADPrice(0);
Settings::getInstance()->setSGDPrice(0);
Settings::getInstance()->setCHFPrice(0);
Settings::getInstance()->setGBPPrice(0);
Settings::getInstance()->setAUDPrice(0);
Settings::getInstance()->setINRPrice(0);
return;
}
@ -692,25 +789,71 @@ void Controller::refreshZECPrice() {
if (hush["usd"] >= 0) {
qDebug() << "Found hush key in price json";
// TODO: support BTC/EUR prices as well
//QString price = QString::fromStdString(hush["usd"].get<json::string_t>());
qDebug() << "HUSH = $" << QString::number((double)hush["usd"]);
Settings::getInstance()->setZECPrice( hush["usd"] );
}
if (hush["eur"] >= 0)
{
// TODO: support BTC/EUR prices as well
//QString price = QString::fromStdString(hush["usd"].get<json::string_t>());
qDebug() << "HUSH = €" << QString::number((double)hush["eur"]);
Settings::getInstance()->setEURPrice(hush["eur"]);
}
if (hush["btc"] >= 0)
{
// TODO: support BTC/EUR prices as well
//QString price = QString::fromStdString(hush["usd"].get<json::string_t>());
qDebug() << "HUSH = BTC" << QString::number((double)hush["btc"]);
Settings::getInstance()->setBTCPrice( hush["btc"]);
}
if (hush["cny"] >= 0)
{
qDebug() << "HUSH = CNY" << QString::number((double)hush["cny"]);
Settings::getInstance()->setCNYPrice( hush["cny"]);
}
if (hush["rub"] >= 0)
{
qDebug() << "HUSH = RUB" << QString::number((double)hush["rub"]);
Settings::getInstance()->setRUBPrice( hush["rub"]);
}
if (hush["cad"] >= 0)
{
qDebug() << "HUSH = CAD" << QString::number((double)hush["cad"]);
Settings::getInstance()->setCADPrice( hush["cad"]);
}
if (hush["sgd"] >= 0)
{
qDebug() << "HUSH = SGD" << QString::number((double)hush["sgd"]);
Settings::getInstance()->setSGDPrice( hush["sgd"]);
}
if (hush["chf"] >= 0)
{
qDebug() << "HUSH = CHF" << QString::number((double)hush["chf"]);
Settings::getInstance()->setCADPrice( hush["chf"]);
}
if (hush["inr"] >= 0)
{
qDebug() << "HUSH = INR" << QString::number((double)hush["inr"]);
Settings::getInstance()->setINRPrice( hush["inr"]);
}
if (hush["gbp"] >= 0)
{
qDebug() << "HUSH = GBP" << QString::number((double)hush["gbp"]);
Settings::getInstance()->setGBPPrice( hush["gbp"]);
}
if (hush["aud"] >= 0)
{
qDebug() << "HUSH = AUD" << QString::number((double)hush["aud"]);
Settings::getInstance()->setAUDPrice( hush["aud"]);
}
return;
} catch (const std::exception& e) {
// If anything at all goes wrong, just set the price to 0 and move on.
@ -718,9 +861,17 @@ void Controller::refreshZECPrice() {
}
// If nothing, then set the price to 0;
Settings::getInstance()->setZECPrice(0);
Settings::getInstance()->setEURPrice(0);
Settings::getInstance()->setBTCPrice(0);
Settings::getInstance()->setZECPrice(0);
Settings::getInstance()->setEURPrice(0);
Settings::getInstance()->setBTCPrice(0);
Settings::getInstance()->setCNYPrice(0);
Settings::getInstance()->setRUBPrice(0);
Settings::getInstance()->setCADPrice(0);
Settings::getInstance()->setSGDPrice(0);
Settings::getInstance()->setCHFPrice(0);
Settings::getInstance()->setGBPPrice(0);
Settings::getInstance()->setAUDPrice(0);
Settings::getInstance()->setINRPrice(0);
});
}

9
src/controller.h

@ -39,6 +39,15 @@ public:
void refreshZECPrice();
void refreshEURPrice();
void refreshBTCPrice();
void refreshCNYPrice();
void refreshRUBPrice();
void refreshCADPrice();
void refreshSGDPrice();
void refreshCHFPrice();
void refreshINRPrice();
void refreshGBPPrice();
void refreshAUDPrice();
void executeStandardUITransaction(Tx tx);

53
src/recurring.cpp

@ -89,6 +89,22 @@ QString RecurringPaymentInfo::getAmountPretty() const {
return currency == "EUR" ? amount.toDecimalEURString() : amount.toDecimalhushString();
} else if (Settings::getInstance()->get_currency_name() == "BTC") {
return currency == "BTC" ? amount.toDecimalBTCString() : amount.toDecimalhushString();
} else if (Settings::getInstance()->get_currency_name() == "CNY") {
return currency == "EUR" ? amount.toDecimalCNYString() : amount.toDecimalhushString();
} else if (Settings::getInstance()->get_currency_name() == "RUB") {
return currency == "BTC" ? amount.toDecimalRUBString() : amount.toDecimalhushString();
} else if (Settings::getInstance()->get_currency_name() == "CAD") {
return currency == "EUR" ? amount.toDecimalCADString() : amount.toDecimalhushString();
} else if (Settings::getInstance()->get_currency_name() == "SGD") {
return currency == "BTC" ? amount.toDecimalSGDString() : amount.toDecimalhushString();
} else if (Settings::getInstance()->get_currency_name() == "CHF") {
return currency == "EUR" ? amount.toDecimalCHFString() : amount.toDecimalhushString();
} else if (Settings::getInstance()->get_currency_name() == "INR") {
return currency == "BTC" ? amount.toDecimalINRString() : amount.toDecimalhushString();
} else if (Settings::getInstance()->get_currency_name() == "GBP") {
return currency == "EUR" ? amount.toDecimalGBPString() : amount.toDecimalhushString();
} else if (Settings::getInstance()->get_currency_name() == "AUD") {
return currency == "BTC" ? amount.toDecimalAUDString() : amount.toDecimalhushString();
}
}
@ -149,6 +165,23 @@ RecurringPaymentInfo* Recurring::getNewRecurringFromTx(QWidget* parent, MainWind
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalEURString());
} else if (Settings::getInstance()->get_currency_name() == "BTC") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalBTCString());
} else if (Settings::getInstance()->get_currency_name() == "CNY") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalCNYString());
} else if (Settings::getInstance()->get_currency_name() == "RUB") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalRUBString());
} else if (Settings::getInstance()->get_currency_name() == "CAD") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalCADString());
} else if (Settings::getInstance()->get_currency_name() == "SGD") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalSGDString());
} else if (Settings::getInstance()->get_currency_name() == "CHF") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalCHFString());
} else if (Settings::getInstance()->get_currency_name() == "INR") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalINRString());
} else if (Settings::getInstance()->get_currency_name() == "GBP") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalGBPString());
} else if (Settings::getInstance()->get_currency_name() == "AUD") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalAUDString());
}
ui.txtMemo->setPlainText(tx.toAddrs[0].memo);
@ -167,6 +200,26 @@ RecurringPaymentInfo* Recurring::getNewRecurringFromTx(QWidget* parent, MainWind
} else if
(c == "BTC") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalBTCString());
} else if (c == "CNY") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalCNYString());
} else if
(c == "RUB") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalRUBString());
} else if (c == "CAD") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalCADString());
} else if
(c == "SGD") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalSGDString());
} else if (c == "CHF") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalCHFString());
} else if
(c == "INR") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalINRString());
} else if (c == "GBP") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalGBPString());
} else if
(c == "AUD") {
ui.lblAmt->setText(tx.toAddrs[0].amount.toDecimalAUDString());
}
else {

140
src/sendtab.cpp

@ -65,6 +65,22 @@ void MainWindow::setupSendTab() {
ui->lblMinerFeeUSD->setText(fee.toDecimalEURString());
} else if (Settings::getInstance()->get_currency_name() == "BTC") {
ui->lblMinerFeeUSD->setText(fee.toDecimalBTCString());
} else if (Settings::getInstance()->get_currency_name() == "CNY") {
ui->lblMinerFeeUSD->setText(fee.toDecimalCNYString());
} else if (Settings::getInstance()->get_currency_name() == "RUB") {
ui->lblMinerFeeUSD->setText(fee.toDecimalRUBString());
} else if (Settings::getInstance()->get_currency_name() == "CAD") {
ui->lblMinerFeeUSD->setText(fee.toDecimalCADString());
} else if (Settings::getInstance()->get_currency_name() == "SGD") {
ui->lblMinerFeeUSD->setText(fee.toDecimalSGDString());
} else if (Settings::getInstance()->get_currency_name() == "CHF") {
ui->lblMinerFeeUSD->setText(fee.toDecimalCHFString());
} else if (Settings::getInstance()->get_currency_name() == "INR") {
ui->lblMinerFeeUSD->setText(fee.toDecimalINRString());
} else if (Settings::getInstance()->get_currency_name() == "GBP") {
ui->lblMinerFeeUSD->setText(fee.toDecimalGBPString());
} else if (Settings::getInstance()->get_currency_name() == "AUD") {
ui->lblMinerFeeUSD->setText(fee.toDecimalAUDString());
}
});
ui->minerFeeAmt->setText(Settings::getMinerFee().toDecimalString());
@ -82,6 +98,30 @@ void MainWindow::setupSendTab() {
} else if (Settings::getInstance()->get_currency_name() == "BTC") {
QString feeUSD = CAmount::fromDecimalString(txt).toDecimalEURString();
ui->lblMinerFeeUSD->setText(feeUSD);
} else if (Settings::getInstance()->get_currency_name() == "CNY") {
QString feeUSD = CAmount::fromDecimalString(txt).toDecimalCNYString();
ui->lblMinerFeeUSD->setText(feeUSD);
} else if (Settings::getInstance()->get_currency_name() == "RUB") {
QString feeUSD = CAmount::fromDecimalString(txt).toDecimalRUBString();
ui->lblMinerFeeUSD->setText(feeUSD);
} else if (Settings::getInstance()->get_currency_name() == "CAD") {
QString feeUSD = CAmount::fromDecimalString(txt).toDecimalCADString();
ui->lblMinerFeeUSD->setText(feeUSD);
} else if (Settings::getInstance()->get_currency_name() == "SGD") {
QString feeUSD = CAmount::fromDecimalString(txt).toDecimalSGDString();
ui->lblMinerFeeUSD->setText(feeUSD);
} else if (Settings::getInstance()->get_currency_name() == "CHF") {
QString feeUSD = CAmount::fromDecimalString(txt).toDecimalCHFString();
ui->lblMinerFeeUSD->setText(feeUSD);
} else if (Settings::getInstance()->get_currency_name() == "INR") {
QString feeUSD = CAmount::fromDecimalString(txt).toDecimalINRString();
ui->lblMinerFeeUSD->setText(feeUSD);
} else if (Settings::getInstance()->get_currency_name() == "GBP") {
QString feeUSD = CAmount::fromDecimalString(txt).toDecimalGBPString();
ui->lblMinerFeeUSD->setText(feeUSD);
} else if (Settings::getInstance()->get_currency_name() == "AUD") {
QString feeUSD = CAmount::fromDecimalString(txt).toDecimalAUDString();
ui->lblMinerFeeUSD->setText(feeUSD);
}
}
@ -298,6 +338,22 @@ void MainWindow::amountChanged(int item, const QString& text) {
usd->setText(amt.toDecimalEURString());
} else if (Settings::getInstance()->get_currency_name() == "BTC") {
usd->setText(amt.toDecimalBTCString());
} else if (Settings::getInstance()->get_currency_name() == "CNY") {
usd->setText(amt.toDecimalCNYString());
} else if (Settings::getInstance()->get_currency_name() == "RUB") {
usd->setText(amt.toDecimalRUBString());
} else if (Settings::getInstance()->get_currency_name() == "CAD") {
usd->setText(amt.toDecimalCADString());
} else if (Settings::getInstance()->get_currency_name() == "SGD") {
usd->setText(amt.toDecimalSGDString());
} else if (Settings::getInstance()->get_currency_name() == "CHF") {
usd->setText(amt.toDecimalCHFString());
} else if (Settings::getInstance()->get_currency_name() == "INR") {
usd->setText(amt.toDecimalINRString());
} else if (Settings::getInstance()->get_currency_name() == "GBP") {
usd->setText(amt.toDecimalGBPString());
} else if (Settings::getInstance()->get_currency_name() == "AUD") {
usd->setText(amt.toDecimalAUDString());
}
// If there is a recurring payment, update the info there as well
@ -573,12 +629,76 @@ bool MainWindow::confirmTx(Tx tx, RecurringPaymentInfo* rpi) {
AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
// Amount (EUR)
// Amount (BTC)
} else if (Settings::getInstance()->get_currency_name() == "BTC") {
auto AmtUSD = new QLabel(confirm.sendToAddrs);
AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
AmtUSD->setText(toAddr.amount.toDecimalBTCString());
AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
// Amount (CNY)
} else if (Settings::getInstance()->get_currency_name() == "CNY") {
auto AmtUSD = new QLabel(confirm.sendToAddrs);
AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
AmtUSD->setText(toAddr.amount.toDecimalCNYString());
AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
// Amount (RUB)
} else if (Settings::getInstance()->get_currency_name() == "RUB") {
auto AmtUSD = new QLabel(confirm.sendToAddrs);
AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
AmtUSD->setText(toAddr.amount.toDecimalRUBString());
AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
// Amount (CAD)
} else if (Settings::getInstance()->get_currency_name() == "CAD") {
auto AmtUSD = new QLabel(confirm.sendToAddrs);
AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
AmtUSD->setText(toAddr.amount.toDecimalCADString());
AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
// Amount (SGD)
} else if (Settings::getInstance()->get_currency_name() == "SGD") {
auto AmtUSD = new QLabel(confirm.sendToAddrs);
AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
AmtUSD->setText(toAddr.amount.toDecimalSGDString());
AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
// Amount (CHF)
} else if (Settings::getInstance()->get_currency_name() == "CHF") {
auto AmtUSD = new QLabel(confirm.sendToAddrs);
AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
AmtUSD->setText(toAddr.amount.toDecimalCHFString());
AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
// Amount (INR)
} else if (Settings::getInstance()->get_currency_name() == "INR") {
auto AmtUSD = new QLabel(confirm.sendToAddrs);
AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
AmtUSD->setText(toAddr.amount.toDecimalINRString());
AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
// Amount (GBP)
} else if (Settings::getInstance()->get_currency_name() == "GBP") {
auto AmtUSD = new QLabel(confirm.sendToAddrs);
AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
AmtUSD->setText(toAddr.amount.toDecimalGBPString());
AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
// Amount (AUD)
} else if (Settings::getInstance()->get_currency_name() == "AUD") {
auto AmtUSD = new QLabel(confirm.sendToAddrs);
AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
AmtUSD->setText(toAddr.amount.toDecimalAUDString());
AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
confirm.gridLayout->addWidget(AmtUSD, row, 2, 1, 1);
}
// Memo
@ -634,7 +754,23 @@ bool MainWindow::confirmTx(Tx tx, RecurringPaymentInfo* rpi) {
minerFeeUSD->setText(tx.fee.toDecimalEURString());
} else if (Settings::getInstance()->get_currency_name() == "BTC") {
minerFeeUSD->setText(tx.fee.toDecimalBTCString());
}
} else if (Settings::getInstance()->get_currency_name() == "CNY") {
minerFeeUSD->setText(tx.fee.toDecimalCNYString());
} else if (Settings::getInstance()->get_currency_name() == "RUB") {
minerFeeUSD->setText(tx.fee.toDecimalRUBString());
} else if (Settings::getInstance()->get_currency_name() == "CAD") {
minerFeeUSD->setText(tx.fee.toDecimalCADString());
} else if (Settings::getInstance()->get_currency_name() == "SGD") {
minerFeeUSD->setText(tx.fee.toDecimalSGDString());
} else if (Settings::getInstance()->get_currency_name() == "CHF") {
minerFeeUSD->setText(tx.fee.toDecimalCHFString());
} else if (Settings::getInstance()->get_currency_name() == "INR") {
minerFeeUSD->setText(tx.fee.toDecimalINRString());
} else if (Settings::getInstance()->get_currency_name() == "GBP") {
minerFeeUSD->setText(tx.fee.toDecimalGBPString());
} else if (Settings::getInstance()->get_currency_name() == "AUD") {
minerFeeUSD->setText(tx.fee.toDecimalAUDString());
}
}
// Recurring payment info, show only if there is exactly one destination address

24
src/settings.cpp

@ -111,6 +111,30 @@ double Settings::getEURPrice() {
double Settings::getBTCPrice() {
return BTCPrice;
}
double Settings::getCNYPrice() {
return CNYPrice;
}
double Settings::getRUBPrice() {
return RUBPrice;
}
double Settings::getCADPrice() {
return CADPrice;
}
double Settings::getSGDPrice() {
return SGDPrice;
}
double Settings::getCHFPrice() {
return CHFPrice;
}
double Settings::getINRPrice() {
return INRPrice;
}
double Settings::getGBPPrice() {
return GBPPrice;
}
double Settings::getAUDPrice() {
return AUDPrice;
}
bool Settings::getCheckForUpdates() {
return QSettings().value("options/allowcheckupdates", true).toBool();

24
src/settings.h

@ -72,9 +72,25 @@ public:
void setZECPrice(double p) { ZECPrice = p; }
void setEURPrice(double p) { EURPrice = p; }
void setBTCPrice(double p) { BTCPrice = p; }
void setCNYPrice(double p) { CNYPrice = p; }
void setRUBPrice(double p) { RUBPrice = p; }
void setCADPrice(double p) { CADPrice = p; }
void setSGDPrice(double p) { SGDPrice = p; }
void setCHFPrice(double p) { CHFPrice = p; }
void setINRPrice(double p) { INRPrice = p; }
void setGBPPrice(double p) { GBPPrice = p; }
void setAUDPrice(double p) { AUDPrice = p; }
double getZECPrice();
double getEURPrice();
double getBTCPrice();
double getCNYPrice();
double getRUBPrice();
double getCADPrice();
double getSGDPrice();
double getCHFPrice();
double getINRPrice();
double getGBPPrice();
double getAUDPrice();
// Static stuff
static const QString txidStatusMessage;
@ -129,6 +145,14 @@ private:
double ZECPrice = 0.0;
double BTCPrice = 0.0;
double EURPrice = 0.0;
double CNYPrice = 0.0;
double RUBPrice = 0.0;
double CADPrice = 0.0;
double SGDPrice = 0.0;
double CHFPrice = 0.0;
double INRPrice = 0.0;
double GBPPrice = 0.0;
double AUDPrice = 0.0;
};

34
src/settings.ui

@ -253,7 +253,27 @@
</property>
<item>
<property name="text">
<string>USD</string>
<string>AUD</string>
</property>
</item>
<item>
<property name="text">
<string>BTC</string>
</property>
</item>
<item>
<property name="text">
<string>CAD</string>
</property>
</item>
<item>
<property name="text">
<string>CHF</string>
</property>
</item>
<item>
<property name="text">
<string>CNY</string>
</property>
</item>
<item>
@ -263,7 +283,17 @@
</item>
<item>
<property name="text">
<string>BTC</string>
<string>GBP</string>
</property>
</item>
<item>
<property name="text">
<string>INR</string>
</property>
</item>
<item>
<property name="text">
<string>USD</string>
</property>
</item>
</widget>

Loading…
Cancel
Save