11 #include <RADCore/RADCore.h>
47 bool load(std::string* error =
nullptr);
49 bool save(std::string* error =
nullptr)
const;
62 bool boolValue(
const std::string& key,
bool defaultValue =
false)
const;
64 int64_t
intValue(
const std::string& key, int64_t defaultValue = 0)
const;
66 double doubleValue(
const std::string& key,
double defaultValue = 0.0)
const;
68 std::string
stringValue(
const std::string& key,
const std::string& defaultValue = {})
const;
82 bool loadJson(std::string* error);
83 bool saveJson(std::string* error)
const;
84 bool loadIni(std::string* error);
85 bool saveIni(std::string* error)
const;
87 std::string fileName_;
89 std::map<std::string, RADCore::RADJsonValue> values_;
JSON value supporting null, bool, number, string, array, and object.
Definition: RADCore.h:509
Typed application settings store.
Definition: RADSettings.h:35
Settings(AppIdentity identity, Format format=Format::Json)
Creates settings under the platform config path from identity.
bool contains(const std::string &key) const
Returns true when key exists.
const std::string & fileName() const
Returns backing file path.
void setBool(const std::string &key, bool value)
Sets a bool.
bool boolValue(const std::string &key, bool defaultValue=false) const
Returns a bool.
void setString(const std::string &key, std::string value)
Sets a string.
int64_t intValue(const std::string &key, int64_t defaultValue=0) const
Returns an integer.
Format format() const
Returns file format.
void clear()
Clears all keys.
void setDouble(const std::string &key, double value)
Sets a double.
RADCore::RADJsonValue value(const std::string &key, RADCore::RADJsonValue defaultValue={}) const
Returns a JSON value.
void remove(const std::string &key)
Removes a key.
bool save(std::string *error=nullptr) const
Saves settings, creating parent directories when needed.
double doubleValue(const std::string &key, double defaultValue=0.0) const
Returns a double.
void setValue(const std::string &key, RADCore::RADJsonValue value)
Sets a JSON value.
Settings(std::string fileName, Format format=Format::Json)
Creates settings at fileName using format.
std::string stringValue(const std::string &key, const std::string &defaultValue={}) const
Returns a string.
bool load(std::string *error=nullptr)
Loads settings; missing files are treated as empty settings.
void setInt(const std::string &key, int64_t value)
Sets an integer.
static std::string defaultFileName(const AppIdentity &identity, Format format=Format::Json)
Returns a config file path for identity.
Definition: RADSettings.h:16
Format
Settings file format.
Definition: RADSettings.h:19
@ Ini
INI-style section/key settings file.
@ Json
JSON object settings file.
Application identity used for standard settings paths.
Definition: RADSettings.h:27
std::string application
Application name.
Definition: RADSettings.h:31
std::string organization
Organization or vendor name.
Definition: RADSettings.h:29