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) {
|
if (role == Qt::DisplayRole) {
|
||||||
switch (index.column()) {
|
switch (index.column()) {
|
||||||
case 0: return std::get<0>(modeldata->at(index.row()));
|
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 0: return std::get<0>(modeldata->at(index.row()));
|
||||||
case 1: {
|
case 1: {
|
||||||
auto bal = std::get<1>(modeldata->at(index.row())).toDouble();
|
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.migrateZaddList->addItem("All Sprout z-Addrs");
|
||||||
turnstile.fromBalance->setText(Settings::getInstance()->getZECUSDDisplayFormat(fnGetAllSproutBalance()));
|
turnstile.fromBalance->setText(Settings::getZECUSDDisplayFormat(fnGetAllSproutBalance()));
|
||||||
for (auto addr : *rpc->getAllZAddresses()) {
|
for (auto addr : *rpc->getAllZAddresses()) {
|
||||||
if (Settings::getInstance()->isSaplingAddress(addr)) {
|
if (Settings::getInstance()->isSaplingAddress(addr)) {
|
||||||
turnstile.migrateTo->addItem(addr);
|
turnstile.migrateTo->addItem(addr);
|
||||||
@@ -225,12 +225,12 @@ void MainWindow::turnstileDoMigration(QString fromAddr) {
|
|||||||
bal = rpc->getAllBalances()->value(addr);
|
bal = rpc->getAllBalances()->value(addr);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto balTxt = Settings::getInstance()->getZECUSDDisplayFormat(bal);
|
auto balTxt = Settings::getZECUSDDisplayFormat(bal);
|
||||||
|
|
||||||
if (bal < Turnstile::minMigrationAmount) {
|
if (bal < Turnstile::minMigrationAmount) {
|
||||||
turnstile.fromBalance->setStyleSheet("color: red;");
|
turnstile.fromBalance->setStyleSheet("color: red;");
|
||||||
turnstile.fromBalance->setText(balTxt % " [You need at least "
|
turnstile.fromBalance->setText(balTxt % " [You need at least "
|
||||||
% Settings::getInstance()->getZECDisplayFormat(Turnstile::minMigrationAmount)
|
% Settings::getZECDisplayFormat(Turnstile::minMigrationAmount)
|
||||||
% " for automatic migration]");
|
% " for automatic migration]");
|
||||||
turnstile.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
|
turnstile.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
|
||||||
} else {
|
} else {
|
||||||
@@ -258,7 +258,7 @@ void MainWindow::turnstileDoMigration(QString fromAddr) {
|
|||||||
QObject::connect(turnstile.privLevel, QOverload<int>::of(&QComboBox::currentIndexChanged), [=] (auto idx) {
|
QObject::connect(turnstile.privLevel, QOverload<int>::of(&QComboBox::currentIndexChanged), [=] (auto idx) {
|
||||||
// Update the fees
|
// Update the fees
|
||||||
turnstile.minerFee->setText(
|
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) {
|
for (auto i : privOptions) {
|
||||||
@@ -486,7 +486,7 @@ void MainWindow::postToZBoard() {
|
|||||||
QRegExpValidator v(QRegExp("^[a-zA-Z0-9_]{3,20}$"), zb.postAs);
|
QRegExpValidator v(QRegExp("^[a-zA-Z0-9_]{3,20}$"), zb.postAs);
|
||||||
zb.postAs->setValidator(&v);
|
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 fnBuildNameMemo = [=]() -> QString {
|
||||||
auto memo = zb.memoTxt->toPlainText().trimmed();
|
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);
|
QIcon i = QApplication::style()->standardIcon(QStyle::SP_MessageBoxCritical);
|
||||||
main->statusIcon->setPixmap(i.pixmap(16, 16));
|
main->statusIcon->setPixmap(i.pixmap(16, 16));
|
||||||
main->statusLabel->setText("No Connection");
|
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
|
// Refresh received z txs by calling z_listreceivedbyaddress/gettransaction
|
||||||
@@ -540,7 +563,7 @@ void RPC::getInfoThenRefresh(bool force) {
|
|||||||
")";
|
")";
|
||||||
main->statusLabel->setText(statusText);
|
main->statusLabel->setText(statusText);
|
||||||
|
|
||||||
auto zecPrice = Settings::getInstance()->getUSDFormat(1);
|
auto zecPrice = Settings::getUSDFormat(1);
|
||||||
QString tooltip = "Connected to zcashd";;
|
QString tooltip = "Connected to zcashd";;
|
||||||
if (!zecPrice.isEmpty()) {
|
if (!zecPrice.isEmpty()) {
|
||||||
tooltip = "1 ZEC = " % zecPrice % "\n" % tooltip;
|
tooltip = "1 ZEC = " % zecPrice % "\n" % tooltip;
|
||||||
@@ -592,7 +615,7 @@ void RPC::updateUI(bool anyUnconfirmed) {
|
|||||||
ui->inputsCombo->clear();
|
ui->inputsCombo->clear();
|
||||||
auto i = allBalances->constBegin();
|
auto i = allBalances->constBegin();
|
||||||
while (i != allBalances->constEnd()) {
|
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);
|
ui->inputsCombo->addItem(item);
|
||||||
if (item.startsWith(lastFromAddr)) ui->inputsCombo->setCurrentText(item);
|
if (item.startsWith(lastFromAddr)) ui->inputsCombo->setCurrentText(item);
|
||||||
|
|
||||||
@@ -630,13 +653,13 @@ void RPC::refreshBalances() {
|
|||||||
auto balZ = QString::fromStdString(reply["private"]).toDouble();
|
auto balZ = QString::fromStdString(reply["private"]).toDouble();
|
||||||
auto tot = QString::fromStdString(reply["total"]).toDouble();
|
auto tot = QString::fromStdString(reply["total"]).toDouble();
|
||||||
|
|
||||||
ui->balSheilded ->setText(Settings::getInstance()->getZECDisplayFormat(balZ));
|
ui->balSheilded ->setText(Settings::getZECDisplayFormat(balZ));
|
||||||
ui->balTransparent->setText(Settings::getInstance()->getZECDisplayFormat(balT));
|
ui->balTransparent->setText(Settings::getZECDisplayFormat(balT));
|
||||||
ui->balTotal ->setText(Settings::getInstance()->getZECDisplayFormat(tot));
|
ui->balTotal ->setText(Settings::getZECDisplayFormat(tot));
|
||||||
|
|
||||||
ui->balSheilded ->setToolTip(Settings::getInstance()->getUSDFormat(balZ));
|
ui->balSheilded ->setToolTip(Settings::getUSDFormat(balZ));
|
||||||
ui->balTransparent->setToolTip(Settings::getInstance()->getUSDFormat(balT));
|
ui->balTransparent->setToolTip(Settings::getUSDFormat(balT));
|
||||||
ui->balTotal ->setToolTip(Settings::getInstance()->getUSDFormat(tot));
|
ui->balTotal ->setToolTip(Settings::getUSDFormat(tot));
|
||||||
});
|
});
|
||||||
|
|
||||||
// 2. Get the UTXOs
|
// 2. Get the UTXOs
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ void MainWindow::setupSendTab() {
|
|||||||
// Set the fees
|
// Set the fees
|
||||||
ui->lblMinerFee->setText(QString::number(Settings::getMinerFee(), 'g', 8) %
|
ui->lblMinerFee->setText(QString::number(Settings::getMinerFee(), 'g', 8) %
|
||||||
" " % Settings::getTokenName());
|
" " % Settings::getTokenName());
|
||||||
ui->lblMinerFeeUSD->setText(Settings::getInstance()->getUSDFormat(Settings::getMinerFee()));
|
ui->lblMinerFeeUSD->setText(Settings::getUSDFormat(Settings::getMinerFee()));
|
||||||
|
|
||||||
// Dev Fee.
|
// Dev Fee.
|
||||||
if (Settings::getDevFee() < 0.0001) {
|
if (Settings::getDevFee() < 0.0001) {
|
||||||
@@ -83,7 +83,7 @@ void MainWindow::setupSendTab() {
|
|||||||
} else {
|
} else {
|
||||||
ui->lblDevFee->setText(QString::number(Settings::getDevFee(), 'g', 8) %
|
ui->lblDevFee->setText(QString::number(Settings::getDevFee(), 'g', 8) %
|
||||||
" " % Settings::getTokenName());
|
" " % Settings::getTokenName());
|
||||||
ui->lblDevFeeUSD->setText(Settings::getInstance()->getUSDFormat(Settings::getDevFee()));
|
ui->lblDevFeeUSD->setText(Settings::getUSDFormat(Settings::getDevFee()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set focus to the first address box
|
// 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();
|
auto balFmt = QString::number(bal, 'g', 8) + " " % Settings::getTokenName();
|
||||||
|
|
||||||
ui->sendAddressBalance->setText(balFmt);
|
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) {
|
void MainWindow::amountChanged(int item, const QString& text) {
|
||||||
auto usd = ui->sendToWidgets->findChild<QLabel*>(QString("AmtUSD") % QString::number(item));
|
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) {
|
void MainWindow::setMemoEnabled(int number, bool enabled) {
|
||||||
@@ -443,14 +443,14 @@ bool MainWindow::confirmTx(Tx tx, ToFields devFee) {
|
|||||||
// Amount (ZEC)
|
// Amount (ZEC)
|
||||||
auto Amt = new QLabel(confirm.sendToAddrs);
|
auto Amt = new QLabel(confirm.sendToAddrs);
|
||||||
Amt->setObjectName(QString("Amt") % QString::number(i + 1));
|
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);
|
Amt->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
|
||||||
confirm.gridLayout->addWidget(Amt, i*2, 1, 1, 1);
|
confirm.gridLayout->addWidget(Amt, i*2, 1, 1, 1);
|
||||||
|
|
||||||
// Amount (USD)
|
// Amount (USD)
|
||||||
auto AmtUSD = new QLabel(confirm.sendToAddrs);
|
auto AmtUSD = new QLabel(confirm.sendToAddrs);
|
||||||
AmtUSD->setObjectName(QString("AmtUSD") % QString::number(i + 1));
|
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);
|
AmtUSD->setAlignment(Qt::AlignRight | Qt::AlignTrailing | Qt::AlignVCenter);
|
||||||
confirm.gridLayout->addWidget(AmtUSD, i*2, 2, 1, 1);
|
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->setObjectName(QStringLiteral("minerFee"));
|
||||||
minerFee->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
minerFee->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||||
confirm.gridLayout->addWidget(minerFee, i, 1, 1, 1);
|
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);
|
auto minerFeeUSD = new QLabel(confirm.sendToAddrs);
|
||||||
QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Preferred);
|
QSizePolicy sizePolicy1(QSizePolicy::Minimum, QSizePolicy::Preferred);
|
||||||
@@ -492,7 +492,7 @@ bool MainWindow::confirmTx(Tx tx, ToFields devFee) {
|
|||||||
minerFeeUSD->setObjectName(QStringLiteral("minerFeeUSD"));
|
minerFeeUSD->setObjectName(QStringLiteral("minerFeeUSD"));
|
||||||
minerFeeUSD->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
minerFeeUSD->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||||
confirm.gridLayout->addWidget(minerFeeUSD, i, 2, 1, 1);
|
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()) {
|
if (!devFee.addr.isEmpty()) {
|
||||||
auto labelDevFee = new QLabel(confirm.sendToAddrs);
|
auto labelDevFee = new QLabel(confirm.sendToAddrs);
|
||||||
@@ -504,14 +504,14 @@ bool MainWindow::confirmTx(Tx tx, ToFields devFee) {
|
|||||||
fee->setObjectName(QStringLiteral("devFee"));
|
fee->setObjectName(QStringLiteral("devFee"));
|
||||||
fee->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
fee->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||||
confirm.gridLayout->addWidget(fee, i+1, 1, 1, 1);
|
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);
|
auto devFeeUSD = new QLabel(confirm.sendToAddrs);
|
||||||
devFeeUSD->setSizePolicy(sizePolicy1);
|
devFeeUSD->setSizePolicy(sizePolicy1);
|
||||||
devFeeUSD->setObjectName(QStringLiteral("devFeeUSD"));
|
devFeeUSD->setObjectName(QStringLiteral("devFeeUSD"));
|
||||||
devFeeUSD->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
devFeeUSD->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter);
|
||||||
confirm.gridLayout->addWidget(devFeeUSD, i+1, 2, 1, 1);
|
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) {
|
QString Settings::getUSDFormat(double bal) {
|
||||||
if (!isTestnet() && getZECPrice() > 0)
|
if (!Settings::getInstance()->isTestnet() && Settings::getInstance()->getZECPrice() > 0)
|
||||||
return "$" + QLocale(QLocale::English).toString(bal * getZECPrice(), 'f', 2);
|
return "$" + QLocale(QLocale::English).toString(bal * Settings::getInstance()->getZECPrice(), 'f', 2);
|
||||||
else
|
else
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,14 +53,14 @@ public:
|
|||||||
|
|
||||||
void setZECPrice(double p) { zecPrice = p; }
|
void setZECPrice(double p) { zecPrice = p; }
|
||||||
double getZECPrice();
|
double getZECPrice();
|
||||||
|
|
||||||
QString getUSDFormat (double bal);
|
|
||||||
QString getZECDisplayFormat (double bal);
|
|
||||||
QString getZECUSDDisplayFormat(double bal);
|
|
||||||
|
|
||||||
// Static stuff
|
// Static stuff
|
||||||
static const QString txidStatusMessage;
|
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 getTokenName();
|
||||||
static const QString getDevSproutAddr();
|
static const QString getDevSproutAddr();
|
||||||
static const QString getDevAddr(Tx tx);
|
static const QString getDevAddr(Tx tx);
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ void TxTableModel::updateAllData() {
|
|||||||
return addr;
|
return addr;
|
||||||
}
|
}
|
||||||
case 2: return QDateTime::fromMSecsSinceEpoch(modeldata->at(index.row()).datetime * (qint64)1000).toLocalTime().toString();
|
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