summaryrefslogtreecommitdiffhomepage
path: root/options/slider.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'options/slider.hpp')
-rw-r--r--options/slider.hpp51
1 files changed, 19 insertions, 32 deletions
diff --git a/options/slider.hpp b/options/slider.hpp
index f3ba44f8..1e721ae0 100644
--- a/options/slider.hpp
+++ b/options/slider.hpp
@@ -8,10 +8,11 @@
#pragma once
#include "export.hpp"
-#include "compat/macros.hpp"
-#include <QMetaType>
+#include <type_traits>
+
#include <QDataStream>
+#include <QMetaType>
#include <QDebug>
namespace options
@@ -20,42 +21,28 @@ namespace options
{
double cur_, min_, max_;
- template<typename t>
- using arith_conversion_t = std::enable_if_t<std::is_arithmetic_v<std::decay_t<t>>, std::decay_t<t>>;
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>
- never_inline
- explicit operator arith_conversion_t<t>() const
- {
- return t(cur_);
- }
-
- slider_value(const slider_value& v);
- slider_value();
- slider_value& operator=(const slider_value& v);
+ 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} {}
+
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
-
+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);