2#include <Process/ProcessFactory.hpp>
5#include <score/tools/SafeCast.hpp>
13template <
typename Model_T>
23 QString prettyName()
const noexcept override
27 QString category()
const noexcept override
31 Descriptor descriptor(QString)
const noexcept override
46 QObject* parent)
final override;
49template <
typename Model_T>
54 if constexpr(std::is_constructible_v<
59 return new Model_T{duration, data, id, parent};
63 if constexpr(std::is_constructible_v<
67 return new Model_T{duration, id, ctx, parent};
69 else if constexpr(std::is_constructible_v<
73 return new Model_T{id, ctx, parent};
75 else if constexpr(std::is_constructible_v<
78 return new Model_T{duration, id, parent};
82 return new Model_T{duration, data, id, parent};
86 else if constexpr(std::is_constructible_v<
89 return new Model_T{duration, id, ctx, parent};
91 return new Model_T{duration, id, parent};
94template <
typename Model_T>
95Model_T* ProcessFactory_T<Model_T>::load(
98 return score::deserialize_dyn(vis, [&](
auto&& deserializer) {
99 if constexpr(std::is_constructible_v<
102 return new Model_T{deserializer, ctx, parent};
104 return new Model_T{deserializer, parent};
109 typename Model_T,
typename LayerPresenter_T,
typename LayerView_T,
110 typename HeaderDelegate_T = default_t>
122 std::optional<double> recommendedHeight()
const noexcept override
124 if constexpr(bool(LayerPresenter_T::recommendedHeight))
126 return LayerPresenter_T::recommendedHeight;
128 return LayerFactory::recommendedHeight();
131 LayerView_T* makeLayerView(
133 QGraphicsItem* parent)
const final override
135 if constexpr(std::is_constructible_v<
138 return new LayerView_T{safe_cast<const Model_T&>(viewmodel), context, parent};
139 else if constexpr(std::is_constructible_v<
140 LayerView_T,
const Model_T&, QGraphicsItem*>)
141 return new LayerView_T{safe_cast<const Model_T&>(viewmodel), parent};
143 return new LayerView_T{parent};
146 LayerPresenter_T* makeLayerPresenter(
150 return new LayerPresenter_T{
151 safe_cast<const Model_T&>(lm), safe_cast<LayerView_T*>(v), context, parent};
161 QGraphicsItem* parent)
const override
163 if constexpr(std::is_same_v<HeaderDelegate_T, default_t>)
164 return LayerFactory::makeHeaderDelegate(model, ctx, parent);
166 return new HeaderDelegate_T{model, ctx};
170template <
typename Model_T>
190template <
typename Model_T>
Definition GenericProcessFactory.hpp:174
Definition GenericProcessFactory.hpp:112
Definition score-lib-process/Process/ProcessFactory.hpp:59
Definition LayerView.hpp:21
Definition GenericProcessFactory.hpp:15
The ProcessFactory class.
Definition score-lib-process/Process/ProcessFactory.hpp:35
The Process class.
Definition score-lib-process/Process/Process.hpp:61
Definition UuidKey.hpp:344
The id_base_t class.
Definition Identifier.hpp:59
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
ProcessFlags
Various settings for processes.
Definition ProcessFlags.hpp:17
Definition ProcessContext.hpp:12
Definition score-lib-process/Process/ProcessMetadata.hpp:37
Definition GenericProcessFactory.hpp:10
Definition TimeValue.hpp:21
The VisitorVariant struct.
Definition VisitorInterface.hpp:26
Definition ObjectMatches.hpp:6
Definition DocumentContext.hpp:18