31 QDialog(parent,
GUIUtil::dialog_flags),
36 QString version = QString{CLIENT_NAME} +
" " + tr(
"version") +
" " + QString::fromStdString(
FormatFullVersion());
40 setWindowTitle(tr(
"About %1").arg(CLIENT_NAME));
44 QString licenseInfoHTML = QString::fromStdString(
LicenseInfo());
46 QRegularExpression uri(QStringLiteral(
"<(.*)>"), QRegularExpression::InvertedGreedinessOption);
47 licenseInfoHTML.replace(uri, QStringLiteral(
"<a href=\"\\1\">\\1</a>"));
49 licenseInfoHTML.replace(
"\n",
"<br>");
51 ui->aboutMessage->setTextFormat(Qt::RichText);
52 ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
54 ui->aboutMessage->setText(version +
"<br><br>" + licenseInfoHTML);
55 ui->aboutMessage->setWordWrap(
true);
56 ui->helpMessage->setVisible(
false);
58 setWindowTitle(tr(
"Command-line options"));
59 QString header =
"The bitcoin-qt application provides a graphical interface for interacting with " CLIENT_NAME
".\n\n"
60 "It combines the core functionalities of bitcoind with a user-friendly interface for wallet management, transaction history, and network statistics.\n\n"
61 "It is suitable for users who prefer a graphical over a command-line interface.\n\n"
62 "You can optionally specify a payment [URI], in e.g. the BIP21 URI format.\n\n"
63 "Usage: bitcoin-qt [options] [URI]\n\n";
64 QTextCursor cursor(
ui->helpMessage->document());
65 cursor.insertText(version);
67 cursor.insertText(header);
70 std::string strUsage =
gArgs.GetHelpMessage();
71 QString coreOptions = QString::fromStdString(strUsage);
72 text = version +
"\n\n" + header +
"\n" + coreOptions;
75 tf.setBorderStyle(QTextFrameFormat::BorderStyle_None);
77 QVector<QTextLength> widths;
78 widths << QTextLength(QTextLength::PercentageLength, 35);
79 widths << QTextLength(QTextLength::PercentageLength, 65);
80 tf.setColumnWidthConstraints(widths);
83 bold.setFontWeight(QFont::Bold);
85 for (
const QString &line : coreOptions.split(
"\n")) {
86 if (line.startsWith(
" -"))
88 cursor.currentTable()->appendRows(1);
89 cursor.movePosition(QTextCursor::PreviousCell);
90 cursor.movePosition(QTextCursor::NextRow);
91 cursor.insertText(line.trimmed());
92 cursor.movePosition(QTextCursor::NextCell);
93 }
else if (line.startsWith(
" ")) {
94 cursor.insertText(line.trimmed()+
' ');
95 }
else if (line.size() > 0) {
97 if (cursor.currentTable())
98 cursor.currentTable()->appendRows(1);
99 cursor.movePosition(QTextCursor::Down);
100 cursor.insertText(line.trimmed(), bold);
101 cursor.insertTable(1, 2, tf);
105 ui->helpMessage->moveCursor(QTextCursor::Start);
106 ui->scrollArea->setVisible(
false);
107 ui->aboutLogo->setVisible(
false);
std::string FormatParagraph(std::string_view in, size_t width, size_t indent)
Format a paragraph of text to a fixed width, adding spaces for indentation to any added line.