Loading...
Searching...
No Matches
NodalIntervalView.hpp
1#pragma once
2#include <Process/Dataflow/NodeItem.hpp>
3
4#include <Scenario/Document/ScenarioDocument/ScenarioDocumentViewConstants.hpp>
5
6#include <score/graphics/RectItem.hpp>
7
8#include <nano_observer.hpp>
9
10namespace Scenario
11{
12class IntervalModel;
15 , public Nano::Observer
16{
17 W_OBJECT(NodalIntervalView)
18public:
19 enum ItemsToShow
20 {
21 AllItems,
22 OnlyEffects
23 };
25 ItemsToShow sh, const IntervalModel& model, const Process::Context& ctx,
26 QGraphicsItem* parent);
27
29
30 void on_drop(QPointF pos, const QMimeData* data);
31 void on_playPercentageChanged(double t, TimeVal parent_dur);
32
33 void recenter();
34 void recenterRelativeToView();
35 void rescale();
36 QRectF enclosingRect() const noexcept;
37
38 QGraphicsItem& nodeContainer() const noexcept { return *m_container; }
39 int type() const override { return ItemType::Type::NodalIntervalView; }
40
41private:
42 void on_processAdded(const Process::ProcessModel& proc);
43 void on_processRemoving(const Process::ProcessModel& model);
44 void on_zoomRatioChanged(ZoomRatio ratio);
45 void on_dropOnNode(const QPointF& pt, const QMimeData& mime);
46
47 void dragEnterEvent(QGraphicsSceneDragDropEvent* event) override;
48 void dragLeaveEvent(QGraphicsSceneDragDropEvent* event) override;
49 void dragMoveEvent(QGraphicsSceneDragDropEvent* event) override;
50 void dropEvent(QGraphicsSceneDragDropEvent* event) override;
51
52 void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
53 void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
54 void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
55 void contextMenuEvent(QGraphicsSceneContextMenuEvent* event) override;
56
57 const IntervalModel& m_model;
58 const Process::Context& m_context;
59 ItemsToShow m_itemsToShow{};
60 std::vector<Process::NodeItem*> m_nodeItems;
61 QGraphicsItem* m_container{};
62 QPointF m_pressedPos{};
63};
64
65}
The Process class.
Definition score-lib-process/Process/Process.hpp:61
Definition IntervalModel.hpp:50
Definition NodalIntervalView.hpp:16
Definition RectItem.hpp:64
Main plug-in of score.
Definition score-plugin-dataflow/Dataflow/PortItem.hpp:13
Definition ProcessContext.hpp:12
Definition TimeValue.hpp:21