diff options
Diffstat (limited to 'options/base-value.hpp')
-rw-r--r-- | options/base-value.hpp | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/options/base-value.hpp b/options/base-value.hpp index 14eaeb10..722107a4 100644 --- a/options/base-value.hpp +++ b/options/base-value.hpp @@ -9,15 +9,15 @@ #include "compat/macros.hpp" #include "value-traits.hpp" +#include <utility> + #include <QObject> #include <QString> #include <QList> #include <QPointF> #include <QVariant> -#include <utility> - -#define OTR_OPTIONS_SLOT(t) void setValue(t datum) { store_(datum); } +#define OTR_OPTIONS_SLOT(t) void setValue(t datum) noexcept { store_(datum); } #define OTR_OPTIONS_SIGNAL(t) void valueChanged(t) const namespace options { @@ -26,17 +26,14 @@ class OTR_OPTIONS_EXPORT value_ : public QObject { Q_OBJECT - friend class detail::connector; - template<typename t> using signal_sig = void(value_::*)(cv_qualified<t>) const; public: QString name() const { return self_name; } - value_(bundle const& b, const QString& name); + value_(bundle const& b, const QString& name) noexcept; ~value_() override; - // no C++17 "constexpr inline" for data declarations in MSVC template<typename t> static constexpr auto value_changed() { @@ -65,7 +62,8 @@ protected: bundle b; QString self_name; - virtual void store_variant(const QVariant& x) = 0; + virtual void store_variant(QVariant&&) noexcept = 0; + virtual void store_variant(const QVariant&) noexcept = 0; template<typename t> void store_(const t& datum) @@ -91,12 +89,9 @@ public slots: OTR_OPTIONS_SLOT(const QList<slider_value>&) OTR_OPTIONS_SLOT(const QList<QPointF>&) - virtual void bundle_value_changed() const = 0; - virtual void set_to_default() = 0; - - void notify() const; - - friend void ::options::detail::set_value_to_default(value_* val); + virtual void set_to_default() noexcept = 0; + virtual void notify() const = 0; + virtual QVariant get_variant() const noexcept = 0; }; } //ns options |