23 #include <QCloseEvent> 27 #include <QTextCursor> 28 #include <QVBoxLayout> 41 #if defined(__x86_64__) 42 version +=
" " + tr(
"(%1-bit)").arg(64);
43 #elif defined(__i386__ ) 44 version +=
" " + tr(
"(%1-bit)").arg(32);
47 if (helpMode ==
about)
49 setWindowTitle(tr(
"About Dash Core"));
52 QString licenseInfo = QString::fromStdString(
LicenseInfo());
53 QString licenseInfoHTML = licenseInfo;
56 QRegExp uri(
"<(.*)>", Qt::CaseSensitive, QRegExp::RegExp2);
58 licenseInfoHTML.replace(uri,
"<a href=\"\\1\">\\1</a>");
60 licenseInfoHTML.replace(
"\n\n",
"<br><br>");
63 ui->
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
68 }
else if (helpMode ==
cmdline) {
69 setWindowTitle(tr(
"Command-line options"));
70 QString header = tr(
"Usage:") +
"\n" +
71 " dash-qt [" + tr(
"command-line options") +
"] " +
"\n";
75 cursor.insertText(header);
79 const bool showDebug =
GetBoolArg(
"-help-debug",
false);
85 strUsage +=
HelpMessageOpt(
"-lang=<lang>", tr(
"Set language, for example \"de_DE\" (default: system locale)").toStdString());
86 strUsage +=
HelpMessageOpt(
"-min", tr(
"Start minimized").toStdString());
87 strUsage +=
HelpMessageOpt(
"-rootcertificates=<file>", tr(
"Set SSL root certificates for payment request (default: -system-)").toStdString());
89 strUsage +=
HelpMessageOpt(
"-resetguisettings", tr(
"Reset all settings changed in the GUI").toStdString());
93 QString coreOptions = QString::fromStdString(strUsage);
94 text =
version +
"\n" + header +
"\n" + coreOptions;
97 tf.setBorderStyle(QTextFrameFormat::BorderStyle_None);
99 QVector<QTextLength> widths;
100 widths << QTextLength(QTextLength::PercentageLength, 35);
101 widths << QTextLength(QTextLength::PercentageLength, 65);
102 tf.setColumnWidthConstraints(widths);
104 QTextCharFormat
bold;
105 bold.setFontWeight(QFont::Bold);
107 Q_FOREACH (
const QString &line, coreOptions.split(
"\n")) {
108 if (line.startsWith(
" -"))
110 cursor.currentTable()->appendRows(1);
111 cursor.movePosition(QTextCursor::PreviousCell);
112 cursor.movePosition(QTextCursor::NextRow);
113 cursor.insertText(line.trimmed());
114 cursor.movePosition(QTextCursor::NextCell);
115 }
else if (line.startsWith(
" ")) {
116 cursor.insertText(line.trimmed()+
' ');
117 }
else if (line.size() > 0) {
119 if (cursor.currentTable())
120 cursor.currentTable()->appendRows(1);
121 cursor.movePosition(QTextCursor::Down);
122 cursor.insertText(line.trimmed(),
bold);
123 cursor.insertTable(1, 2, tf);
130 }
else if (helpMode ==
pshelp) {
131 setWindowTitle(tr(
"PrivateSend information"));
134 ui->
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
136 <h3>PrivateSend Basics</h3> \ 137 PrivateSend gives you true financial privacy by obscuring the origins of your funds. \ 138 All the Dash in your wallet is comprised of different \"inputs\" which you can think of as separate, discrete coins.<br> \ 139 PrivateSend uses an innovative process to mix your inputs with the inputs of two other people, without having your coins ever leave your wallet. \ 140 You retain control of your money at all times..<hr> \ 141 <b>The PrivateSend process works like this:</b>\ 143 <li>PrivateSend begins by breaking your transaction inputs down into standard denominations. \ 144 These denominations are 0.01 DASH, 0.1 DASH, 1 DASH and 10 DASH -- sort of like the paper money you use every day.</li> \ 145 <li>Your wallet then sends requests to specially configured software nodes on the network, called \"masternodes.\" \ 146 These masternodes are informed then that you are interested in mixing a certain denomination. \ 147 No identifiable information is sent to the masternodes, so they never know \"who\" you are.</li> \ 148 <li>When two other people send similar messages, indicating that they wish to mix the same denomination, a mixing session begins. \ 149 The masternode mixes up the inputs and instructs all three users' wallets to pay the now-transformed input back to themselves. \ 150 Your wallet pays that denomination directly to itself, but in a different address (called a change address).</li> \ 151 <li>In order to fully obscure your funds, your wallet must repeat this process a number of times with each denomination. \ 152 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> \ 153 <li>This mixing process happens in the background without any intervention on your part. When you wish to make a transaction, \ 154 your funds will already be anonymized. No additional waiting is required.</li> \ 156 <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. \ 157 This means those 1000 addresses last for about 100 mixing events. When 900 of them are used, your wallet must create more addresses. \ 158 It can only do this, however, if you have automatic backups enabled.<br> \ 159 Consequently, users who have backups disabled will also have PrivateSend disabled. <hr>\ 160 For more info see <a href=\"https://dashpay.atlassian.net/wiki/display/DOC/PrivateSend\">https://dashpay.atlassian.net/wiki/display/DOC/PrivateSend</a> \ 168 QPixmap pixmap = QPixmap(helpMessageGfx);
204 QVBoxLayout *layout =
new QVBoxLayout();
205 layout->addWidget(
new QLabel(
206 tr(
"Dash Core is shutting down...") +
"<br /><br />" +
207 tr(
"Do not shut down the computer until this window disappears.")));
218 shutdownWindow->setWindowTitle(window->windowTitle());
221 const QPoint global = window->mapToGlobal(window->rect().center());
222 shutdownWindow->move(global.x() - shutdownWindow->width() / 2, global.y() - shutdownWindow->height() / 2);
223 shutdownWindow->show();
224 return shutdownWindow;
static const bool DEFAULT_CHOOSE_DATADIR
std::string HelpMessageOpt(const std::string &option, const std::string &message)
void setupUi(QDialog *HelpMessageDialog)
static const bool DEFAULT_SELFSIGNED_ROOTCERTS
HelpMessageDialog(QWidget *parent, HelpMode helpMode)
std::string LicenseInfo()
static const bool DEFAULT_SPLASHSCREEN
std::string HelpMessage(HelpMessageMode mode)
Ui::HelpMessageDialog * ui
bool GetBoolArg(const std::string &strArg, bool fDefault)
void closeEvent(QCloseEvent *event)
std::string FormatFullVersion()
static QWidget * showShutdownWindow(BitcoinGUI *window)
static const std::string DEFAULT_UIPLATFORM
ShutdownWindow(QWidget *parent=0, Qt::WindowFlags f=0)
std::string HelpMessageGroup(const std::string &message)
void on_okButton_accepted()