diff options
Diffstat (limited to '')
| -rw-r--r-- | src/common/settings_setting.h | 29 |
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 | ||