diff options
Diffstat (limited to 'src/qt')
-rw-r--r-- | src/qt/bitcoin.cpp | 39 | ||||
-rw-r--r-- | src/qt/splashscreen.cpp | 3 |
2 files changed, 29 insertions, 13 deletions
diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 3b98334696..e4ca9e4387 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -154,10 +154,23 @@ static void initTranslations(QTranslator &qtTranslatorBase, QTranslator &qtTrans #ifndef BITCOIN_QT_TEST int main(int argc, char *argv[]) { + bool fMissingDatadir = false; + bool fSelParFromCLFailed = false; + fHaveGUI = true; // Command-line options take precedence: ParseParameters(argc, argv); + // ... then bitcoin.conf: + if (!boost::filesystem::is_directory(GetDataDir(false))) { + fMissingDatadir = true; + } else { + ReadConfigFile(mapArgs, mapMultiArgs); + } + // Check for -testnet or -regtest parameter (TestNet() calls are only valid after this clause) + if (!SelectParamsFromCommandLine()) { + fSelParFromCLFailed = true; + } #if QT_VERSION < 0x050000 // Internal string conversion is all UTF-8 @@ -175,7 +188,7 @@ int main(int argc, char *argv[]) // as it is used to locate QSettings) QApplication::setOrganizationName("Bitcoin"); QApplication::setOrganizationDomain("bitcoin.org"); - if (GetBoolArg("-testnet", false)) // Separate UI settings for testnet + if (TestNet()) // Separate UI settings for testnet QApplication::setApplicationName("Bitcoin-Qt-testnet"); else QApplication::setApplicationName("Bitcoin-Qt"); @@ -184,6 +197,17 @@ int main(int argc, char *argv[]) QTranslator qtTranslatorBase, qtTranslator, translatorBase, translator; initTranslations(qtTranslatorBase, qtTranslator, translatorBase, translator); + // Now that translations are initialized check for errors and allow a translatable error message + if (fMissingDatadir) { + QMessageBox::critical(0, QObject::tr("Bitcoin"), + QObject::tr("Error: Specified data directory \"%1\" does not exist.").arg(QString::fromStdString(mapArgs["-datadir"]))); + return 1; + } + else if (fSelParFromCLFailed) { + QMessageBox::critical(0, QObject::tr("Bitcoin"), QObject::tr("Error: Invalid combination of -regtest and -testnet.")); + return 1; + } + // User language is set up: pick a data directory Intro::pickDataDirectory(); @@ -196,16 +220,7 @@ int main(int argc, char *argv[]) // Install global event filter that makes sure that long tooltips can be word-wrapped app.installEventFilter(new GUIUtil::ToolTipToRichTextFilter(TOOLTIP_WRAP_THRESHOLD, &app)); - // ... then bitcoin.conf: - if (!boost::filesystem::is_directory(GetDataDir(false))) - { - QMessageBox::critical(0, QObject::tr("Bitcoin"), - QObject::tr("Error: Specified data directory \"%1\" does not exist.").arg(QString::fromStdString(mapArgs["-datadir"]))); - return 1; - } - ReadConfigFile(mapArgs, mapMultiArgs); - - // ... then GUI settings: + // ... now GUI settings: OptionsModel optionsModel; // Subscribe to global signals from core @@ -245,7 +260,7 @@ int main(int argc, char *argv[]) boost::thread_group threadGroup; - BitcoinGUI window(GetBoolArg("-testnet", false), 0); + BitcoinGUI window(TestNet(), 0); guiref = &window; QTimer* pollShutdownTimer = new QTimer(guiref); diff --git a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp index 22cf04486b..7c9bc46c46 100644 --- a/src/qt/splashscreen.cpp +++ b/src/qt/splashscreen.cpp @@ -1,6 +1,7 @@ #include "splashscreen.h" #include "clientversion.h" #include "util.h" +#include "chainparams.h" #include <QApplication> #include <QPainter> @@ -26,7 +27,7 @@ SplashScreen::SplashScreen(const QPixmap &pixmap, Qt::WindowFlags f) : // load the bitmap for writing some text over it QPixmap newPixmap; - if(GetBoolArg("-testnet", false)) { + if(TestNet()) { newPixmap = QPixmap(":/images/splash_testnet"); } else { |