config: Don't merge the maps
Me shooting myself in the foot 3 days in advance.
This commit is contained in:
parent
640e7db60e
commit
ea4afbfc54
2 changed files with 10 additions and 11 deletions
|
@ -19,10 +19,6 @@ namespace FS = Common::FS;
|
||||||
|
|
||||||
Config::Config(const std::string& config_name, ConfigType config_type)
|
Config::Config(const std::string& config_name, ConfigType config_type)
|
||||||
: type(config_type), global{config_type == ConfigType::GlobalConfig} {
|
: type(config_type), global{config_type == ConfigType::GlobalConfig} {
|
||||||
|
|
||||||
settings_map = Settings::values.linkage.by_category;
|
|
||||||
settings_map.merge(UISettings::values.linkage.by_category);
|
|
||||||
|
|
||||||
Initialize(config_name);
|
Initialize(config_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1311,14 +1307,22 @@ const std::string& Config::GetConfigFilePath() const {
|
||||||
return qt_config_loc;
|
return qt_config_loc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static auto FindRelevantList(Settings::Category category) {
|
||||||
|
auto& map = Settings::values.linkage.by_category;
|
||||||
|
if (map.contains(category)) {
|
||||||
|
return Settings::values.linkage.by_category[category];
|
||||||
|
}
|
||||||
|
return UISettings::values.linkage.by_category[category];
|
||||||
|
}
|
||||||
|
|
||||||
void Config::ReadCategory(Settings::Category category) {
|
void Config::ReadCategory(Settings::Category category) {
|
||||||
const auto& settings = settings_map[category];
|
const auto& settings = FindRelevantList(category);
|
||||||
std::for_each(settings.begin(), settings.end(),
|
std::for_each(settings.begin(), settings.end(),
|
||||||
[&](const auto& setting) { ReadSettingGeneric(setting); });
|
[&](const auto& setting) { ReadSettingGeneric(setting); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void Config::WriteCategory(Settings::Category category) {
|
void Config::WriteCategory(Settings::Category category) {
|
||||||
const auto& settings = settings_map[category];
|
const auto& settings = FindRelevantList(category);
|
||||||
std::for_each(settings.begin(), settings.end(),
|
std::for_each(settings.begin(), settings.end(),
|
||||||
[&](const auto& setting) { WriteSettingGeneric(setting); });
|
[&](const auto& setting) { WriteSettingGeneric(setting); });
|
||||||
}
|
}
|
||||||
|
@ -1346,11 +1350,8 @@ void Config::ReadSettingGeneric(Settings::BasicSetting* const setting) {
|
||||||
|
|
||||||
void Config::WriteSettingGeneric(Settings::BasicSetting* const setting) const {
|
void Config::WriteSettingGeneric(Settings::BasicSetting* const setting) const {
|
||||||
if (!setting->Save()) {
|
if (!setting->Save()) {
|
||||||
LOG_DEBUG(Frontend, "Skipping \"{}\" marked for not saving", setting->GetLabel());
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
LOG_DEBUG(Frontend, "Saving {} setting \"{}\"...", global ? "global" : "custom",
|
|
||||||
setting->GetLabel());
|
|
||||||
const QVariant value = QVariant::fromValue(QString::fromStdString(setting->ToString()));
|
const QVariant value = QVariant::fromValue(QString::fromStdString(setting->ToString()));
|
||||||
const QVariant default_value =
|
const QVariant default_value =
|
||||||
QVariant::fromValue(QString::fromStdString(setting->DefaultToString()));
|
QVariant::fromValue(QString::fromStdString(setting->DefaultToString()));
|
||||||
|
|
|
@ -204,8 +204,6 @@ private:
|
||||||
void ReadSettingGeneric(Settings::BasicSetting* const setting);
|
void ReadSettingGeneric(Settings::BasicSetting* const setting);
|
||||||
void WriteSettingGeneric(Settings::BasicSetting* const setting) const;
|
void WriteSettingGeneric(Settings::BasicSetting* const setting) const;
|
||||||
|
|
||||||
std::map<Settings::Category, std::forward_list<Settings::BasicSetting*>> settings_map;
|
|
||||||
|
|
||||||
const ConfigType type;
|
const ConfigType type;
|
||||||
std::unique_ptr<QSettings> qt_config;
|
std::unique_ptr<QSettings> qt_config;
|
||||||
std::string qt_config_loc;
|
std::string qt_config_loc;
|
||||||
|
|
Loading…
Reference in a new issue