diff --git a/GUI/Model/Types/DoubleDescriptor.cpp b/GUI/Model/Types/DoubleDescriptor.cpp index 361f0bd374800ee633afaa4c2a3d56617c6b73f0..7e0bbb8eb351455da8af4f15f8543a842bba071e 100644 --- a/GUI/Model/Types/DoubleDescriptor.cpp +++ b/GUI/Model/Types/DoubleDescriptor.cpp @@ -70,6 +70,14 @@ DoubleDescriptor::DoubleDescriptor(const QString& label, const QString& tooltip, { } +DoubleDescriptor::DoubleDescriptor(const QString& label, double* var, + const variant<QString, Unit>& unit) + : label(label), decimals(3), limits(RealLimits::nonnegative()), unit(unit) +{ + set = [=](double v) { *var = v; }; + get = [=]() { return *var; }; +} + DoubleDescriptor::operator double() const { return get(); diff --git a/GUI/Model/Types/DoubleDescriptor.h b/GUI/Model/Types/DoubleDescriptor.h index 80c0aeb5a88837eb90b8cf5ad84d7b26759797c5..3fd1f54416d0e530fdac8ac8d9d23f91b6b91081 100644 --- a/GUI/Model/Types/DoubleDescriptor.h +++ b/GUI/Model/Types/DoubleDescriptor.h @@ -35,6 +35,8 @@ using std::variant; class DoubleDescriptor { public: + DoubleDescriptor(const DoubleDescriptor& other) = default; + //! Operates on a session item. The settings (like decimals, limits) are taken from the session //! item. //! Only for easier migration. Should be removed after SessionItem refactoring. @@ -45,6 +47,15 @@ public: //! Only for easier migration. Should be removed after SessionItem refactoring. DoubleDescriptor(const QString& label, SessionItem* item, const variant<QString, Unit>& unit); + DoubleDescriptor(const QString& label, double* var, const variant<QString, Unit>& unit); + + //! Operates on any kind of storage (e.g. session items), by using setter/getter methods + DoubleDescriptor(QString label, QString tooltip, int decimals, const RealLimits& limits, + function<void(double)> setter, function<double()> getter, + const variant<QString, Unit>& unit); + + DoubleDescriptor() = default; + private: // private as long as path initialization is not included in params (to be done after // SessionItem migration) //! Operates on a double value (e.g a member variable). @@ -56,11 +67,6 @@ private: // private as long as path initialization is not included in params (to DoubleDescriptor(const QString& label, const QString& tooltip, double* var, const variant<QString, Unit>& unit); - //! Operates on any kind of storage (e.g. session items), by using setter/getter methods - DoubleDescriptor(QString label, QString tooltip, int decimals, const RealLimits& limits, - function<void(double)> setter, function<double()> getter, - const variant<QString, Unit>& unit); - //! Operates on any kind of storage (e.g. session items), by using setter/getter methods //! decimals is set to 3, limits is set to nonnegative DoubleDescriptor(const QString& label, const QString& tooltip, function<void(double)> setter, diff --git a/GUI/Model/Types/VectorDescriptor.h b/GUI/Model/Types/VectorDescriptor.h index 46eb6b17ba21f61e133e9d4d286c52697857a4f7..567acf7369b6826ba8679a85c63ea9c4ba4d050c 100644 --- a/GUI/Model/Types/VectorDescriptor.h +++ b/GUI/Model/Types/VectorDescriptor.h @@ -38,6 +38,39 @@ public: { } + VectorDescriptor(const QString& label, const QString& tooltip, double* xVar, double* yVar, + double* zVar, const variant<QString, Unit>& unit) + : label(label), tooltip(tooltip), x("X", xVar, unit), y("Y", yVar, unit), z("Z", zVar, unit) + { + x.limits = RealLimits::limitless(); + y.limits = RealLimits::limitless(); + z.limits = RealLimits::limitless(); + x.decimals = 3; + y.decimals = 3; + z.decimals = 3; + x.tooltip = tooltip; + y.tooltip = tooltip; + z.tooltip = tooltip; + } + + VectorDescriptor(const QString& label, const QString& tooltip, + const variant<QString, Unit>& unit) + : label(label), tooltip(tooltip) + { + x.limits = RealLimits::limitless(); + y.limits = RealLimits::limitless(); + z.limits = RealLimits::limitless(); + x.decimals = 3; + y.decimals = 3; + z.decimals = 3; + x.tooltip = tooltip; + y.tooltip = tooltip; + z.tooltip = tooltip; + x.unit = unit; + y.unit = unit; + z.unit = unit; + } + QString label; //!< A label text (short, no trailing colon) QString tooltip; //!< Tooltip text DoubleDescriptor x;