diff options
Diffstat (limited to 'options/slider.hpp')
| -rw-r--r-- | options/slider.hpp | 42 |
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); |
