Loading...
Searching...
No Matches
IntervalView.hpp
1#pragma once
2#include <Scenario/Document/Interval/ExecutionState.hpp>
3#include <Scenario/Document/Interval/Temporal/Braces/LeftBrace.hpp>
4#include <Scenario/Document/ScenarioDocument/ScenarioDocumentViewConstants.hpp>
5
6#include <score/graphics/TextItem.hpp>
7#include <score/model/ColorInterpolator.hpp>
8
9#include <QGraphicsItem>
10#include <qnamespace.h>
11
12#include <score_plugin_scenario_export.h>
13
14#include <verdigris>
15class QGraphicsSceneMouseEvent;
16
17namespace Process
18{
19struct Style;
20}
21namespace score
22{
23class SimpleTextItem;
24}
25namespace Scenario
26{
27class IntervalPresenter;
28class LeftBraceView;
29class RightBraceView;
30class IntervalMenuOverlay;
31class SCORE_PLUGIN_SCENARIO_EXPORT IntervalView
32 : public QObject
33 , public QGraphicsItem
34{
35 W_OBJECT(IntervalView)
36 Q_INTERFACES(QGraphicsItem)
37
38public:
39 IntervalView(IntervalPresenter& presenter, QGraphicsItem* parent);
40 virtual ~IntervalView();
41
42 const IntervalPresenter& presenter() const { return m_presenter; }
43
44 void setInfinite(bool);
45 bool infinite() const { return m_infinite; }
46
47 void setExecuting(bool);
48 void setDefaultWidth(double width);
49 void setMaxWidth(bool infinite, double max);
50 void setMinWidth(double min);
51 void setRigid(bool r);
52 void setHeight(double height);
53 double setPlayWidth(double width);
54 void setValid(bool val);
55
56 double height() const { return m_height; }
57
58 bool isSelected() const { return m_selected; }
59
60 double defaultWidth() const { return m_defaultWidth; }
61
62 double minWidth() const { return m_minWidth; }
63
64 double maxWidth() const { return m_maxWidth; }
65
66 bool rigid() const { return m_rigid; }
67
68 double intervalAndRackHeight() const { return m_height; }
69
70 double playWidth() const { return m_playWidth; }
71
72 bool isValid() const { return m_validInterval; }
73
74 bool warning() const;
75 void setWarning(bool warning);
76
77 void setExecutionState(IntervalExecutionState);
78 const score::Brush& intervalColor(const Process::Style& skin) const;
79 const QPixmap& intervalDashedPixmap(const Process::Style& skin) const;
80
81 void updateLabelPos();
82 void updateCounterPos();
83 virtual void updatePaths() = 0;
84 virtual void updatePlayPaths() = 0;
85
86 void mousePressEvent(QGraphicsSceneMouseEvent* event) final override;
87 void mouseMoveEvent(QGraphicsSceneMouseEvent* event) final override;
88 void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) final override;
89
90 LeftBraceView& leftBrace() { return m_leftBrace; }
91 RightBraceView& rightBrace() { return m_rightBrace; }
92
93 void setDropTarget(bool b)
94 {
95 m_dropTarget = b;
96 update();
97 }
98
99public:
100 void requestOverlayMenu(QPointF arg_1)
101 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, requestOverlayMenu, arg_1)
102 void dropReceived(const QPointF& pos, const QMimeData& arg_2)
103 E_SIGNAL(SCORE_PLUGIN_SCENARIO_EXPORT, dropReceived, pos, arg_2)
104
105protected:
106 friend class TemporalIntervalHeader;
107 friend class FullViewIntervalHeader;
108 void dragEnterEvent(QGraphicsSceneDragDropEvent* event) override;
109 void dragMoveEvent(QGraphicsSceneDragDropEvent* event) override;
110 void dragLeaveEvent(QGraphicsSceneDragDropEvent* event) override;
111 void dropEvent(QGraphicsSceneDragDropEvent* event) override;
112
113 QPainterPath shape() const override;
114 QPainterPath opaqueArea() const override;
115 bool contains(const QPointF&) const override;
116
117 void setGripCursor();
118 void setUngripCursor();
119
120 LeftBraceView m_leftBrace;
121 RightBraceView m_rightBrace;
122 score::SimpleTextItem m_counterItem;
123
124 IntervalPresenter& m_presenter;
125 QPainterPath solidPath, playedSolidPath;
126
127 double m_defaultWidth{};
128 double m_maxWidth{};
129 double m_minWidth{};
130 double m_playWidth{};
131 double m_height{};
132 score::ColorBang m_execPing;
133
134 bool m_selected : 1;
135 bool m_infinite : 1;
136 bool m_validInterval : 1; //{true};
137 bool m_warning : 1;
138 bool m_waiting : 1;
139 bool m_dropTarget : 1;
140 bool m_rigid : 1;
141 IntervalExecutionState m_state : 2;
142};
143}
Definition FullViewIntervalHeader.hpp:16
Definition IntervalPresenter.hpp:30
Definition IntervalView.hpp:34
Definition LeftBrace.hpp:12
Definition LeftBrace.hpp:27
Definition TemporalIntervalHeader.hpp:25
Definition ColorInterpolator.hpp:9
Definition TextItem.hpp:28
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
Main plug-in of score.
Definition score-plugin-dataflow/Dataflow/PortItem.hpp:13
Base toolkit upon which the software is built.
Definition Application.cpp:97
Definition ScenarioStyle.hpp:13
Definition Skin.hpp:56