aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Kaufmann <phil.kaufmann@t-online.de>2013-06-23 18:04:44 +0200
committerGavin Andresen <gavinandresen@gmail.com>2013-08-22 11:05:45 +1000
commita2189fbaf65dd56c808dc7429b800e70d31178c3 (patch)
tree3a9e6d8fcb69d25f2e9f6f1091252367137f056c
parent3624356e82015c980fa7b7e60dfbe128665b1952 (diff)
downloadbitcoin-a2189fbaf65dd56c808dc7429b800e70d31178c3.tar.xz
update SelectParamsFromCommandLine() handling/order
- move SelectParamsFromCommandLine() from init.cpp to bitcoin.cpp to allow to use TestNet() for Bitcoin-Qt instead of GetBoolArg("-testnet", false) - change order in bitcoind.cpp to match bitcoin.cpp functionality - hamonize error message strings for missing datadir and failing SelectParamsFromCommandLine() in bitcoin.cpp and bitcoind.cpp - use TestNet() call in splashscreen.cpp
-rw-r--r--src/bitcoind.cpp13
-rw-r--r--src/init.cpp3
-rw-r--r--src/qt/bitcoin.cpp39
-rw-r--r--src/qt/splashscreen.cpp3
4 files changed, 36 insertions, 22 deletions
diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp
index be18f9ae83..02e4e7d6e7 100644
--- a/src/bitcoind.cpp
+++ b/src/bitcoind.cpp
@@ -39,10 +39,15 @@ bool AppInit(int argc, char* argv[])
ParseParameters(argc, argv);
if (!boost::filesystem::is_directory(GetDataDir(false)))
{
- fprintf(stderr, "Error: Specified directory does not exist\n");
- Shutdown();
+ fprintf(stderr, "Error: Specified data directory \"%s\" does not exist.\n", mapArgs["-datadir"].c_str());
+ return false;
}
ReadConfigFile(mapArgs, mapMultiArgs);
+ // Check for -testnet or -regtest parameter (TestNet() calls are only valid after this clause)
+ if (!SelectParamsFromCommandLine()) {
+ fprintf(stderr, "Error: Invalid combination of -regtest and -testnet.\n");
+ return false;
+ }
if (mapArgs.count("-?") || mapArgs.count("--help"))
{
@@ -67,10 +72,6 @@ bool AppInit(int argc, char* argv[])
if (fCommandLine)
{
- if (!SelectParamsFromCommandLine()) {
- fprintf(stderr, "Error: invalid combination of -regtest and -testnet.\n");
- return false;
- }
int ret = CommandLineRPC(argc, argv);
exit(ret);
}
diff --git a/src/init.cpp b/src/init.cpp
index 7182c14146..64a5de239f 100644
--- a/src/init.cpp
+++ b/src/init.cpp
@@ -373,9 +373,6 @@ bool AppInit2(boost::thread_group& threadGroup)
// ********************************************************* Step 2: parameter interactions
Checkpoints::fEnabled = GetBoolArg("-checkpoints", true);
- if (!SelectParamsFromCommandLine()) {
- return InitError("Invalid combination of -testnet and -regtest.");
- }
if (mapArgs.count("-bind")) {
// when specifying an explicit binding address, you want to listen on it
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 {