Move help message out of AppInit2
- Solves #1278, attempts to address #1049 - Removes \t's from help message that are removed afterwards anyway - Moves UI-specific command-line options help to UI code - Moves "-detachdb" out of #ifdef USE_UPNP
This commit is contained in:
@@ -129,6 +129,53 @@ static void handleRunawayException(std::exception *e)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/** Help message for Bitcoin-Qt, shown with --help. */
|
||||
class HelpMessageBox: public QMessageBox
|
||||
{
|
||||
public:
|
||||
HelpMessageBox(QWidget *parent = 0);
|
||||
|
||||
void exec();
|
||||
private:
|
||||
QString header;
|
||||
QString coreOptions;
|
||||
QString uiOptions;
|
||||
};
|
||||
#include <QSpacerItem>
|
||||
#include <QGridLayout>
|
||||
HelpMessageBox::HelpMessageBox(QWidget *parent):
|
||||
QMessageBox(parent)
|
||||
{
|
||||
header = tr("Bitcoin-Qt") + " " + tr("version") + " " +
|
||||
QString::fromStdString(FormatFullVersion()) + "\n\n" +
|
||||
tr("Usage:") + "\n" +
|
||||
" bitcoin-qt [options] " + "\n";
|
||||
coreOptions = QString::fromStdString(HelpMessage());
|
||||
uiOptions = tr("UI options") + ":\n" +
|
||||
" -lang=<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);
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
#ifdef WIN32
|
||||
#define strncasecmp strnicmp
|
||||
#endif
|
||||
@@ -218,6 +265,15 @@ int main(int argc, char *argv[])
|
||||
if (translator.load(lang_territory, ":/translations/"))
|
||||
app.installTranslator(&translator);
|
||||
|
||||
// Show help message immediately after parsing command-line options (for "-lang") and setting locale,
|
||||
// but before showing splash screen.
|
||||
if (mapArgs.count("-?") || mapArgs.count("--help"))
|
||||
{
|
||||
HelpMessageBox help;
|
||||
help.exec();
|
||||
return 1;
|
||||
}
|
||||
|
||||
QSplashScreen splash(QPixmap(":/images/splash"), 0);
|
||||
if (GetBoolArg("-splash", true) && !GetBoolArg("-min"))
|
||||
{
|
||||
@@ -238,7 +294,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
BitcoinGUI window;
|
||||
guiref = &window;
|
||||
if(AppInit2(argc, argv))
|
||||
if(AppInit2())
|
||||
{
|
||||
{
|
||||
// Put this in a block, so that the Model objects are cleaned up before
|
||||
|
||||
Reference in New Issue
Block a user