summaryrefslogtreecommitdiffstats
path: root/src/frontend_common/config.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend_common/config.h')
-rw-r--r--src/frontend_common/config.h23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/frontend_common/config.h b/src/frontend_common/config.h
index 0c4d505b8..4ecb97044 100644
--- a/src/frontend_common/config.h
+++ b/src/frontend_common/config.h
@@ -51,7 +51,6 @@ protected:
[[nodiscard]] bool IsCustomConfig() const;
void Reload();
- void Save();
/**
* Derived config classes must implement this so they can reload all platform-specific
@@ -77,6 +76,9 @@ protected:
void ReadCoreValues();
void ReadDataStorageValues();
void ReadDebuggingValues();
+#ifdef __unix__
+ void ReadLinuxValues();
+#endif
void ReadServiceValues();
void ReadDisabledAddOnValues();
void ReadMiscellaneousValues();
@@ -108,6 +110,9 @@ protected:
void SaveCoreValues();
void SaveDataStorageValues();
void SaveDebuggingValues();
+#ifdef __unix__
+ void SaveLinuxValues();
+#endif
void SaveNetworkValues();
void SaveDisabledAddOnValues();
void SaveMiscellaneousValues();
@@ -157,17 +162,23 @@ protected:
void WriteBooleanSetting(const std::string& key, const bool& value,
const std::optional<bool>& default_value = std::nullopt,
const std::optional<bool>& use_global = std::nullopt);
- template <typename T>
- std::enable_if_t<std::is_integral_v<T>> WriteIntegerSetting(
- const std::string& key, const T& value,
- const std::optional<T>& default_value = std::nullopt,
- const std::optional<bool>& use_global = std::nullopt);
void WriteDoubleSetting(const std::string& key, const double& value,
const std::optional<double>& default_value = std::nullopt,
const std::optional<bool>& use_global = std::nullopt);
void WriteStringSetting(const std::string& key, const std::string& value,
const std::optional<std::string>& default_value = std::nullopt,
const std::optional<bool>& use_global = std::nullopt);
+ template <typename T>
+ std::enable_if_t<std::is_integral_v<T>> WriteIntegerSetting(
+ const std::string& key, const T& value,
+ const std::optional<T>& default_value = std::nullopt,
+ const std::optional<bool>& use_global = std::nullopt) {
+ std::optional<std::string> string_default = std::nullopt;
+ if (default_value.has_value()) {
+ string_default = std::make_optional(ToString(default_value.value()));
+ }
+ WritePreparedSetting(key, AdjustOutputString(ToString(value)), string_default, use_global);
+ }
void ReadCategory(Settings::Category category);
void WriteCategory(Settings::Category category);