settings: Define paired settings

settings_common: Remove unused optional
This commit is contained in:
lat9nq 2023-06-21 04:32:13 -04:00
parent d1de1c3bed
commit 7f708e8d77
4 changed files with 49 additions and 21 deletions

View file

@ -75,7 +75,8 @@ public:
class BasicSetting {
protected:
explicit BasicSetting(Linkage& linkage, const std::string& name, enum Category category_,
bool save_, bool runtime_modifiable_, Specialization spec);
bool save_, bool runtime_modifiable_, Specialization spec,
BasicSetting* other_setting);
public:
virtual ~BasicSetting();
@ -196,6 +197,11 @@ public:
*/
[[nodiscard]] enum Specialization Specialization() const;
/**
* @returns Another BasicSetting if one is paired, or nullptr otherwise.
*/
[[nodiscard]] BasicSetting* PairedSetting() const;
/**
* Returns the label this setting was created with.
*
@ -236,7 +242,8 @@ private:
const bool
runtime_modifiable; ///< Suggests if the setting can be modified while a guest is running
const enum Specialization
specialization; ///< Extra data to identify representation of a setting
specialization; ///< Extra data to identify representation of a setting
BasicSetting* const other_setting; ///< A paired setting
};
} // namespace Settings