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;
67template<
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)
The AbstrSetting class Every setting needs a key and a value The SettingKey is only used inside the s...
Definition: Setting.h:38
The Setting class T is the pure value type e.g. QString.
Definition: Setting.h:74
The Settings class.
Definition: Settings.h:44