Skip to content
Snippets Groups Projects
Commit df253ef9 authored by Mikhail Svechnikov's avatar Mikhail Svechnikov
Browse files

UIntDescriptor: rm SessionItem

parent 7be686be
No related branches found
No related tags found
1 merge request!1146GUI: rm SessionItem from descriptors
...@@ -14,35 +14,16 @@ ...@@ -14,35 +14,16 @@
#include "GUI/Model/Descriptor/UIntDescriptor.h" #include "GUI/Model/Descriptor/UIntDescriptor.h"
#include "GUI/Model/BaseItem/SessionItem.h"
#include <utility>
using std::function;
using std::variant;
UIntDescriptor::UIntDescriptor(const QString& label, SessionItem* item,
const variant<QString, Unit>& unit)
: UIntDescriptor(
label, item->toolTip(), item->limits(), [=](int d) { item->setValue(d); },
[=]() { return item->value().toInt(); }, unit)
{
}
UIntDescriptor::UIntDescriptor(SessionItem* item, const variant<QString, Unit>& unit)
: UIntDescriptor(item->displayName(), item, unit)
{
}
UIntDescriptor::UIntDescriptor(const QString& label, const QString& tooltip, UIntDescriptor::UIntDescriptor(const QString& label, const QString& tooltip,
function<void(uint)> setter, function<uint()> getter, std::function<void(uint)> setter, std::function<uint()> getter,
const variant<QString, Unit>& unit) const std::variant<QString, Unit>& unit)
: UIntDescriptor(label, tooltip, RealLimits::nonnegative(), setter, getter, unit) : UIntDescriptor(label, tooltip, RealLimits::nonnegative(), setter, getter, unit)
{ {
} }
UIntDescriptor::UIntDescriptor(QString label, QString tooltip, const RealLimits& limits, UIntDescriptor::UIntDescriptor(QString label, QString tooltip, const RealLimits& limits,
function<void(uint)> setter, function<uint()> getter, std::function<void(uint)> setter, std::function<uint()> getter,
const variant<QString, Unit>& unit) const std::variant<QString, Unit>& unit)
: label(std::move(label)) : label(std::move(label))
, tooltip(std::move(tooltip)) , tooltip(std::move(tooltip))
, limits(limits) , limits(limits)
...@@ -53,7 +34,7 @@ UIntDescriptor::UIntDescriptor(QString label, QString tooltip, const RealLimits& ...@@ -53,7 +34,7 @@ UIntDescriptor::UIntDescriptor(QString label, QString tooltip, const RealLimits&
} }
UIntDescriptor::UIntDescriptor(const QString& label, const uint* var, UIntDescriptor::UIntDescriptor(const QString& label, const uint* var,
const variant<QString, Unit>& unit) const std::variant<QString, Unit>& unit)
: UIntDescriptor( : UIntDescriptor(
label, "", RealLimits::nonnegative(), [=](uint v) { *const_cast<uint*>(var) = v; }, label, "", RealLimits::nonnegative(), [=](uint v) { *const_cast<uint*>(var) = v; },
[=] { return *var; }, unit) [=] { return *var; }, unit)
......
...@@ -21,27 +21,14 @@ ...@@ -21,27 +21,14 @@
#include <functional> #include <functional>
#include <variant> #include <variant>
class SessionItem;
//! Describes properties of a uint value which are necessary to allow GUI representation, editing //! Describes properties of a uint value which are necessary to allow GUI representation, editing
//! the value, undo/redo, unit conversion. //! the value, undo/redo, unit conversion.
//! //!
//! By using this class, the underlying data scheme is hidden from the user of the data. This e.g. //! By using this class, the underlying data scheme is hidden from the user of the data. The underlying implementation
//! eases SessionItem migration. The underlying implementation can be a SessionItem, a simple uint //! can be a simple uint member, or any other construction to hold a uint value.
//! member, or any other construction to hold a uint value.
class UIntDescriptor { class UIntDescriptor {
public: public:
UIntDescriptor() = default; UIntDescriptor() = default;
//! Operates on a session item. The settings (like limits) are taken from the session
//! item.
//! Only for easier migration. Should be removed after SessionItem refactoring.
UIntDescriptor(SessionItem* item, const std::variant<QString, Unit>& unit);
//! Operates on a session item. The settings (like limits) are taken from the session
//! item.
//! Only for easier migration. Should be removed after SessionItem refactoring.
UIntDescriptor(const QString& label, SessionItem* item,
const std::variant<QString, Unit>& unit);
UIntDescriptor(const QString& label, const uint* var, const std::variant<QString, Unit>& unit); UIntDescriptor(const QString& label, const uint* var, const std::variant<QString, Unit>& unit);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment