Introduce versioning on main configuration file

This commit is contained in:
Chocobo1 2021-12-05 12:43:42 +08:00
parent cbc2de6b85
commit b8a7ecfe69
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
2 changed files with 22 additions and 8 deletions

View File

@ -36,12 +36,15 @@
#include "base/preferences.h" #include "base/preferences.h"
#include "base/profile.h" #include "base/profile.h"
#include "base/settingsstorage.h" #include "base/settingsstorage.h"
#include "base/settingvalue.h"
#include "base/utils/fs.h" #include "base/utils/fs.h"
#include "base/utils/io.h" #include "base/utils/io.h"
#include "base/utils/string.h" #include "base/utils/string.h"
namespace namespace
{ {
const int MIGRATION_VERSION = 1;
void exportWebUIHttpsFiles() void exportWebUIHttpsFiles()
{ {
const auto migrate = [](const QString &oldKey, const QString &newKey, const QString &savePath) const auto migrate = [](const QString &oldKey, const QString &newKey, const QString &savePath)
@ -229,12 +232,23 @@ namespace
bool upgrade(const bool /*ask*/) bool upgrade(const bool /*ask*/)
{ {
exportWebUIHttpsFiles(); CachedSettingValue<int> version {"Meta/MigrationVersion", 0};
upgradeTorrentContentLayout();
upgradeListenPortSettings(); if (version != MIGRATION_VERSION)
upgradeSchedulerDaysSettings(); {
upgradeDNSServiceSettings(); if (version < 1)
upgradeTrayIconStyleSettings(); {
exportWebUIHttpsFiles();
upgradeTorrentContentLayout();
upgradeListenPortSettings();
upgradeSchedulerDaysSettings();
upgradeDNSServiceSettings();
upgradeTrayIconStyleSettings();
}
version = MIGRATION_VERSION;
}
return true; return true;
} }

View File

@ -146,9 +146,9 @@ namespace Utils
{ {
return Version(s); return Version(s);
} }
catch (const RuntimeError &er) catch (const RuntimeError &error)
{ {
qDebug() << "Error parsing version:" << er.message(); qDebug() << "Error parsing version:" << error.message();
return defaultVersion; return defaultVersion;
} }
} }