22 #ifndef SAYONARA_SETTING_H_
23 #define SAYONARA_SETTING_H_
25 #include "Utils/Settings/SettingConverter.h"
26 #include "Utils/Settings/SettingKey.h"
27 #include "Utils/Pimpl.h"
54 SettingKey getKey()
const;
55 QString dbKey()
const;
56 bool isDatabaseSetting()
const;
58 void assignValue(
const QString& value);
61 virtual bool loadValueFromString(
const QString& str)=0;
62 virtual QString valueToString()
const=0;
63 virtual void assignDefaultValue()=0;
67 template<
typename KeyClass>
79 typename KeyClass::Data mValue;
80 typename KeyClass::Data mDefaultValue;
85 Setting(
const char* db_key,
const typename KeyClass::Data& def) :
92 Setting(
const typename KeyClass::Data& def) :
102 void assignDefaultValue()
override
104 mValue = mDefaultValue;
107 QString valueToString()
const override
109 return SettingConverter::toString(mValue);
112 bool loadValueFromString(
const QString& str)
override
114 return SettingConverter::fromString(str, mValue);
118 const typename KeyClass::Data& value()
const
124 const typename KeyClass::Data& default_value()
const
126 return mDefaultValue;
130 bool assignValue(
const typename KeyClass::Data& val)
141 #endif // SAYONARA_SETTING_H_