summaryrefslogtreecommitdiffhomepage
path: root/options/base-value.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'options/base-value.hpp')
-rw-r--r--options/base-value.hpp23
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