Clear UI if connection is lost
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<int>::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();
|
||||
|
||||
39
src/rpc.cpp
39
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<QString, double> emptyBalances;
|
||||
QList<UnspentOutput> emptyOutputs;
|
||||
balancesTableModel->setNewData(&emptyBalances, &emptyOutputs);
|
||||
|
||||
// Clear Transactions table.
|
||||
QList<TransactionItem> 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
|
||||
|
||||
@@ -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<QLabel*>(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()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user