35 AbstrSetting(
const AbstrSetting& other);
36 AbstrSetting& operator=(
const AbstrSetting& other);
37 AbstrSetting(AbstrSetting&& other)
noexcept;
38 AbstrSetting& operator=(AbstrSetting&& other)
noexcept;
41 explicit AbstrSetting(SettingKey key);
42 AbstrSetting(SettingKey key,
const char* dbKey);
45 virtual ~AbstrSetting();
47 [[nodiscard]] SettingKey getKey()
const;
48 [[nodiscard]] QString dbKey()
const;
49 [[nodiscard]]
bool isDatabaseSetting()
const;
51 void assignValue(
const QString& value);
53 virtual bool loadValueFromString(
const QString& str) = 0;
54 [[nodiscard]]
virtual QString valueToString()
const = 0;
55 virtual void assignDefaultValue() = 0;
64 Setting(
const Setting&) =
delete;
66 Setting(
const char* databaseKey,
const typename KeyClass::Data& value) :
67 AbstrSetting(KeyClass::key, databaseKey),
69 m_defaultValue {value} {}
71 explicit Setting(
const typename KeyClass::Data& value) :
72 AbstrSetting(KeyClass::key),
74 m_defaultValue {value} {}
76 ~Setting()
override =
default;
78 void assignDefaultValue()
override { m_value = m_defaultValue; }
80 [[nodiscard]] QString valueToString()
const override {
return SettingConverter::toString(m_value); }
82 bool loadValueFromString(
const QString& str)
override {
return SettingConverter::fromString(str, m_value); }
84 const typename KeyClass::Data& value()
const {
return m_value; }
88 bool assignValue(
const typename KeyClass::Data& val)
101 typename KeyClass::Data m_value;
102 typename KeyClass::Data m_defaultValue;