Loading...
Searching...
No Matches
DefaultEffectItem.hpp
1#pragma once
2#include <ossia/detail/small_vector.hpp>
3#include <score/graphics/RectItem.hpp>
4#include <score/model/Identifier.hpp>
5
6#include <score_lib_process_export.h>
7
8#include <vector>
9namespace score
10{
11class GraphicsLayout;
12}
13namespace Dataflow
14{
15class PortItem;
16}
17namespace Process
18{
19class ProcessModel;
20class PortFactoryList;
21struct Context;
22class ControlInlet;
23class ControlOutlet;
24class Port;
25
26class SCORE_LIB_PROCESS_EXPORT DefaultEffectItem final : public score::EmptyRectItem
27{
28public:
30 bool onlyShowUndisplayedPorts, const Process::ProcessModel& effect,
31 const Process::Context& doc, QGraphicsItem* root);
33
34 void
35 setupInlet(Process::ControlInlet& inlet, const Process::PortFactoryList& portFactory);
36 void setupOutlet(
37 Process::ControlOutlet& inlet, const Process::PortFactoryList& portFactory);
38
39private:
40 template <typename T>
41 void setupPort(T& port, const Process::PortFactoryList& portFactory);
42
43 void reset();
44 void recreate();
45 void recreate_full_onlyInlets();
46 void recreate_full_onlyOutlets();
47 void recreate_full_both(int num_hidden);
48 void recreate_fold_onlyInlets();
49 void recreate_fold_onlyOutlets();
50 void recreate_fold_both();
51 void updateRect();
52 void relayout();
53
54 score::GraphicsLayout* m_layout{};
55 ossia::small_vector<score::GraphicsLayout*, 4> m_allLayouts;
56 const Process::ProcessModel& m_effect;
57 const Process::Context& m_ctx;
58
59 bool m_onlyUndisplayed{};
60 bool m_needRecreate{};
61};
62}
Definition Port.hpp:205
Definition Port.hpp:426
Definition DefaultEffectItem.hpp:27
Definition PortFactory.hpp:82
The Process class.
Definition score-lib-process/Process/Process.hpp:61
Definition RectItem.hpp:78
Definition GraphicsLayout.hpp:8
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
Base toolkit upon which the software is built.
Definition Application.cpp:97
Definition ProcessContext.hpp:12