Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/init.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,7 @@ std::string HelpMessage(HelpMessageMode mode)
strUsage += HelpMessageOpt("-budgetvotemode=<mode>", _("Change automatic finalized budget voting behavior. mode=auto: Vote for only exact finalized budget match to my generated budget. (string, default: auto)"));

strUsage += HelpMessageGroup(_("Zerocoin options:"));
strUsage += HelpMessageOpt("-enablezeromint=<n>", strprintf(_("Enable automatic Zerocoin minting (0-1, default: %u)"), 1));
strUsage += HelpMessageOpt("-enablezeromint=<n>", strprintf(_("Enable automatic Zerocoin minting (0-1, default: %u)"), 0));
strUsage += HelpMessageOpt("-zeromintpercentage=<n>", strprintf(_("Percentage of automatically minted Zerocoin (10-100, default: %u)"), 10));
strUsage += HelpMessageOpt("-preferredDenom=<n>", strprintf(_("Preferred Denomination for automatically minted Zerocoin (1/5/10/50/100/500/1000/5000), 0 for no preference. default: %u)"), 0));
strUsage += HelpMessageOpt("-backupzpiv=<n>", strprintf(_("Enable automatic wallet backups triggered after each zPiv minting (0-1, default: %u)"), 1));
Expand Down
21 changes: 21 additions & 0 deletions src/qt/forms/optionsdialog.ui
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,27 @@
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QLabel" name="labelEnablezPIVAutoMint">
<property name="text">
<string>Enable PIV to zPIV Automint</string>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbEnableAutoMint">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
Expand Down
68 changes: 67 additions & 1 deletion src/qt/forms/overviewpage.ui
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>960</width>
<height>615</height>
<height>648</height>
</rect>
</property>
<property name="minimumSize">
Expand Down Expand Up @@ -408,6 +408,72 @@
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="frame_5">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<layout class="QGridLayout" name="gridLayout_2" columnstretch="0">
<item row="0" column="0">
<widget class="QLabel" name="labelPIV2zPIVAutoMintText">
<property name="toolTip">
<string>Current percentage of zPIV autominting.</string>
</property>
<property name="text">
<string>zPIV Auto-Minting:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="labelPIV2zPIVAutoMint">
<property name="text">
<string>Unknown</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButtonUpdateZeromint">
<property name="text">
<string>Update</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QFrame" name="frameObfuscation">
<property name="minimumSize">
Expand Down
6 changes: 4 additions & 2 deletions src/qt/optionsdialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ OptionsDialog::OptionsDialog(QWidget* parent, bool enableWallet) : QDialog(paren
digits.setNum(index);
ui->digits->addItem(digits, digits);
}

/* Theme selector static themes */
ui->theme->addItem(QString("Default"), QVariant("default"));

Expand Down Expand Up @@ -194,6 +194,8 @@ void OptionsDialog::setMapper()
mapper->addMapping(ui->bitcoinAtStartup, OptionsModel::StartAtStartup);
mapper->addMapping(ui->threadsScriptVerif, OptionsModel::ThreadsScriptVerif);
mapper->addMapping(ui->databaseCache, OptionsModel::DatabaseCache);
// Zerocoin mint enabled
mapper->addMapping(ui->cbEnableAutoMint, OptionsModel::EnableZeromint);
// Zerocoin mint percentage
mapper->addMapping(ui->zeromintPercentage, OptionsModel::ZeromintPercentage);
// Zerocoin preferred denomination
Expand All @@ -211,7 +213,7 @@ void OptionsDialog::setMapper()
mapper->addMapping(ui->proxyIp, OptionsModel::ProxyIP);
mapper->addMapping(ui->proxyPort, OptionsModel::ProxyPort);

/* Window */
/* Window */
#ifndef Q_OS_MAC
mapper->addMapping(ui->minimizeToTray, OptionsModel::MinimizeToTray);
mapper->addMapping(ui->minimizeOnClose, OptionsModel::MinimizeOnClose);
Expand Down
13 changes: 13 additions & 0 deletions src/qt/optionsmodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ void OptionsModel::Init()
settings.setValue("fCoinControlFeatures", false);
fCoinControlFeatures = settings.value("fCoinControlFeatures", false).toBool();

if (!settings.contains("fEnableZeromint"))
settings.setValue("fEnableZeromint", true);
fEnableZeromint = settings.value("fEnableZeromint").toBool();
if (!settings.contains("nPreferredDenom"))
settings.setValue("nPreferredDenom", 0);
nPreferredDenom = settings.value("nPreferredDenom", "0").toLongLong();
Expand Down Expand Up @@ -147,6 +150,8 @@ void OptionsModel::Init()
if (!SoftSetArg("-lang", settings.value("language").toString().toStdString()))
addOverriddenOption("-lang");

if (settings.contains("fEnableZeromint"))
SoftSetBoolArg("-enablezeromint", settings.value("fEnableZeromint").toBool());
if (settings.contains("nZeromintPercentage"))
SoftSetArg("-zeromintpercentage", settings.value("nZeromintPercentage").toString().toStdString());
if (settings.contains("nPreferredDenom"))
Expand Down Expand Up @@ -230,6 +235,8 @@ QVariant OptionsModel::data(const QModelIndex& index, int role) const
return settings.value("nDatabaseCache");
case ThreadsScriptVerif:
return settings.value("nThreadsScriptVerif");
case EnableZeromint:
return QVariant(fEnableZeromint);
case ZeromintPercentage:
return QVariant(nZeromintPercentage);
case ZeromintPrefDenom:
Expand Down Expand Up @@ -339,6 +346,11 @@ bool OptionsModel::setData(const QModelIndex& index, const QVariant& value, int
setRestartRequired(true);
}
break;
case EnableZeromint:
fEnableZeromint = value.toBool();
settings.setValue("fEnableZeromint", fEnableZeromint);
emit zeromintEnabledChanged(fEnableZeromint);
break;
case ZeromintPercentage:
nZeromintPercentage = value.toInt();
settings.setValue("nZeromintPercentage", nZeromintPercentage);
Expand Down Expand Up @@ -419,6 +431,7 @@ bool OptionsModel::getProxySettings(QNetworkProxy& proxy) const
void OptionsModel::setRestartRequired(bool fRequired)
{
QSettings settings;
// XXX: why 'return' here? either remove or change function return type
return settings.setValue("fRestartRequired", fRequired);
}

Expand Down
2 changes: 2 additions & 0 deletions src/qt/optionsmodel.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ class OptionsModel : public QAbstractListModel
ThreadsScriptVerif, // int
DatabaseCache, // int
SpendZeroConfChange, // bool
EnableZeromint, // bool
ZeromintPercentage, // int
ZeromintPrefDenom, // int
AnonymizePivxAmount, //int
Expand Down Expand Up @@ -90,6 +91,7 @@ class OptionsModel : public QAbstractListModel

signals:
void displayUnitChanged(int unit);
void zeromintEnabledChanged(bool);
void zeromintPercentageChanged(int);
void preferredDenomChanged(int);
void anonymizePivxAmountChanged(int);
Expand Down
70 changes: 50 additions & 20 deletions src/qt/overviewpage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,11 @@
#include "init.h"
#include "obfuscation.h"
#include "obfuscationconfig.h"
#include "optionsdialog.h"
#include "optionsmodel.h"
#include "transactionfilterproxy.h"
#include "transactiontablemodel.h"
#include "util.h"
#include "walletmodel.h"

#include <QAbstractItemDelegate>
Expand Down Expand Up @@ -129,7 +131,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") + ")");
Expand All @@ -155,28 +157,23 @@ void OverviewPage::getPercentage(CAmount nUnlockedBalance, CAmount nZerocoinBala
int nPrecision = 2;
double dzPercentage = 0.0;

if (nZerocoinBalance <= 0){
if (nZerocoinBalance <= 0) {
dzPercentage = 0.0;
}
else{
if (nUnlockedBalance <= 0){
} else {
if (nUnlockedBalance <= 0) {
dzPercentage = 100.0;
}
else{
} else {
dzPercentage = 100.0 * (double)(nZerocoinBalance / (double)(nZerocoinBalance + nUnlockedBalance));
}
}

double dPercentage = 100.0 - dzPercentage;

szPIVPercentage = "(" + QLocale(QLocale::system()).toString(dzPercentage, 'f', nPrecision) + " %)";
sPIVPercentage = "(" + QLocale(QLocale::system()).toString(dPercentage, 'f', nPrecision) + " %)";

}

void OverviewPage::setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance,
const CAmount& zerocoinBalance, const CAmount& unconfirmedZerocoinBalance, const CAmount& immatureZerocoinBalance,
const CAmount& watchOnlyBalance, const CAmount& watchUnconfBalance, const CAmount& watchImmatureBalance)
void OverviewPage::setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, const CAmount& zerocoinBalance, const CAmount& unconfirmedZerocoinBalance, const CAmount& immatureZerocoinBalance, const CAmount& watchOnlyBalance, const CAmount& watchUnconfBalance, const CAmount& watchImmatureBalance)
{
currentBalance = balance;
currentUnconfirmedBalance = unconfirmedBalance;
Expand Down Expand Up @@ -227,13 +224,12 @@ 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 {
} 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);
Expand Down Expand Up @@ -304,15 +300,18 @@ void OverviewPage::setWalletModel(WalletModel* model)

// Keep up to date with wallet
setBalance(model->getBalance(), model->getUnconfirmedBalance(), model->getImmatureBalance(),
model->getZerocoinBalance(), model->getUnconfirmedZerocoinBalance(), model->getImmatureZerocoinBalance(),
model->getWatchBalance(), model->getWatchUnconfirmedBalance(), model->getWatchImmatureBalance());
connect(model, SIGNAL(balanceChanged(CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount)), this,
SLOT(setBalance(CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount)));
model->getZerocoinBalance(), model->getUnconfirmedZerocoinBalance(), model->getImmatureZerocoinBalance(),
model->getWatchBalance(), model->getWatchUnconfirmedBalance(), model->getWatchImmatureBalance());
connect(model, SIGNAL(balanceChanged(CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount)), this,
SLOT(setBalance(CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount, CAmount)));

connect(model->getOptionsModel(), SIGNAL(displayUnitChanged(int)), this, SLOT(updateDisplayUnit()));

updateWatchOnlyLabels(model->haveWatchOnly());
connect(model, SIGNAL(notifyWatchonlyChanged(bool)), this, SLOT(updateWatchOnlyLabels(bool)));

connect(model->getOptionsModel(), SIGNAL(zeromintEnabledChanged(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")
Expand Down Expand Up @@ -345,3 +344,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()
{
// BitcoinGUI::optionsClicked();
if (!this->clientModel || !clientModel->getOptionsModel())
return;

// can we assume enableWallet true here ?
OptionsDialog dlg(this, true);
dlg.setModel(clientModel->getOptionsModel());
dlg.exec();
}
8 changes: 5 additions & 3 deletions src/qt/overviewpage.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ class OverviewPage : public QWidget
void showOutOfSyncWarning(bool fShow);

public slots:
void setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance,
const CAmount& zerocoinBalance, const CAmount& unconfirmedZerocoinBalance, const CAmount& immatureZerocoinBalance,
const CAmount& watchOnlyBalance, const CAmount& watchUnconfBalance, const CAmount& watchImmatureBalance);
void setBalance(const CAmount& balance, const CAmount& unconfirmedBalance, const CAmount& immatureBalance, const CAmount& zerocoinBalance, const CAmount& unconfirmedZerocoinBalance, const CAmount& immatureZerocoinBalance, const CAmount& watchOnlyBalance, const CAmount& watchUnconfBalance, const CAmount& watchImmatureBalance);

signals:
void transactionClicked(const QModelIndex& index);
Expand Down Expand Up @@ -69,6 +67,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
18 changes: 18 additions & 0 deletions src/qt/res/css/default.css
Original file line number Diff line number Diff line change
Expand Up @@ -1026,6 +1026,24 @@ font-size:14px;
/* min-height:35px; */
}

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_4 .QLabel#labelzBalance { /* Available zPIV Balance */
qproperty-alignment: 'AlignVCenter | AlignLeft';
font-size:12px;
Expand Down