diff options
-rw-r--r-- | options/bundle.cpp | 12 | ||||
-rw-r--r-- | options/bundle.hpp | 4 | ||||
-rw-r--r-- | options/group.cpp | 7 | ||||
-rw-r--r-- | options/group.hpp | 1 |
4 files changed, 19 insertions, 5 deletions
diff --git a/options/bundle.cpp b/options/bundle.cpp index a17b04fb..20cc5d90 100644 --- a/options/bundle.cpp +++ b/options/bundle.cpp @@ -67,7 +67,7 @@ void bundle::set_all_to_default() connector::set_all_to_default_(); } -void bundle::store_kv(const QString& name, const QVariant& new_value) +void bundle::store_kv(const QString& name, QVariant&& value) { if (group_name.isEmpty()) return; @@ -75,13 +75,21 @@ void bundle::store_kv(const QString& name, const QVariant& new_value) { mark_ini_modified(); QMutexLocker l{&mtx}; - transient.put(name, new_value); + transient.put(name, value); connector::notify_values(name); } emit changed(); } +void bundle::store_kv(const QString& name, const QVariant& value) +{ + if (group_name.isEmpty()) + return; + + store_kv(name, QVariant{value}); +} + QVariant bundle::get_variant(const QString& name) const { QMutexLocker l{&mtx}; diff --git a/options/bundle.hpp b/options/bundle.hpp index c1bb716d..dec7c340 100644 --- a/options/bundle.hpp +++ b/options/bundle.hpp @@ -69,6 +69,7 @@ public: explicit bundle(const QString& group_name); ~bundle() override; + void store_kv(const QString& name, QVariant&& datum); void store_kv(const QString& name, const QVariant& datum); bool contains(const QString& name) const; @@ -90,8 +91,7 @@ struct OTR_OPTIONS_EXPORT bundler final static void notify(); static void reload_no_notify(); - - void reload(); + static void reload(); private: QMutex implsgl_mtx { QMutex::Recursive }; diff --git a/options/group.cpp b/options/group.cpp index 41655d5e..d5829008 100644 --- a/options/group.cpp +++ b/options/group.cpp @@ -50,7 +50,7 @@ void group::save() const }); } -void group::put(const QString& s, const QVariant& d) +void group::put(const QString& s, QVariant&& d) { if (d.isNull()) kvs.erase(s); @@ -58,6 +58,11 @@ void group::put(const QString& s, const QVariant& d) kvs[s] = d; } +void group::put(const QString& s, const QVariant& d) +{ + put(s, QVariant{d}); +} + bool group::contains(const QString& s) const { const auto it = kvs.find(s); diff --git a/options/group.hpp b/options/group.hpp index 45e9353c..93299b6e 100644 --- a/options/group.hpp +++ b/options/group.hpp @@ -29,6 +29,7 @@ namespace options::detail { 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; |