Changeset View
Changeset View
Standalone View
Standalone View
src/qt/optionsmodel.cpp
Show All 18 Lines | |||||
#include <validation.h> // For DEFAULT_SCRIPTCHECK_THREADS | #include <validation.h> // For DEFAULT_SCRIPTCHECK_THREADS | ||||
#include <QNetworkProxy> | #include <QNetworkProxy> | ||||
#include <QSettings> | #include <QSettings> | ||||
#include <QStringList> | #include <QStringList> | ||||
const char *DEFAULT_GUI_PROXY_HOST = "127.0.0.1"; | const char *DEFAULT_GUI_PROXY_HOST = "127.0.0.1"; | ||||
static const QString GetDefaultProxyAddress(); | |||||
OptionsModel::OptionsModel(interfaces::Node &node, QObject *parent, | OptionsModel::OptionsModel(interfaces::Node &node, QObject *parent, | ||||
bool resetSettings) | bool resetSettings) | ||||
: QAbstractListModel(parent), m_node(node) { | : QAbstractListModel(parent), m_node(node) { | ||||
Init(resetSettings); | Init(resetSettings); | ||||
} | } | ||||
void OptionsModel::addOverriddenOption(const std::string &option) { | void OptionsModel::addOverriddenOption(const std::string &option) { | ||||
strOverriddenByCommandLine += | strOverriddenByCommandLine += | ||||
▲ Show 20 Lines • Show All 109 Lines • ▼ Show 20 Lines | #endif | ||||
if (!m_node.softSetBoolArg("-listen", settings.value("fListen").toBool())) { | if (!m_node.softSetBoolArg("-listen", settings.value("fListen").toBool())) { | ||||
addOverriddenOption("-listen"); | addOverriddenOption("-listen"); | ||||
} | } | ||||
if (!settings.contains("fUseProxy")) { | if (!settings.contains("fUseProxy")) { | ||||
settings.setValue("fUseProxy", false); | settings.setValue("fUseProxy", false); | ||||
} | } | ||||
if (!settings.contains("addrProxy")) { | if (!settings.contains("addrProxy")) { | ||||
settings.setValue("addrProxy", | settings.setValue("addrProxy", GetDefaultProxyAddress()); | ||||
QString("%1:%2").arg(DEFAULT_GUI_PROXY_HOST, | |||||
DEFAULT_GUI_PROXY_PORT)); | |||||
} | } | ||||
// Only try to set -proxy, if user has enabled fUseProxy | // Only try to set -proxy, if user has enabled fUseProxy | ||||
if (settings.value("fUseProxy").toBool() && | if (settings.value("fUseProxy").toBool() && | ||||
!m_node.softSetArg( | !m_node.softSetArg( | ||||
"-proxy", settings.value("addrProxy").toString().toStdString())) { | "-proxy", settings.value("addrProxy").toString().toStdString())) { | ||||
addOverriddenOption("-proxy"); | addOverriddenOption("-proxy"); | ||||
} else if (!settings.value("fUseProxy").toBool() && | } else if (!settings.value("fUseProxy").toBool() && | ||||
!gArgs.GetArg("-proxy", "").empty()) { | !gArgs.GetArg("-proxy", "").empty()) { | ||||
addOverriddenOption("-proxy"); | addOverriddenOption("-proxy"); | ||||
} | } | ||||
if (!settings.contains("fUseSeparateProxyTor")) { | if (!settings.contains("fUseSeparateProxyTor")) { | ||||
settings.setValue("fUseSeparateProxyTor", false); | settings.setValue("fUseSeparateProxyTor", false); | ||||
} | } | ||||
if (!settings.contains("addrSeparateProxyTor")) { | if (!settings.contains("addrSeparateProxyTor")) { | ||||
settings.setValue("addrSeparateProxyTor", | settings.setValue("addrSeparateProxyTor", GetDefaultProxyAddress()); | ||||
QString("%1:%2").arg(DEFAULT_GUI_PROXY_HOST, | |||||
DEFAULT_GUI_PROXY_PORT)); | |||||
} | } | ||||
// Only try to set -onion, if user has enabled fUseSeparateProxyTor | // Only try to set -onion, if user has enabled fUseSeparateProxyTor | ||||
if (settings.value("fUseSeparateProxyTor").toBool() && | if (settings.value("fUseSeparateProxyTor").toBool() && | ||||
!m_node.softSetArg( | !m_node.softSetArg( | ||||
"-onion", | "-onion", | ||||
settings.value("addrSeparateProxyTor").toString().toStdString())) { | settings.value("addrSeparateProxyTor").toString().toStdString())) { | ||||
addOverriddenOption("-onion"); | addOverriddenOption("-onion"); | ||||
} else if (!settings.value("fUseSeparateProxyTor").toBool() && | } else if (!settings.value("fUseSeparateProxyTor").toBool() && | ||||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | static ProxySetting GetProxySetting(QSettings &settings, const QString &name) { | ||||
} | } | ||||
} | } | ||||
static void SetProxySetting(QSettings &settings, const QString &name, | static void SetProxySetting(QSettings &settings, const QString &name, | ||||
const ProxySetting &ip_port) { | const ProxySetting &ip_port) { | ||||
settings.setValue(name, ip_port.ip + ":" + ip_port.port); | settings.setValue(name, ip_port.ip + ":" + ip_port.port); | ||||
} | } | ||||
static const QString GetDefaultProxyAddress() { | |||||
return QString("%1:%2") | |||||
.arg(DEFAULT_GUI_PROXY_HOST) | |||||
.arg(DEFAULT_GUI_PROXY_PORT); | |||||
} | |||||
// read QSettings values and return them | // read QSettings values and return them | ||||
QVariant OptionsModel::data(const QModelIndex &index, int role) const { | QVariant OptionsModel::data(const QModelIndex &index, int role) const { | ||||
if (role == Qt::EditRole) { | if (role == Qt::EditRole) { | ||||
QSettings settings; | QSettings settings; | ||||
switch (index.row()) { | switch (index.row()) { | ||||
case StartAtStartup: | case StartAtStartup: | ||||
return GUIUtil::GetStartOnSystemStartup(); | return GUIUtil::GetStartOnSystemStartup(); | ||||
case HideTrayIcon: | case HideTrayIcon: | ||||
▲ Show 20 Lines • Show All 237 Lines • ▼ Show 20 Lines | if (settingsVersion < CLIENT_VERSION) { | ||||
// see https://github.com/bitcoin/bitcoin/pull/8273 | // see https://github.com/bitcoin/bitcoin/pull/8273 | ||||
// force people to upgrade to the new value if they are using 100MB | // force people to upgrade to the new value if they are using 100MB | ||||
if (settingsVersion < 130000 && settings.contains("nDatabaseCache") && | if (settingsVersion < 130000 && settings.contains("nDatabaseCache") && | ||||
settings.value("nDatabaseCache").toLongLong() == 100) | settings.value("nDatabaseCache").toLongLong() == 100) | ||||
settings.setValue("nDatabaseCache", (qint64)nDefaultDbCache); | settings.setValue("nDatabaseCache", (qint64)nDefaultDbCache); | ||||
settings.setValue(strSettingsVersionKey, CLIENT_VERSION); | settings.setValue(strSettingsVersionKey, CLIENT_VERSION); | ||||
} | } | ||||
// Overwrite the 'addrProxy' setting in case it has been set to an illegal | |||||
// default value (see issue #12623; PR #12650). | |||||
if (settings.contains("addrProxy") && | |||||
settings.value("addrProxy").toString().endsWith("%2")) { | |||||
settings.setValue("addrProxy", GetDefaultProxyAddress()); | |||||
} | |||||
// Overwrite the 'addrSeparateProxyTor' setting in case it has been set to | |||||
// an illegal default value (see issue #12623; PR #12650). | |||||
if (settings.contains("addrSeparateProxyTor") && | |||||
settings.value("addrSeparateProxyTor").toString().endsWith("%2")) { | |||||
settings.setValue("addrSeparateProxyTor", GetDefaultProxyAddress()); | |||||
} | |||||
} | } |