From 0acbcd50006abb00ebde68ed693faec2fe339b4b Mon Sep 17 00:00:00 2001 From: lex-dev4 Date: Fri, 29 Dec 2017 23:18:14 +0300 Subject: [PATCH] Add extra UI element to PIVX's Overview page displaying current status of zPIV autominting --- src/qt/forms/overviewpage.ui | 53 ++++++++++++++++++++++++++++++++++++ src/qt/overviewpage.cpp | 42 ++++++++++++++++++++++++++-- src/qt/overviewpage.h | 4 +++ src/qt/res/css/default.css | 41 ++++++++++++++++++++++++++++ 4 files changed, 138 insertions(+), 2 deletions(-) diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui index ada414c73ee0..137b1e80088e 100644 --- a/src/qt/forms/overviewpage.ui +++ b/src/qt/forms/overviewpage.ui @@ -581,6 +581,59 @@ + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + + + Unknown + + + + + + + Current percentage of zPIV autominting. + + + zPIV Auto-Minting: + + + + + + + Update + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp index 2698b5f82ebb..2ad4c91e9997 100644 --- a/src/qt/overviewpage.cpp +++ b/src/qt/overviewpage.cpp @@ -19,6 +19,8 @@ #include "transactionrecord.h" #include "transactiontablemodel.h" #include "walletmodel.h" +#include "optionsdialog.h" +#include "util.h" #include #include @@ -140,6 +142,7 @@ OverviewPage::OverviewPage(QWidget* parent) : QWidget(parent), ui->listTransactions->setAttribute(Qt::WA_MacShowFocusRect, false); connect(ui->listTransactions, SIGNAL(clicked(QModelIndex)), this, SLOT(handleTransactionClicked(QModelIndex))); + connect(ui->pushButtonUpdateZeromint, SIGNAL(released()), this, SLOT(handleUpdateClicked())); // init "out of sync" warning labels ui->labelWalletStatus->setText("(" + tr("out of sync") + ")"); @@ -237,13 +240,14 @@ void OverviewPage::setBalance(const CAmount& balance, const CAmount& unconfirmed // Adjust bubble-help according to AutoMint settings QString automintHelp = tr("Current percentage of zPIV.\nIf AutoMint is enabled this percentage will settle around the configured AutoMint percentage (default = 10%).\n"); - bool fEnableZeromint = GetBoolArg("-enablezeromint", true); - int nZeromintPercentage = GetArg("-zeromintpercentage", 10); + if (fEnableZeromint) { + ui->labelPIV2zPIVAutoMint->setText(QString::number(nZeromintPercentage) + "%"); automintHelp += tr("AutoMint is currently enabled and set to ") + QString::number(nZeromintPercentage) + "%.\n"; automintHelp += tr("To disable AutoMint add 'enablezeromint=0' in pivx.conf."); } else { + ui->labelPIV2zPIVAutoMint->setText(tr("Disabled")); automintHelp += tr("AutoMint is currently disabled.\nTo enable AutoMint change 'enablezeromint=0' to 'enablezeromint=1' in pivx.conf"); } ui->labelzPIVPercent->setToolTip(automintHelp); @@ -323,6 +327,9 @@ void OverviewPage::setWalletModel(WalletModel* model) updateWatchOnlyLabels(model->haveWatchOnly()); connect(model, SIGNAL(notifyWatchonlyChanged(bool)), this, SLOT(updateWatchOnlyLabels(bool))); + + connect(model->getOptionsModel(), SIGNAL(zeromintEnableChanged(bool)), this, SLOT(updateZeromintOptionEnabled(bool))); + connect(model->getOptionsModel(), SIGNAL(zeromintPercentageChanged(int)), this, SLOT(updateZeromintOptionPercentage(int))); } // update the display unit, to not use the default ("PIV") @@ -355,3 +362,34 @@ void OverviewPage::showOutOfSyncWarning(bool fShow) ui->labelWalletStatus->setVisible(fShow); ui->labelTransactionsStatus->setVisible(fShow); } + +void OverviewPage::updateZeromintOptionStatus() +{ + if (fEnableZeromint) { + ui->labelPIV2zPIVAutoMint->setText(QString::number(nZeromintPercentage) + "%"); + } else { + ui->labelPIV2zPIVAutoMint->setText(tr("Disabled")); + } +} + +void OverviewPage::updateZeromintOptionEnabled(bool fEnabled) +{ + updateZeromintOptionStatus(); +} + +void OverviewPage::updateZeromintOptionPercentage(int p) +{ + updateZeromintOptionStatus(); +} + +void OverviewPage::handleUpdateClicked() +{ + // XXX: copy of BitcoinGUI::optionsClicked(). reuse original method somehow ? + if (!this->clientModel || !clientModel->getOptionsModel()) + return; + + // XXX: can we assume enableWallet true here ? + OptionsDialog dlg(this, true); + dlg.setModel(clientModel->getOptionsModel()); + dlg.exec(); +} diff --git a/src/qt/overviewpage.h b/src/qt/overviewpage.h index 233ac322f754..c9cd54b59fab 100644 --- a/src/qt/overviewpage.h +++ b/src/qt/overviewpage.h @@ -69,6 +69,10 @@ private slots: void handleTransactionClicked(const QModelIndex& index); void updateAlerts(const QString& warnings); void updateWatchOnlyLabels(bool showWatchOnly); + void handleUpdateClicked(); + void updateZeromintOptionStatus(); + void updateZeromintOptionEnabled(bool); + void updateZeromintOptionPercentage(int); }; #endif // BITCOIN_QT_OVERVIEWPAGE_H diff --git a/src/qt/res/css/default.css b/src/qt/res/css/default.css index 664c938cb0c7..0a3326aff0aa 100755 --- a/src/qt/res/css/default.css +++ b/src/qt/res/css/default.css @@ -972,6 +972,29 @@ min-width:400px; background-color:#ffffff; } +QWidget .QFrame#frame_AutoMinting { /* Center left side */ +min-width:400px; +background-color:#ffffff; +} + +QWidget .QFrame#frame_AutoMinting .QLabel#labelPIV2zPIVAutoMintText { /* Available zPIV Label */ +qproperty-alignment: 'AlignVCenter | AlignLeft'; +min-width:160px; +color:#372f44; +margin-right:5px; +padding-right:5px; +font-weight:bold; +font-size:12px; +} + +QWidget .QFrame#frame_AutoMinting .QLabel#labelPIV2zPIVAutoMint { /* Available zPIV Balance */ +qproperty-alignment: 'AlignVCenter | AlignLeft'; +font-size:12px; +font-weight:bold; +color:#5c4c7c; +margin-left:0px; +} + QWidget .QFrame#frame_ZerocoinBalances { /* Lower left side */ min-width:400px; background-color:#ffffff; @@ -1136,6 +1159,24 @@ font-weight:bold; font-size:12px; } +QWidget .QFrame#frame_5 .QLabel#labelPIV2zPIVAutoMintText { /* PIV to zPIV Auto-Minting Label */ +qproperty-alignment: 'AlignVCenter | AlignRight'; +min-width:160px; +background-color:#5B4C7C; +color:#fff; +margin-right:5px; +padding-right:5px; +font-weight:bold; +font-size:14px; +/* min-height:35px; */ +} + +QWidget .QFrame#frame_5 .QLabel#labelPIV2zPIVAutoMint { /* PIV to zPIV Auto-Minting */ +min-width: 75px; +font-size: 12px; +margin-right: 5px; +} + QWidget .QFrame#frame_ZerocoinBalances .QLabel#labelzBalance { /* Available zPIV Balance */ qproperty-alignment: 'AlignVCenter | AlignLeft'; font-size:12px;