summaryrefslogtreecommitdiffhomepage
path: root/options/slider.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'options/slider.hpp')
-rw-r--r--options/slider.hpp42
1 files changed, 20 insertions, 22 deletions
diff --git a/options/slider.hpp b/options/slider.hpp
index 48b690d2..1e721ae0 100644
--- a/options/slider.hpp
+++ b/options/slider.hpp
@@ -8,8 +8,11 @@
#pragma once
#include "export.hpp"
-#include <QMetaType>
+
+#include <type_traits>
+
#include <QDataStream>
+#include <QMetaType>
#include <QDebug>
namespace options
@@ -17,34 +20,29 @@ namespace options
class OTR_OPTIONS_EXPORT slider_value final
{
double cur_, min_, max_;
+
public:
slider_value(double cur, double min, double max);
- template<typename t, typename u, typename v> slider_value(t cur, u min, v max) :
- cur_(double(cur)),
- min_(double(min)),
- max_(double(max))
- {}
+ template<typename t, typename u, typename v>
+ slider_value(t cur, u min, v max) :
+ slider_value((double)cur, (double)min, (double)max) {}
+
+ slider_value& operator=(const slider_value& v) = default;
+ slider_value(const slider_value& v) = default;
+ slider_value() : slider_value{0, 0, 0} {}
- slider_value(const slider_value& v);
- slider_value();
- slider_value& operator=(const slider_value& v);
bool operator==(const slider_value& v) const;
- operator double() const { return cur_; }
- double cur() const { return cur_; }
- double min() const { return min_; }
- double max() const { return max_; }
+ bool operator!=(const slider_value& v) const;
+ constexpr operator double() const { return cur_; }
+ constexpr double cur() const { return cur_; }
+ constexpr double min() const { return min_; }
+ constexpr double max() const { return max_; }
slider_value update_from_slider(int pos, int q_min, int q_max) const;
int to_slider_pos(int q_min, int q_max) const;
};
}
-QT_BEGIN_NAMESPACE
-
-QDebug operator << (QDebug dbg, const options::slider_value& val);
-QDataStream& operator << (QDataStream& out, const options::slider_value& v);
-QDataStream& operator >> (QDataStream& in, options::slider_value& v);
-
-QT_END_NAMESPACE
-
-Q_DECLARE_METATYPE(options::slider_value)
+OTR_OPTIONS_EXPORT QDebug operator << (QDebug dbg, const options::slider_value& val);
+OTR_OPTIONS_EXPORT QDataStream& operator << (QDataStream& out, const options::slider_value& v);
+OTR_OPTIONS_EXPORT QDataStream& operator >> (QDataStream& in, options::slider_value& v);