summaryrefslogtreecommitdiff
path: root/src/common/settings_setting.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/common/settings_setting.h29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/common/settings_setting.h b/src/common/settings_setting.h
index 9805a5b5d..dd91250a1 100644
--- a/src/common/settings_setting.h
+++ b/src/common/settings_setting.h
@@ -37,9 +37,11 @@ public:
37 explicit Setting(Linkage& linkage, const Type& default_val, const std::string& name, 37 explicit Setting(Linkage& linkage, const Type& default_val, const std::string& name,
38 enum Category category_, 38 enum Category category_,
39 enum Specialization specialization = Specialization::Default, 39 enum Specialization specialization = Specialization::Default,
40 bool save_ = true, bool runtime_modifiable_ = false) 40 bool save_ = true, bool runtime_modifiable_ = false,
41 BasicSetting* other_setting = nullptr)
41 requires(!ranged) 42 requires(!ranged)
42 : BasicSetting(linkage, name, category_, save_, runtime_modifiable_, specialization), 43 : BasicSetting(linkage, name, category_, save_, runtime_modifiable_, specialization,
44 other_setting),
43 value{default_val}, default_value{default_val} {} 45 value{default_val}, default_value{default_val} {}
44 virtual ~Setting() = default; 46 virtual ~Setting() = default;
45 47
@@ -56,9 +58,11 @@ public:
56 explicit Setting(Linkage& linkage, const Type& default_val, const Type& min_val, 58 explicit Setting(Linkage& linkage, const Type& default_val, const Type& min_val,
57 const Type& max_val, const std::string& name, enum Category category_, 59 const Type& max_val, const std::string& name, enum Category category_,
58 enum Specialization specialization = Specialization::Default, 60 enum Specialization specialization = Specialization::Default,
59 bool save_ = true, bool runtime_modifiable_ = false) 61 bool save_ = true, bool runtime_modifiable_ = false,
62 BasicSetting* other_setting = nullptr)
60 requires(ranged) 63 requires(ranged)
61 : BasicSetting(linkage, name, category_, save_, runtime_modifiable_, specialization), 64 : BasicSetting(linkage, name, category_, save_, runtime_modifiable_, specialization,
65 other_setting),
62 value{default_val}, default_value{default_val}, maximum{max_val}, minimum{min_val} {} 66 value{default_val}, default_value{default_val}, maximum{max_val}, minimum{min_val} {}
63 67
64 /** 68 /**
@@ -235,10 +239,12 @@ public:
235 explicit SwitchableSetting(Linkage& linkage, const Type& default_val, const std::string& name, 239 explicit SwitchableSetting(Linkage& linkage, const Type& default_val, const std::string& name,
236 Category category_, 240 Category category_,
237 enum Specialization specialization = Specialization::Default, 241 enum Specialization specialization = Specialization::Default,
238 bool save_ = true, bool runtime_modifiable_ = false) 242 bool save_ = true, bool runtime_modifiable_ = false,
243 BasicSetting* other_setting = nullptr)
239 requires(!ranged) 244 requires(!ranged)
240 : Setting<Type, false>{linkage, default_val, name, category_, specialization, 245 : Setting<Type, false>{
241 save_, runtime_modifiable_} { 246 linkage, default_val, name, category_, specialization,
247 save_, runtime_modifiable_, other_setting} {
242 linkage.restore_functions.emplace_back([this]() { this->SetGlobal(true); }); 248 linkage.restore_functions.emplace_back([this]() { this->SetGlobal(true); });
243 } 249 }
244 virtual ~SwitchableSetting() = default; 250 virtual ~SwitchableSetting() = default;
@@ -256,11 +262,12 @@ public:
256 explicit SwitchableSetting(Linkage& linkage, const Type& default_val, const Type& min_val, 262 explicit SwitchableSetting(Linkage& linkage, const Type& default_val, const Type& min_val,
257 const Type& max_val, const std::string& name, Category category_, 263 const Type& max_val, const std::string& name, Category category_,
258 enum Specialization specialization = Specialization::Default, 264 enum Specialization specialization = Specialization::Default,
259 bool save_ = true, bool runtime_modifiable_ = false) 265 bool save_ = true, bool runtime_modifiable_ = false,
266 BasicSetting* other_setting = nullptr)
260 requires(ranged) 267 requires(ranged)
261 : Setting<Type, true>{linkage, default_val, min_val, 268 : Setting<Type, true>{
262 max_val, name, category_, 269 linkage, default_val, min_val, max_val, name, category_, specialization,
263 specialization, save_, runtime_modifiable_} { 270 save_, runtime_modifiable_, other_setting} {
264 linkage.restore_functions.emplace_back([this]() { this->SetGlobal(true); }); 271 linkage.restore_functions.emplace_back([this]() { this->SetGlobal(true); });
265 } 272 }
266 273