diff options
| author | Wladimir J. van der Laan <[email protected]> | 2016-07-28 11:10:14 +0200 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2016-07-28 11:28:42 +0200 |
| commit | 30a87c0747a1c30cb7f6add38ab5cdcfa81dff0d (patch) | |
| tree | a77b91c6fb5ec9555db2f96ee1cdc0ecfc703262 | |
| parent | Merge #8348: Trivial: Segwit: Don't call IsWitnessEnabled from ContextualChec... (diff) | |
| parent | [Qt] Add dbcache migration path (diff) | |
| download | discoin-30a87c0747a1c30cb7f6add38ab5cdcfa81dff0d.tar.xz discoin-30a87c0747a1c30cb7f6add38ab5cdcfa81dff0d.zip | |
Merge #8407: [Qt] Add dbcache migration path
893f379 [Qt] Add dbcache migration path (Jonas Schnelli)
| -rw-r--r-- | src/qt/optionsmodel.cpp | 21 | ||||
| -rw-r--r-- | src/qt/optionsmodel.h | 4 |
2 files changed, 24 insertions, 1 deletions
diff --git a/src/qt/optionsmodel.cpp b/src/qt/optionsmodel.cpp index cc2cbc0e6..684db71a8 100644 --- a/src/qt/optionsmodel.cpp +++ b/src/qt/optionsmodel.cpp @@ -43,6 +43,8 @@ void OptionsModel::Init(bool resetSettings) if (resetSettings) Reset(); + checkAndMigrate(); + QSettings settings; // Ensure restart flag is unset on client startup @@ -429,3 +431,22 @@ bool OptionsModel::isRestartRequired() QSettings settings; return settings.value("fRestartRequired", false).toBool(); } + +void OptionsModel::checkAndMigrate() +{ + // Migration of default values + // Check if the QSettings container was already loaded with this client version + QSettings settings; + static const char strSettingsVersionKey[] = "nSettingsVersion"; + int settingsVersion = settings.contains(strSettingsVersionKey) ? settings.value(strSettingsVersionKey).toInt() : 0; + if (settingsVersion < CLIENT_VERSION) + { + // -dbcache was bumped from 100 to 300 in 0.13 + // see https://github.com/bitcoin/bitcoin/pull/8273 + // force people to upgrade to the new value if they are using 100MB + if (settingsVersion < 130000 && settings.contains("nDatabaseCache") && settings.value("nDatabaseCache").toLongLong() == 100) + settings.setValue("nDatabaseCache", (qint64)nDefaultDbCache); + + settings.setValue(strSettingsVersionKey, CLIENT_VERSION); + } +}
\ No newline at end of file diff --git a/src/qt/optionsmodel.h b/src/qt/optionsmodel.h index 3b491ceac..b23b5f260 100644 --- a/src/qt/optionsmodel.h +++ b/src/qt/optionsmodel.h @@ -84,9 +84,11 @@ private: /* settings that were overriden by command-line */ QString strOverriddenByCommandLine; - /// Add option to list of GUI options overridden through command line/config file + // Add option to list of GUI options overridden through command line/config file void addOverriddenOption(const std::string &option); + // Check settings version and upgrade default values if required + void checkAndMigrate(); Q_SIGNALS: void displayUnitChanged(int unit); void coinControlFeaturesChanged(bool); |