Refactor HelpMessageDialog to reuse it for PS help info, add PS info to help menu (#1144)
This commit is contained in:
parent
c2ec99ba8e
commit
9162c56419
@ -108,6 +108,7 @@ BitcoinGUI::BitcoinGUI(const PlatformStyle *platformStyle, const NetworkStyle *n
|
|||||||
openRPCConsoleAction(0),
|
openRPCConsoleAction(0),
|
||||||
openAction(0),
|
openAction(0),
|
||||||
showHelpMessageAction(0),
|
showHelpMessageAction(0),
|
||||||
|
showPrivateSendHelpAction(0),
|
||||||
trayIcon(0),
|
trayIcon(0),
|
||||||
trayIconMenu(0),
|
trayIconMenu(0),
|
||||||
dockIconMenu(0),
|
dockIconMenu(0),
|
||||||
@ -154,7 +155,7 @@ BitcoinGUI::BitcoinGUI(const PlatformStyle *platformStyle, const NetworkStyle *n
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
rpcConsole = new RPCConsole(platformStyle, 0);
|
rpcConsole = new RPCConsole(platformStyle, 0);
|
||||||
helpMessageDialog = new HelpMessageDialog(this, false);
|
helpMessageDialog = new HelpMessageDialog(this, HelpMessageDialog::cmdline);
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
if(enableWallet)
|
if(enableWallet)
|
||||||
{
|
{
|
||||||
@ -425,12 +426,17 @@ void BitcoinGUI::createActions()
|
|||||||
showHelpMessageAction->setMenuRole(QAction::NoRole);
|
showHelpMessageAction->setMenuRole(QAction::NoRole);
|
||||||
showHelpMessageAction->setStatusTip(tr("Show the Dash Core help message to get a list with possible Dash Core command-line options"));
|
showHelpMessageAction->setStatusTip(tr("Show the Dash Core help message to get a list with possible Dash Core command-line options"));
|
||||||
|
|
||||||
|
showPrivateSendHelpAction = new QAction(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation), tr("&PrivateSend information"), this);
|
||||||
|
showPrivateSendHelpAction->setMenuRole(QAction::NoRole);
|
||||||
|
showPrivateSendHelpAction->setStatusTip(tr("Show the PrivateSend basic information"));
|
||||||
|
|
||||||
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
|
connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
|
||||||
connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked()));
|
connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutClicked()));
|
||||||
connect(aboutQtAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
|
connect(aboutQtAction, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
|
||||||
connect(optionsAction, SIGNAL(triggered()), this, SLOT(optionsClicked()));
|
connect(optionsAction, SIGNAL(triggered()), this, SLOT(optionsClicked()));
|
||||||
connect(toggleHideAction, SIGNAL(triggered()), this, SLOT(toggleHidden()));
|
connect(toggleHideAction, SIGNAL(triggered()), this, SLOT(toggleHidden()));
|
||||||
connect(showHelpMessageAction, SIGNAL(triggered()), this, SLOT(showHelpMessageClicked()));
|
connect(showHelpMessageAction, SIGNAL(triggered()), this, SLOT(showHelpMessageClicked()));
|
||||||
|
connect(showPrivateSendHelpAction, SIGNAL(triggered()), this, SLOT(showPrivateSendHelpClicked()));
|
||||||
|
|
||||||
// Jump directly to tabs in RPC-console
|
// Jump directly to tabs in RPC-console
|
||||||
connect(openInfoAction, SIGNAL(triggered()), this, SLOT(showInfo()));
|
connect(openInfoAction, SIGNAL(triggered()), this, SLOT(showInfo()));
|
||||||
@ -525,6 +531,7 @@ void BitcoinGUI::createMenuBar()
|
|||||||
|
|
||||||
QMenu *help = appMenuBar->addMenu(tr("&Help"));
|
QMenu *help = appMenuBar->addMenu(tr("&Help"));
|
||||||
help->addAction(showHelpMessageAction);
|
help->addAction(showHelpMessageAction);
|
||||||
|
help->addAction(showPrivateSendHelpAction);
|
||||||
help->addSeparator();
|
help->addSeparator();
|
||||||
help->addAction(aboutAction);
|
help->addAction(aboutAction);
|
||||||
help->addAction(aboutQtAction);
|
help->addAction(aboutQtAction);
|
||||||
@ -740,7 +747,7 @@ void BitcoinGUI::aboutClicked()
|
|||||||
if(!clientModel)
|
if(!clientModel)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
HelpMessageDialog dlg(this, true);
|
HelpMessageDialog dlg(this, HelpMessageDialog::about);
|
||||||
dlg.exec();
|
dlg.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -802,6 +809,15 @@ void BitcoinGUI::showHelpMessageClicked()
|
|||||||
helpMessageDialog->show();
|
helpMessageDialog->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BitcoinGUI::showPrivateSendHelpClicked()
|
||||||
|
{
|
||||||
|
if(!clientModel)
|
||||||
|
return;
|
||||||
|
|
||||||
|
HelpMessageDialog dlg(this, HelpMessageDialog::pshelp);
|
||||||
|
dlg.exec();
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef ENABLE_WALLET
|
#ifdef ENABLE_WALLET
|
||||||
void BitcoinGUI::openClicked()
|
void BitcoinGUI::openClicked()
|
||||||
{
|
{
|
||||||
|
@ -123,6 +123,7 @@ private:
|
|||||||
QAction *showBackupsAction;
|
QAction *showBackupsAction;
|
||||||
QAction *openAction;
|
QAction *openAction;
|
||||||
QAction *showHelpMessageAction;
|
QAction *showHelpMessageAction;
|
||||||
|
QAction *showPrivateSendHelpAction;
|
||||||
|
|
||||||
QSystemTrayIcon *trayIcon;
|
QSystemTrayIcon *trayIcon;
|
||||||
QMenu *trayIconMenu;
|
QMenu *trayIconMenu;
|
||||||
@ -238,6 +239,8 @@ private Q_SLOTS:
|
|||||||
|
|
||||||
/** Show help message dialog */
|
/** Show help message dialog */
|
||||||
void showHelpMessageClicked();
|
void showHelpMessageClicked();
|
||||||
|
/** Show PrivateSend help message dialog */
|
||||||
|
void showPrivateSendHelpClicked();
|
||||||
#ifndef Q_OS_MAC
|
#ifndef Q_OS_MAC
|
||||||
/** Handle tray icon clicked */
|
/** Handle tray icon clicked */
|
||||||
void trayIconActivated(QSystemTrayIcon::ActivationReason reason);
|
void trayIconActivated(QSystemTrayIcon::ActivationReason reason);
|
||||||
|
@ -609,7 +609,7 @@ int main(int argc, char *argv[])
|
|||||||
// but before showing splash screen.
|
// but before showing splash screen.
|
||||||
if (mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help") || mapArgs.count("-version"))
|
if (mapArgs.count("-?") || mapArgs.count("-h") || mapArgs.count("-help") || mapArgs.count("-version"))
|
||||||
{
|
{
|
||||||
HelpMessageDialog help(NULL, mapArgs.count("-version"));
|
HelpMessageDialog help(NULL, mapArgs.count("-version") ? HelpMessageDialog::about : HelpMessageDialog::cmdline);
|
||||||
help.showOrPrint();
|
help.showOrPrint();
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "platformstyle.h"
|
#include "platformstyle.h"
|
||||||
#include "transactionfilterproxy.h"
|
#include "transactionfilterproxy.h"
|
||||||
#include "transactiontablemodel.h"
|
#include "transactiontablemodel.h"
|
||||||
|
#include "utilitydialog.h"
|
||||||
#include "walletmodel.h"
|
#include "walletmodel.h"
|
||||||
#include "init.h"
|
#include "init.h"
|
||||||
#include "masternode-sync.h"
|
#include "masternode-sync.h"
|
||||||
@ -579,41 +580,8 @@ void OverviewPage::privateSendReset(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void OverviewPage::privateSendInfo(){
|
void OverviewPage::privateSendInfo(){
|
||||||
|
HelpMessageDialog dlg(this, HelpMessageDialog::pshelp);
|
||||||
// Artificial long boxtitle to ensure minimum width without overwriting the global CSS styles
|
dlg.exec();
|
||||||
QString placeHolder = " ";
|
|
||||||
QString infoBoxTitle = tr("PrivateSend") + placeHolder;
|
|
||||||
|
|
||||||
QMessageBox::information(this, infoBoxTitle,
|
|
||||||
tr("\
|
|
||||||
<h3>PrivateSend Basics</h3> \
|
|
||||||
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.<br> \
|
|
||||||
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..<hr> \
|
|
||||||
<b>The PrivateSend process works like this:</b>\
|
|
||||||
<ol type=\"1\"> \
|
|
||||||
<li>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.</li> \
|
|
||||||
<li>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.</li> \
|
|
||||||
<li>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).</li> \
|
|
||||||
<li>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.</li> \
|
|
||||||
<li>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.</li> \
|
|
||||||
</ol> <hr>\
|
|
||||||
<b>IMPORTANT:</b> 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.<br> \
|
|
||||||
Consequently, users who have backups disabled will also have PrivateSend disabled. <hr>\
|
|
||||||
For more info see <a href=\"https://dashpay.atlassian.net/wiki/display/DOC/PrivateSend\">https://dashpay.atlassian.net/wiki/display/DOC/PrivateSend</a> \
|
|
||||||
"),
|
|
||||||
QMessageBox::Ok, QMessageBox::Ok);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OverviewPage::togglePrivateSend(){
|
void OverviewPage::togglePrivateSend(){
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
/** "Help message" or "About" dialog box */
|
/** "Help message" or "About" dialog box */
|
||||||
HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) :
|
HelpMessageDialog::HelpMessageDialog(QWidget *parent, HelpMode helpMode) :
|
||||||
QDialog(parent),
|
QDialog(parent),
|
||||||
ui(new Ui::HelpMessageDialog)
|
ui(new Ui::HelpMessageDialog)
|
||||||
{
|
{
|
||||||
@ -44,7 +44,7 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) :
|
|||||||
version += " " + tr("(%1-bit)").arg(32);
|
version += " " + tr("(%1-bit)").arg(32);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (about)
|
if (helpMode == about)
|
||||||
{
|
{
|
||||||
setWindowTitle(tr("About Dash Core"));
|
setWindowTitle(tr("About Dash Core"));
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) :
|
|||||||
ui->aboutMessage->setText(version + "<br><br>" + licenseInfoHTML);
|
ui->aboutMessage->setText(version + "<br><br>" + licenseInfoHTML);
|
||||||
ui->aboutMessage->setWordWrap(true);
|
ui->aboutMessage->setWordWrap(true);
|
||||||
ui->helpMessage->setVisible(false);
|
ui->helpMessage->setVisible(false);
|
||||||
} else {
|
} else if (helpMode == cmdline) {
|
||||||
setWindowTitle(tr("Command-line options"));
|
setWindowTitle(tr("Command-line options"));
|
||||||
QString header = tr("Usage:") + "\n" +
|
QString header = tr("Usage:") + "\n" +
|
||||||
" dash-qt [" + tr("command-line options") + "] " + "\n";
|
" dash-qt [" + tr("command-line options") + "] " + "\n";
|
||||||
@ -127,6 +127,41 @@ HelpMessageDialog::HelpMessageDialog(QWidget *parent, bool about) :
|
|||||||
ui->helpMessage->moveCursor(QTextCursor::Start);
|
ui->helpMessage->moveCursor(QTextCursor::Start);
|
||||||
ui->scrollArea->setVisible(false);
|
ui->scrollArea->setVisible(false);
|
||||||
ui->aboutLogo->setVisible(false);
|
ui->aboutLogo->setVisible(false);
|
||||||
|
} else if (helpMode == pshelp) {
|
||||||
|
setWindowTitle(tr("PrivateSend information"));
|
||||||
|
|
||||||
|
ui->aboutMessage->setTextFormat(Qt::RichText);
|
||||||
|
ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
|
||||||
|
ui->aboutMessage->setText(tr("\
|
||||||
|
<h3>PrivateSend Basics</h3> \
|
||||||
|
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.<br> \
|
||||||
|
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..<hr> \
|
||||||
|
<b>The PrivateSend process works like this:</b>\
|
||||||
|
<ol type=\"1\"> \
|
||||||
|
<li>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.</li> \
|
||||||
|
<li>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.</li> \
|
||||||
|
<li>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).</li> \
|
||||||
|
<li>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.</li> \
|
||||||
|
<li>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.</li> \
|
||||||
|
</ol> <hr>\
|
||||||
|
<b>IMPORTANT:</b> 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.<br> \
|
||||||
|
Consequently, users who have backups disabled will also have PrivateSend disabled. <hr>\
|
||||||
|
For more info see <a href=\"https://dashpay.atlassian.net/wiki/display/DOC/PrivateSend\">https://dashpay.atlassian.net/wiki/display/DOC/PrivateSend</a> \
|
||||||
|
"));
|
||||||
|
ui->aboutMessage->setWordWrap(true);
|
||||||
|
ui->helpMessage->setVisible(false);
|
||||||
|
ui->aboutLogo->setVisible(false);
|
||||||
}
|
}
|
||||||
// Theme dependent Gfx in About popup
|
// Theme dependent Gfx in About popup
|
||||||
QString helpMessageGfx = ":/images/" + GUIUtil::getThemeName() + "/about";
|
QString helpMessageGfx = ":/images/" + GUIUtil::getThemeName() + "/about";
|
||||||
|
@ -21,7 +21,13 @@ class HelpMessageDialog : public QDialog
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit HelpMessageDialog(QWidget *parent, bool about);
|
enum HelpMode {
|
||||||
|
about,
|
||||||
|
cmdline,
|
||||||
|
pshelp
|
||||||
|
};
|
||||||
|
|
||||||
|
explicit HelpMessageDialog(QWidget *parent, HelpMode helpMode);
|
||||||
~HelpMessageDialog();
|
~HelpMessageDialog();
|
||||||
|
|
||||||
void printToConsole();
|
void printToConsole();
|
||||||
|
Loading…
Reference in New Issue
Block a user