#pragma once #include "options/defs.hpp" #include "compat/base-path.hpp" #include "compat/library-path.hpp" #include "compat/macros.hpp" #include "compat/qhash.hpp" #include "export.hpp" #include #include #include #include #include // XXX TODO remove qsettings usage -sh 20180624 namespace options::detail { // snapshot of qsettings group at given time class OTR_OPTIONS_EXPORT group final { QString name; public: std::unordered_map kvs; explicit group(const QString& name); void save() const; void put(const QString& s, const QVariant& d); void put(const QString& s, QVariant&& d); bool contains(const QString& s) const; never_inline QVariant get_variant(const QString& name) const; }; } // ns options::detail