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)
- {
- (void)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;
if (fFileBacked)
{
CWalletDB* pwalletdb = pwalletdbIn ? pwalletdbIn : new CWalletDB(strWalletFile);
- if (nWalletVersion >= 40000)
- {
- // Versions prior to 0.4.0 did not support the "minversion" record.
- // Use a CCorruptAddress to make them crash instead.
- CCorruptAddress corruptAddress;
- pwalletdb->WriteSetting("addrIncoming", corruptAddress);
- }
if (nWalletVersion > 40000)
pwalletdb->WriteMinVersion(nWalletVersion);
if (!pwalletdbIn)
return Erase(std::make_pair(std::string("pool"), nPool));
}
- // Settings are no longer stored in wallet.dat; these are
- // used only for backwards compatibility:
- template<typename T>
- bool ReadSetting(const std::string& strKey, T& value)
- {
- return Read(std::make_pair(std::string("setting"), strKey), value);
- }
- template<typename T>
- bool WriteSetting(const std::string& strKey, const T& value)
- {
- nWalletDBUpdated++;
- return Write(std::make_pair(std::string("setting"), strKey), value);
- }
- bool EraseSetting(const std::string& strKey)
- {
- nWalletDBUpdated++;
- return Erase(std::make_pair(std::string("setting"), strKey));
- }
-
bool WriteMinVersion(int nVersion)
{
return Write(std::string("minversion"), nVersion);