diff --git a/src/balancestablemodel.cpp b/src/balancestablemodel.cpp index 9d45aa9..b8825da 100644 --- a/src/balancestablemodel.cpp +++ b/src/balancestablemodel.cpp @@ -85,7 +85,7 @@ QVariant BalancesTableModel::data(const QModelIndex &index, int role) const if (role == Qt::DisplayRole) { switch (index.column()) { case 0: return std::get<0>(modeldata->at(index.row())); - case 1: return Settings::getInstance()->getZECDisplayFormat(std::get<1>(modeldata->at(index.row())).toDouble()); + case 1: return Settings::getZECDisplayFormat(std::get<1>(modeldata->at(index.row())).toDouble()); } } @@ -94,7 +94,7 @@ QVariant BalancesTableModel::data(const QModelIndex &index, int role) const case 0: return std::get<0>(modeldata->at(index.row())); case 1: { auto bal = std::get<1>(modeldata->at(index.row())).toDouble(); - return Settings::getInstance()->getUSDFormat(bal); + return Settings::getUSDFormat(bal); } } } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index d6b6fbc..4ce1697 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -208,7 +208,7 @@ void MainWindow::turnstileDoMigration(QString fromAddr) { }; //turnstile.migrateZaddList->addItem("All Sprout z-Addrs"); - turnstile.fromBalance->setText(Settings::getInstance()->getZECUSDDisplayFormat(fnGetAllSproutBalance())); + turnstile.fromBalance->setText(Settings::getZECUSDDisplayFormat(fnGetAllSproutBalance())); for (auto addr : *rpc->getAllZAddresses()) { if (Settings::getInstance()->isSaplingAddress(addr)) { turnstile.migrateTo->addItem(addr); @@ -225,12 +225,12 @@ void MainWindow::turnstileDoMigration(QString fromAddr) { bal = rpc->getAllBalances()->value(addr); } - auto balTxt = Settings::getInstance()->getZECUSDDisplayFormat(bal); + auto balTxt = Settings::getZECUSDDisplayFormat(bal); if (bal < Turnstile::minMigrationAmount) { turnstile.fromBalance->setStyleSheet("color: red;"); turnstile.fromBalance->setText(balTxt % " [You need at least " - % Settings::getInstance()->getZECDisplayFormat(Turnstile::minMigrationAmount) + % Settings::getZECDisplayFormat(Turnstile::minMigrationAmount) % " for automatic migration]"); turnstile.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false); } else { @@ -258,7 +258,7 @@ void MainWindow::turnstileDoMigration(QString fromAddr) { QObject::connect(turnstile.privLevel, QOverload::of(&QComboBox::currentIndexChanged), [=] (auto idx) { // Update the fees turnstile.minerFee->setText( - Settings::getInstance()->getZECUSDDisplayFormat(std::get<0>(privOptions[idx]) * Settings::getMinerFee())); + Settings::getZECUSDDisplayFormat(std::get<0>(privOptions[idx]) * Settings::getMinerFee())); }); for (auto i : privOptions) { @@ -486,7 +486,7 @@ void MainWindow::postToZBoard() { QRegExpValidator v(QRegExp("^[a-zA-Z0-9_]{3,20}$"), zb.postAs); zb.postAs->setValidator(&v); - zb.feeAmount->setText(Settings::getInstance()->getZECUSDDisplayFormat(Settings::getZboardAmount() + Settings::getMinerFee())); + zb.feeAmount->setText(Settings::getZECUSDDisplayFormat(Settings::getZboardAmount() + Settings::getMinerFee())); auto fnBuildNameMemo = [=]() -> QString { auto memo = zb.memoTxt->toPlainText().trimmed(); diff --git a/src/rpc.cpp b/src/rpc.cpp index b89bc47..b32fd7c 100644 --- a/src/rpc.cpp +++ b/src/rpc.cpp @@ -333,6 +333,29 @@ void RPC::noConnection() { QIcon i = QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical); main->statusIcon->setPixmap(i.pixmap(16, 16)); main->statusLabel->setText("No Connection"); + + // Clear balances table. + QMap emptyBalances; + QList emptyOutputs; + balancesTableModel->setNewData(&emptyBalances, &emptyOutputs); + + // Clear Transactions table. + QList emptyTxs; + transactionsTableModel->addTData(emptyTxs); + transactionsTableModel->addZRecvData(emptyTxs); + transactionsTableModel->addZSentData(emptyTxs); + + // Clear balances + ui->balSheilded->setText(""); + ui->balTransparent->setText(""); + ui->balTotal->setText(""); + + ui->balSheilded->setToolTip(""); + ui->balTransparent->setToolTip(""); + ui->balTotal->setToolTip(""); + + // Clear send tab from address + ui->inputsCombo->clear(); } // Refresh received z txs by calling z_listreceivedbyaddress/gettransaction @@ -540,7 +563,7 @@ void RPC::getInfoThenRefresh(bool force) { ")"; main->statusLabel->setText(statusText); - auto zecPrice = Settings::getInstance()->getUSDFormat(1); + auto zecPrice = Settings::getUSDFormat(1); QString tooltip = "Connected to zcashd";; if (!zecPrice.isEmpty()) { tooltip = "1 ZEC = " % zecPrice % "\n" % tooltip; @@ -592,7 +615,7 @@ void RPC::updateUI(bool anyUnconfirmed) { ui->inputsCombo->clear(); auto i = allBalances->constBegin(); while (i != allBalances->constEnd()) { - QString item = i.key() % "(" % QString::number(i.value(), 'g', 8) % " " % Settings::getTokenName() % ")"; + QString item = i.key() % "(" % Settings::getZECDisplayFormat(i.value()) % ")"; ui->inputsCombo->addItem(item); if (item.startsWith(lastFromAddr)) ui->inputsCombo->setCurrentText(item); @@ -630,13 +653,13 @@ void RPC::refreshBalances() { auto balZ = QString::fromStdString(reply["private"]).toDouble(); auto tot = QString::fromStdString(reply["total"]).toDouble(); - ui->balSheilded ->setText(Settings::getInstance()->getZECDisplayFormat(balZ)); - ui->balTransparent->setText(Settings::getInstance()->getZECDisplayFormat(balT)); - ui->balTotal ->setText(Settings::getInstance()->getZECDisplayFormat(tot)); + ui->balSheilded ->setText(Settings::getZECDisplayFormat(balZ)); + ui->balTransparent->setText(Settings::getZECDisplayFormat(balT)); + ui->balTotal ->setText(Settings::getZECDisplayFormat(tot)); - ui->balSheilded ->setToolTip(Settings::getInstance()->getUSDFormat(balZ)); - ui->balTransparent->setToolTip(Settings::getInstance()->getUSDFormat(balT)); - ui->balTotal ->setToolTip(Settings::getInstance()->getUSDFormat(tot)); + ui->balSheilded ->setToolTip(Settings::getUSDFormat(balZ)); + ui->balTransparent->setToolTip(Settings::getUSDFormat(balT)); + ui->balTotal ->setToolTip(Settings::getUSDFormat(tot)); }); // 2. Get the UTXOs diff --git a/src/sendtab.cpp b/src/sendtab.cpp index 01475bb..984e743 100644 --- a/src/sendtab.cpp +++ b/src/sendtab.cpp @@ -73,7 +73,7 @@ void MainWindow::setupSendTab() { // Set the fees ui->lblMinerFee->setText(QString::number(Settings::getMinerFee(), 'g', 8) % " " % Settings::getTokenName()); - ui->lblMinerFeeUSD->setText(Settings::getInstance()->getUSDFormat(Settings::getMinerFee())); + ui->lblMinerFeeUSD->setText(Settings::getUSDFormat(Settings::getMinerFee())); // Dev Fee. if (Settings::getDevFee() < 0.0001) { @@ -83,7 +83,7 @@ void MainWindow::setupSendTab() { } else { ui->lblDevFee->setText(QString::number(Settings::getDevFee(), 'g', 8) % " " % Settings::getTokenName()); - ui->lblDevFeeUSD->setText(Settings::getInstance()->getUSDFormat(Settings::getDevFee())); + ui->lblDevFeeUSD->setText(Settings::getUSDFormat(Settings::getDevFee())); } // Set focus to the first address box @@ -146,7 +146,7 @@ void MainWindow::inputComboTextChanged(const QString& text) { auto balFmt = QString::number(bal, 'g', 8) + " " % Settings::getTokenName(); ui->sendAddressBalance->setText(balFmt); - ui->sendAddressBalanceUSD->setText(Settings::getInstance()->getUSDFormat(bal)); + ui->sendAddressBalanceUSD->setText(Settings::getUSDFormat(bal)); } @@ -250,7 +250,7 @@ void MainWindow::addressChanged(int itemNumber, const QString& text) { void MainWindow::amountChanged(int item, const QString& text) { auto usd = ui->sendToWidgets->findChild(QString("AmtUSD") % QString::number(item)); - usd->setText(Settings::getInstance()->getUSDFormat(text.toDouble())); + usd->setText(Settings::getUSDFormat(text.toDouble())); } void MainWindow::setMemoEnabled(int number, bool enabled) { @@ -443,14 +443,14 @@ bool MainWindow::confirmTx(Tx tx, ToFields devFee) { // Amount (ZEC) auto Amt = new QLabel(confirm.sendToAddrs); Amt->setObjectName(QString("Amt") % QString::number(i + 1)); - Amt->setText(Settings::getInstance()->getZECDisplayFormat(toAddr.amount)); + Amt->setText(Settings::getZECDisplayFormat(toAddr.amount)); Amt->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter); confirm.gridLayout->addWidget(Amt, i*2, 1, 1, 1); // Amount (USD) auto AmtUSD = new QLabel(confirm.sendToAddrs); AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1)); - AmtUSD->setText(Settings::getInstance()->getUSDFormat(toAddr.amount)); + AmtUSD->setText(Settings::getUSDFormat(toAddr.amount)); AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter); confirm.gridLayout->addWidget(AmtUSD, i*2, 2, 1, 1); @@ -484,7 +484,7 @@ bool MainWindow::confirmTx(Tx tx, ToFields devFee) { minerFee->setObjectName(QStringLiteral("minerFee")); minerFee->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); confirm.gridLayout->addWidget(minerFee, i, 1, 1, 1); - minerFee->setText(Settings::getInstance()->getZECDisplayFormat(tx.fee)); + minerFee->setText(Settings::getZECDisplayFormat(tx.fee)); auto minerFeeUSD = new QLabel(confirm.sendToAddrs); QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Preferred); @@ -492,7 +492,7 @@ bool MainWindow::confirmTx(Tx tx, ToFields devFee) { minerFeeUSD->setObjectName(QStringLiteral("minerFeeUSD")); minerFeeUSD->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); confirm.gridLayout->addWidget(minerFeeUSD, i, 2, 1, 1); - minerFeeUSD->setText(Settings::getInstance()->getUSDFormat(tx.fee)); + minerFeeUSD->setText(Settings::getUSDFormat(tx.fee)); if (!devFee.addr.isEmpty()) { auto labelDevFee = new QLabel(confirm.sendToAddrs); @@ -504,14 +504,14 @@ bool MainWindow::confirmTx(Tx tx, ToFields devFee) { fee->setObjectName(QStringLiteral("devFee")); fee->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); confirm.gridLayout->addWidget(fee, i+1, 1, 1, 1); - fee ->setText(Settings::getInstance()->getZECDisplayFormat(Settings::getDevFee())); + fee ->setText(Settings::getZECDisplayFormat(Settings::getDevFee())); auto devFeeUSD = new QLabel(confirm.sendToAddrs); devFeeUSD->setSizePolicy(sizePolicy1); devFeeUSD->setObjectName(QStringLiteral("devFeeUSD")); devFeeUSD->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); confirm.gridLayout->addWidget(devFeeUSD, i+1, 2, 1, 1); - devFeeUSD ->setText(Settings::getInstance()->getUSDFormat(Settings::getDevFee())); + devFeeUSD ->setText(Settings::getUSDFormat(Settings::getDevFee())); } } diff --git a/src/settings.cpp b/src/settings.cpp index 45f3849..f141ae8 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -103,8 +103,8 @@ double Settings::getZECPrice() { } QString Settings::getUSDFormat(double bal) { - if (!isTestnet() && getZECPrice() > 0) - return "$" + QLocale(QLocale::English).toString(bal * getZECPrice(), 'f', 2); + if (!Settings::getInstance()->isTestnet() && Settings::getInstance()->getZECPrice() > 0) + return "$" + QLocale(QLocale::English).toString(bal * Settings::getInstance()->getZECPrice(), 'f', 2); else return QString(); } diff --git a/src/settings.h b/src/settings.h index 722184a..dae85c1 100644 --- a/src/settings.h +++ b/src/settings.h @@ -53,14 +53,14 @@ public: void setZECPrice(double p) { zecPrice = p; } double getZECPrice(); - - QString getUSDFormat (double bal); - QString getZECDisplayFormat (double bal); - QString getZECUSDDisplayFormat(double bal); - + // Static stuff static const QString txidStatusMessage; + static QString getUSDFormat(double bal); + static QString getZECDisplayFormat(double bal); + static QString getZECUSDDisplayFormat(double bal); + static const QString getTokenName(); static const QString getDevSproutAddr(); static const QString getDevAddr(Tx tx); diff --git a/src/txtablemodel.cpp b/src/txtablemodel.cpp index f70e220..73733cb 100644 --- a/src/txtablemodel.cpp +++ b/src/txtablemodel.cpp @@ -102,7 +102,7 @@ void TxTableModel::updateAllData() { return addr; } case 2: return QDateTime::fromMSecsSinceEpoch(modeldata->at(index.row()).datetime * (qint64)1000).toLocalTime().toString(); - case 3: return Settings::getInstance()->getZECDisplayFormat(modeldata->at(index.row()).amount); + case 3: return Settings::getZECDisplayFormat(modeldata->at(index.row()).amount); } }