// These are shared with core Bitcoin; we want
// command-line options to override the GUI settings:
- if (settings.contains("fUseUPnP"))
- SoftSetBoolArg("-upnp", settings.value("fUseUPnP").toBool());
if ( !(settings.value("fTorOnly").toBool() && settings.contains("addrTor")) ) {
if (settings.contains("addrProxy") && settings.value("fUseProxy").toBool())
SoftSetArg("-proxy", settings.value("addrProxy").toString().toStdString());
SoftSetArg("-tor", settings.value("addrTor").toString().toStdString());
if (settings.value("fTorOnly").toBool())
SoftSetArg("-onlynet", "tor");
+
+ if (settings.value("TorName").toString().length() == 22) {
+ std::string strTorName = settings.value("TorName").toString().toStdString();
+
+ CService addrTorName(strTorName, GetListenPort());
+ if (addrTorName.IsValid())
+ SoftSetArg("-torname", strTorName);
+ }
}
if (settings.contains("detachDB"))
SoftSetArg("-lang", language.toStdString());
}
-bool OptionsModel::Upgrade()
-{
- QSettings settings;
-
- if (settings.contains("bImportFinished"))
- return false; // Already upgraded
-
- settings.setValue("bImportFinished", true);
-
- // Move settings from old wallet.dat (if any):
- CWalletDB walletdb(strWalletFileName);
-
- QList<QString> intOptions;
- intOptions << "nDisplayUnit" << "nTransactionFee";
- foreach(QString key, intOptions)
- {
- int value = 0;
- if (walletdb.ReadSetting(key.toStdString(), value))
- {
- settings.setValue(key, value);
- walletdb.EraseSetting(key.toStdString());
- }
- }
- QList<QString> boolOptions;
- boolOptions << "bDisplayAddresses" << "fMinimizeToTray" << "fMinimizeOnClose" << "fUseProxy" << "fUseTor" << "fTorOnly" << "fUseUPnP";
- foreach(QString key, boolOptions)
- {
- bool value = false;
- if (walletdb.ReadSetting(key.toStdString(), value))
- {
- settings.setValue(key, value);
- walletdb.EraseSetting(key.toStdString());
- }
- }
- try
- {
- CAddress addrProxyAddress, addrTorAddress;
- if (walletdb.ReadSetting("addrProxy", addrProxyAddress))
- {
- settings.setValue("addrProxy", addrProxyAddress.ToStringIPPort().c_str());
- walletdb.EraseSetting("addrProxy");
- }
-
- if (walletdb.ReadSetting("addrTor", addrTorAddress))
- {
- settings.setValue("addrTor", addrTorAddress.ToStringIPPort().c_str());
- walletdb.EraseSetting("addrTor");
- }
- }
- catch (std::ios_base::failure &e)
- {
- // 0.6.0rc1 saved this as a CService, which causes failure when parsing as a CAddress
- CService addrProxy, addrTor;
- if (walletdb.ReadSetting("addrProxy", addrProxy))
- {
- settings.setValue("addrProxy", addrProxy.ToStringIPPort().c_str());
- walletdb.EraseSetting("addrProxy");
- }
-
- if (walletdb.ReadSetting("addrTor", addrTor))
- {
- settings.setValue("addrTor", addrTor.ToStringIPPort().c_str());
- walletdb.EraseSetting("addrTor");
- }
- }
-
- ApplyProxySettings();
- ApplyTorSettings();
- Init();
-
- return true;
-}
-
-
int OptionsModel::rowCount(const QModelIndex & parent) const
{
return OptionIDRowCount;
return QVariant(GUIUtil::GetStartOnSystemStartup());
case MinimizeToTray:
return QVariant(fMinimizeToTray);
- case MapPortUPnP:
- return settings.value("fUseUPnP", GetBoolArg("-upnp", true));
case MinimizeOnClose:
return QVariant(fMinimizeOnClose);
case ProxyUse:
if (GetProxy(NET_IPV4, proxy))
return QVariant(proxy.first.GetPort());
else
- return QVariant(9050);
+ return QVariant(nSocksDefault);
}
case ProxySocksVersion:
return settings.value("nSocksVersion", 5);
if (GetProxy(NET_TOR, proxy))
return QVariant(proxy.first.GetPort());
else
- return QVariant(9050);
+ return QVariant(nSocksDefault);
}
case TorOnly:
return settings.value("fTorOnly", false);
+ case TorName:
+ return settings.value("TorName", "");
case Fee:
return QVariant(static_cast<qlonglong>(nTransactionFee));
case DisplayUnit:
fMinimizeToTray = value.toBool();
settings.setValue("fMinimizeToTray", fMinimizeToTray);
break;
- case MapPortUPnP:
- fUseUPnP = value.toBool();
- settings.setValue("fUseUPnP", fUseUPnP);
- MapPort();
- break;
case MinimizeOnClose:
fMinimizeOnClose = value.toBool();
settings.setValue("fMinimizeOnClose", fMinimizeOnClose);
break;
case ProxyIP: {
proxyType proxy;
- proxy.first = CService("127.0.0.1", 9050);
+ proxy.first = CService("127.0.0.1", nSocksDefault);
GetProxy(NET_IPV4, proxy);
CNetAddr addr(value.toString().toStdString());
break;
case ProxyPort: {
proxyType proxy;
- proxy.first = CService("127.0.0.1", 9050);
+ proxy.first = CService("127.0.0.1", nSocksDefault);
GetProxy(NET_IPV4, proxy);
proxy.first.SetPort(value.toInt());
break;
case TorIP: {
proxyType proxy;
- proxy.first = CService("127.0.0.1", 9050);
- GetProxy(NET_IPV4, proxy);
+ proxy.first = CService("127.0.0.1", nSocksDefault);
+ GetProxy(NET_TOR, proxy);
CNetAddr addr(value.toString().toStdString());
proxy.first.SetIP(addr);
break;
case TorPort: {
proxyType proxy;
- proxy.first = CService("127.0.0.1", 9050);
- GetProxy(NET_IPV4, proxy);
+ proxy.first = CService("127.0.0.1", nSocksDefault);
+ GetProxy(NET_TOR, proxy);
- proxy.first.SetPort(value.toInt());
+ proxy.first.SetPort((uint16_t)value.toUInt());
settings.setValue("addrTor", proxy.first.ToStringIPPort().c_str());
successful = ApplyTorSettings();
}
settings.setValue("fTorOnly", value.toBool());
ApplyTorSettings();
}
+ case TorName: {
+ settings.setValue("TorName", value.toString());
+ }
break;
case Fee:
nTransactionFee = value.toLongLong();