diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index bdc6ea6f..2a2d2003 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -113,54 +113,6 @@ static void handleRunawayException(std::exception *e) exit(1); } -/** Help message for Bitcoin-Qt, shown with --help. */ -class HelpMessageBox: public QMessageBox -{ - Q_OBJECT -public: - HelpMessageBox(QWidget *parent = 0); - - void exec(); -private: - QString header; - QString coreOptions; - QString uiOptions; -}; - -HelpMessageBox::HelpMessageBox(QWidget *parent): - QMessageBox(parent) -{ - header = tr("Bitcoin-Qt") + " " + tr("version") + " " + - QString::fromStdString(FormatFullVersion()) + "\n\n" + - tr("Usage:") + "\n" + - " bitcoin-qt [" + tr("options") + "] " + "\n"; - coreOptions = QString::fromStdString(HelpMessage()); - uiOptions = tr("UI options") + ":\n" + - " -lang= " + tr("Set language, for example \"de_DE\" (default: system locale)") + "\n" + - " -min " + tr("Start minimized") + "\n" + - " -splash " + tr("Show splash screen on startup (default: 1)") + "\n"; - - setWindowTitle(tr("Bitcoin-Qt")); - setTextFormat(Qt::PlainText); - // setMinimumWidth is ignored for QMessageBox so put in nonbreaking spaces to make it wider. - QChar em_space(0x2003); - setText(header + QString(em_space).repeated(40)); - setDetailedText(coreOptions + "\n" + uiOptions); -} -#include "bitcoin.moc" - -void HelpMessageBox::exec() -{ -#if defined(WIN32) - // On windows, show a message box, as there is no stderr in windowed applications - QMessageBox::exec(); -#else - // On other operating systems, the expected action is to print the message to the console. - QString strUsage = header + "\n" + coreOptions + "\n" + uiOptions; - fprintf(stderr, "%s", strUsage.toStdString().c_str()); -#endif -} - #ifndef BITCOIN_QT_TEST int main(int argc, char *argv[]) { @@ -259,7 +211,7 @@ int main(int argc, char *argv[]) // but before showing splash screen. if (mapArgs.count("-?") || mapArgs.count("--help")) { - HelpMessageBox help; + GUIUtil::HelpMessageBox help; help.exec(); return 1; } diff --git a/src/qt/forms/rpcconsole.ui b/src/qt/forms/rpcconsole.ui index cded2747..678afad0 100644 --- a/src/qt/forms/rpcconsole.ui +++ b/src/qt/forms/rpcconsole.ui @@ -6,8 +6,8 @@ 0 0 - 706 - 446 + 740 + 450 @@ -304,6 +304,29 @@ + + + + 75 + true + + + + Command-line options + + + + + + + Show the Bitcoin-Qt help message to get a list with possible Bitcoin command-line options. + + + &Show + + + + Qt::Vertical diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 22c0bfee..3f2fc2ff 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -3,6 +3,7 @@ #include "walletmodel.h" #include "bitcoinunits.h" #include "util.h" +#include "init.h" #include #include @@ -413,5 +414,39 @@ bool SetStartOnSystemStartup(bool fAutoStart) { return false; } #endif +HelpMessageBox::HelpMessageBox(QWidget *parent) : + QMessageBox(parent) +{ + header = tr("Bitcoin-Qt") + " " + tr("version") + " " + + QString::fromStdString(FormatFullVersion()) + "\n\n" + + tr("Usage:") + "\n" + + " bitcoin-qt [" + tr("command-line options") + "] " + "\n"; + + coreOptions = QString::fromStdString(HelpMessage()); + + uiOptions = tr("UI options") + ":\n" + + " -lang= " + tr("Set language, for example \"de_DE\" (default: system locale)") + "\n" + + " -min " + tr("Start minimized") + "\n" + + " -splash " + tr("Show splash screen on startup (default: 1)") + "\n"; + + setWindowTitle(tr("Bitcoin-Qt")); + setTextFormat(Qt::PlainText); + // setMinimumWidth is ignored for QMessageBox so put in nonbreaking spaces to make it wider. + setText(header + QString(QChar(0x2003)).repeated(50)); + setDetailedText(coreOptions + "\n" + uiOptions); +} + +void HelpMessageBox::exec() +{ +#if defined(WIN32) + // On windows, show a message box, as there is no stderr in windowed applications + QMessageBox::exec(); +#else + // On other operating systems, the expected action is to print the message to the console. + QString strUsage = header + "\n" + coreOptions + "\n" + uiOptions; + fprintf(stderr, "%s", strUsage.toStdString().c_str()); +#endif +} + } // namespace GUIUtil diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index c5f9aae5..ca063485 100644 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -3,6 +3,7 @@ #include #include +#include QT_BEGIN_NAMESPACE class QFont; @@ -80,6 +81,7 @@ namespace GUIUtil class ToolTipToRichTextFilter : public QObject { Q_OBJECT + public: explicit ToolTipToRichTextFilter(int size_threshold, QObject *parent = 0); @@ -93,6 +95,22 @@ namespace GUIUtil bool GetStartOnSystemStartup(); bool SetStartOnSystemStartup(bool fAutoStart); + /** Help message for Bitcoin-Qt, shown with --help. */ + class HelpMessageBox : public QMessageBox + { + Q_OBJECT + + public: + HelpMessageBox(QWidget *parent = 0); + + void exec(); + + private: + QString header; + QString coreOptions; + QString uiOptions; + }; + } // namespace GUIUtil #endif // GUIUTIL_H diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp index 830ce4fa..f7b06b5b 100644 --- a/src/qt/rpcconsole.cpp +++ b/src/qt/rpcconsole.cpp @@ -109,10 +109,13 @@ RPCConsole::RPCConsole(QWidget *parent) : { ui->setupUi(this); -#ifdef WIN32 +#ifndef Q_WS_MAC ui->openDebugLogfileButton->setIcon(QIcon(":/icons/export")); -#else - // Show Debug logfile label and Open button only for Windows + ui->showCLOptionsButton->setIcon(QIcon(":/icons/options")); +#endif + +#ifndef WIN32 + // Hide Debug logfile label and Open button for non Windows-OSes ui->labelDebugLogfile->setVisible(false); ui->openDebugLogfileButton->setVisible(false); #endif @@ -326,3 +329,9 @@ void RPCConsole::scrollToEnd() QScrollBar *scrollbar = ui->messagesWidget->verticalScrollBar(); scrollbar->setValue(scrollbar->maximum()); } + +void RPCConsole::on_showCLOptionsButton_clicked() +{ + GUIUtil::HelpMessageBox help; + help.exec(); +} diff --git a/src/qt/rpcconsole.h b/src/qt/rpcconsole.h index 4b71cdb9..3c38b4b8 100644 --- a/src/qt/rpcconsole.h +++ b/src/qt/rpcconsole.h @@ -35,6 +35,8 @@ private slots: void on_tabWidget_currentChanged(int index); /** open the debug.log from the current datadir */ void on_openDebugLogfileButton_clicked(); + /** display messagebox with program parameters (same as bitcoin-qt --help) */ + void on_showCLOptionsButton_clicked(); public slots: void clear();