#pragma once #include "export.hpp" #include "compat/util.hpp" #include #include #include #include #include #include namespace options { // snapshot of qsettings group at given time class OPENTRACK_OPTIONS_EXPORT group final { private: std::map kvs; QString name; public: group(const QString& name); void save() const; void save_deferred(QSettings& s) const; void put(const QString& s, const QVariant& d); bool contains(const QString& s) const; static QString ini_directory(); static QString ini_filename(); static QString ini_pathname(); static const QStringList ini_list(); static const std::shared_ptr ini_file(); bool operator==(const group& other) const; bool operator!=(const group& other) const { return !(*this == other); } template t get(const QString& k) const { auto value = kvs.find(k); if (value != kvs.cend()) return value->second.value(); return t(); } }; }