diff --git a/src/qt/forms/overviewpage.ui b/src/qt/forms/overviewpage.ui
index 4618bfa065db..07a7651908e8 100644
--- a/src/qt/forms/overviewpage.ui
+++ b/src/qt/forms/overviewpage.ui
@@ -405,223 +405,233 @@
-
-
-
-
-
-
-
-
- 75
- true
-
-
-
- PrivateSend
-
-
-
- -
-
-
- The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet.
-
-
- QLabel { color: red; }
-
-
- (out of sync)
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ PrivateSend
+
+
+
+ -
+
+
+ The displayed information may be out of date. Your wallet automatically synchronizes with the Dash network after a connection is established, but this process has not completed yet.
+
+
+ QLabel { color: red; }
+
+
+ (out of sync)
+
+
+ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
-
-
-
-
- QFormLayout::AllNonFixedFieldsGrow
-
-
- 11
-
-
- 12
-
-
-
-
-
- Status:
-
-
-
- -
-
-
- Enabled/Disabled
-
-
-
- -
-
-
- Completion:
-
-
-
- -
-
-
-
- 154
- 16777215
-
-
-
- 0
-
-
-
- -
-
-
- PrivateSend Balance:
-
-
-
- -
-
-
-
- 75
- true
-
-
-
- 0 DASH
-
-
-
- -
-
-
- Amount and Rounds:
-
-
-
- -
-
-
- 0 DASH / 0 Rounds
-
-
-
- -
-
-
- Submitted Denom:
-
-
-
- -
-
-
- The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations.
-
-
- n/a
-
-
-
-
-
+
+
+ QFormLayout::AllNonFixedFieldsGrow
+
+
+ 11
+
+
+ 12
+
+ -
+
+
+ Status:
+
+
+
+ -
+
+
+ Enabled/Disabled
+
+
+
+ -
+
+
+ Completion:
+
+
+
+ -
+
+
+
+ 154
+ 16777215
+
+
+
+ 0
+
+
+
+ -
+
+
+ PrivateSend Balance:
+
+
+
+ -
+
+
+
+ 75
+ true
+
+
+
+ 0 DASH
+
+
+
+ -
+
+
+ Amount and Rounds:
+
+
+
+ -
+
+
+ 0 DASH / 0 Rounds
+
+
+
+ -
+
+
+ Submitted Denom:
+
+
+
+ -
+
+
+ The denominations you submitted to the Masternode.<br>To mix, other users must submit the exact same denominations.
+
+
+ n/a
+
+
+
+
-
-
-
-
-
-
-
- (Last Message)
-
-
- Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
-
-
- true
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Start/Stop Mixing
-
-
-
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
- Try to manually submit a PrivateSend request.
-
-
- Try Mix
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
- Reset the current status of PrivateSend (can interrupt PrivateSend if it's in the process of Mixing, which can cost you money!)
-
-
- false
-
-
- Reset
-
-
-
-
-
-
-
+
+ -
+
+
+ (Last Message)
+
+
+ Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop
+
+
+ true
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Start/Stop Mixing
+
+
+
+ -
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Try to manually submit a PrivateSend request.
+
+
+ Try Mix
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Reset the current status of PrivateSend (can interrupt PrivateSend if it's in the process of Mixing, which can cost you money!)
+
+
+ false
+
+
+ Reset
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Information about PrivateSend and Mixing
+
+
+ Info
+
+
+
+
+
+
diff --git a/src/qt/overviewpage.cpp b/src/qt/overviewpage.cpp
index cd6d6b28a38c..28f29d7b98f2 100644
--- a/src/qt/overviewpage.cpp
+++ b/src/qt/overviewpage.cpp
@@ -282,6 +282,7 @@ void OverviewPage::setWalletModel(WalletModel *model)
connect(ui->privateSendAuto, SIGNAL(clicked()), this, SLOT(privateSendAuto()));
connect(ui->privateSendReset, SIGNAL(clicked()), this, SLOT(privateSendReset()));
+ connect(ui->privateSendInfo, SIGNAL(clicked()), this, SLOT(privateSendInfo()));
connect(ui->togglePrivateSend, SIGNAL(clicked()), this, SLOT(togglePrivateSend()));
updateWatchOnlyLabels(model->haveWatchOnly());
connect(model, SIGNAL(notifyWatchonlyChanged(bool)), this, SLOT(updateWatchOnlyLabels(bool)));
@@ -441,6 +442,7 @@ void OverviewPage::updateAdvancedPSUI(bool fShowAdvancedPSUI) {
ui->labelSubmittedDenom->setVisible(fShowAdvancedPSUI);
ui->privateSendAuto->setVisible(fShowAdvancedPSUI);
ui->privateSendReset->setVisible(fShowAdvancedPSUI);
+ ui->privateSendInfo->setVisible(true);
ui->labelPrivateSendLastMessage->setVisible(fShowAdvancedPSUI);
}
@@ -576,6 +578,44 @@ void OverviewPage::privateSendReset(){
QMessageBox::Ok, QMessageBox::Ok);
}
+void OverviewPage::privateSendInfo(){
+
+ // Artificial long boxtitle to ensure minimum width without overwriting the global CSS styles
+ QString placeHolder = " ";
+ QString infoBoxTitle = tr("PrivateSend") + placeHolder;
+
+ QMessageBox::information(this, infoBoxTitle,
+ tr("\
+
PrivateSend Basics
\
+PrivateSend gives you true financial privacy by obscuring the origins of your funds. \
+All the Dash in your wallet is comprised of different \"inputs\" which you can think of as separate, discrete coins.
\
+PrivateSend uses an innovative process to mix your inputs with the inputs of two other people, without having your coins ever leave your wallet. \
+You retain control of your money at all times..
\
+The PrivateSend process works like this:\
+ \
+- PrivateSend begins by breaking your transaction inputs down into standard denominations. \
+These denominations are 0.1 DASH, 1 DASH, 10 DASH, and 100 DASH--sort of like the paper money you use every day.
\
+- Your wallet then sends requests to specially configured software nodes on the network, called \"masternodes.\" \
+These masternodes are informed then that you are interested in mixing a certain denomination. \
+No identifiable information is sent to the masternodes, so they never know \"who\" you are.
\
+- When two other people send similar messages, indicating that they wish to mix the same denomination, a mixing session begins. \
+The masternode mixes up the inputs and instructs all three users' wallets to pay the now-transformed input back to themselves. \
+Your wallet pays that denomination directly to itself, but in a different address (called a change address).
\
+- In order to fully obscure your funds, your wallet must repeat this process a number of times with each denomination. \
+Each time the process is completed, it's called a \"round.\" Each round of PrivateSend makes it exponentially more difficult to determine where your funds originated.
\
+- This mixing process happens in the background without any intervention on your part. When you wish to make a transaction, \
+your funds will already be anonymized. No additional waiting is required.
\
+
\
+IMPORTANT: Your wallet only contains 1000 of these \"change addresses.\" Every time a mixing event happens, up to 9 of your addresses are used up. \
+This means those 1000 addresses last for about 100 mixing events. When 900 of them are used, your wallet must create more addresses. \
+It can only do this, however, if you have automatic backups enabled.
\
+Consequently, users who have backups disabled will also have PrivateSend disabled.
\
+For more info see https://dashpay.atlassian.net/wiki/display/DOC/PrivateSend \
+ "),
+ QMessageBox::Ok, QMessageBox::Ok);
+
+}
+
void OverviewPage::togglePrivateSend(){
QSettings settings;
// Popup some information on first mixing
diff --git a/src/qt/overviewpage.h b/src/qt/overviewpage.h
index 1a43da34e543..19a45b68b6b3 100644
--- a/src/qt/overviewpage.h
+++ b/src/qt/overviewpage.h
@@ -69,6 +69,7 @@ private Q_SLOTS:
void togglePrivateSend();
void privateSendAuto();
void privateSendReset();
+ void privateSendInfo();
void updateDisplayUnit();
void updatePrivateSendProgress();
void updateAdvancedPSUI(bool fShowAdvancedPSUI);
diff --git a/src/qt/res/css/crownium.css b/src/qt/res/css/crownium.css
index 70d3d1f21090..b8f580ddd040 100644
--- a/src/qt/res/css/crownium.css
+++ b/src/qt/res/css/crownium.css
@@ -1101,6 +1101,24 @@ QWidget .QFrame#framePrivateSend .QPushButton#privateSendReset:pressed {
border:1px solid #9e9e9e;
}
+QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo { /* Info Button */
+background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .3 #FFFFFF, stop: .7 #FFFFFF, stop: 1 #222222);
+border:1px solid #d2d2d2;
+color:#616161;
+min-height:25px;
+font-size:9px;
+padding:0px;
+}
+
+QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo:hover {
+background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .2 #FFFFFF, stop: .6 #FFFFFF, stop: 1 #222222);
+color:#000000;
+}
+
+QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo:pressed {
+border:1px solid #9e9e9e;
+}
+
/* RECENT TRANSACTIONS */
QWidget .QFrame#frame_2 { /* Transactions Widget */
diff --git a/src/qt/res/css/drkblue.css b/src/qt/res/css/drkblue.css
index f182605f4f6b..5d61092e0879 100644
--- a/src/qt/res/css/drkblue.css
+++ b/src/qt/res/css/drkblue.css
@@ -1078,6 +1078,24 @@ QWidget .QFrame#framePrivateSend .QPushButton#privateSendReset:pressed {
border:1px solid #9e9e9e;
}
+QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo { /* Info Button */
+background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb);
+border:1px solid #d2d2d2;
+color:#616161;
+min-height:25px;
+font-size:9px;
+padding:0px;
+}
+
+QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo:hover {
+background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb);
+color:#333;
+}
+
+QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo:pressed {
+border:1px solid #9e9e9e;
+}
+
/* RECENT TRANSACTIONS */
QWidget .QFrame#frame_2 { /* Transactions Widget */
diff --git a/src/qt/res/css/light.css b/src/qt/res/css/light.css
index c2bd605b6ba8..34198858449f 100644
--- a/src/qt/res/css/light.css
+++ b/src/qt/res/css/light.css
@@ -1085,6 +1085,24 @@ QWidget .QFrame#framePrivateSend .QPushButton#privateSendReset:pressed {
border:1px solid #9e9e9e;
}
+QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo { /* Info Button */
+background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb);
+border:1px solid #d2d2d2;
+color:#616161;
+min-height:25px;
+font-size:9px;
+padding:0px;
+}
+
+QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo:hover {
+background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb);
+color:#333;
+}
+
+QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo:pressed {
+border:1px solid #9e9e9e;
+}
+
/* RECENT TRANSACTIONS */
QWidget .QFrame#frame_2 { /* Transactions Widget */