2 #include <QGraphicsItem>
8 #include <Process/Dataflow/Port.hpp>
10 #include <Process/Dataflow/PortType.hpp>
12 #include <ossia/detail/ptr_set.hpp>
14 #include <score_lib_process_export.h>
27 struct DocumentContext;
35 struct DragMoveFilter;
38 ,
public QGraphicsItem
41 Q_INTERFACES(QGraphicsItem)
50 void setPortVisible(
bool b);
51 void resetPortVisible();
53 void setHighlight(
bool b);
55 using QGraphicsItem::dropEvent;
56 static const constexpr
int Type = QGraphicsItem::UserType + 700;
57 int type()
const final override {
return Type; }
60 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, createCable, src, snk)
61 void contextMenuRequested(QPointF scenepos, QPoint pos)
62 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, contextMenuRequested, scenepos, pos)
65 QRectF boundingRect()
const override;
66 void paint(QPainter* painter,
const QStyleOptionGraphicsItem* option, QWidget* widget)
69 void mousePressEvent(QGraphicsSceneMouseEvent* event)
override;
70 void mouseMoveEvent(QGraphicsSceneMouseEvent* event)
override;
71 void mouseReleaseEvent(QGraphicsSceneMouseEvent* event)
override;
72 void hoverEnterEvent(QGraphicsSceneHoverEvent* event)
final override;
73 void hoverMoveEvent(QGraphicsSceneHoverEvent* event)
final override;
74 void hoverLeaveEvent(QGraphicsSceneHoverEvent* event)
final override;
76 void dragEnterEvent(QGraphicsSceneDragDropEvent* event)
final override;
77 void dragMoveEvent(QGraphicsSceneDragDropEvent* event)
final override;
78 void dragLeaveEvent(QGraphicsSceneDragDropEvent* event)
final override;
80 void keyPressEvent(QKeyEvent* event)
override;
81 void keyReleaseEvent(QKeyEvent* event)
override;
83 QVariant itemChange(GraphicsItemChange change,
const QVariant& value)
override;
86 std::vector<QPointer<CableItem>> cables;
94 bool m_highlight{
true};
99 portImage(Process::PortType t,
bool inlet,
bool smol,
bool light,
bool addr) noexcept;
102 SCORE_LIB_PROCESS_EXPORT
105 ossia::small_vector<const Process::Port*, 16>
113 inline const constexpr
char* port()
115 return "application/x-score-port";
Definition: QmlObjects.hpp:114
Definition: CableItem.hpp:26
Definition: score-lib-process/Process/Dataflow/PortItem.hpp:39
Definition: QmlObjects.hpp:51
Definition: score-lib-process/Process/Dataflow/Port.hpp:102
The Process class.
Definition: score-lib-process/Process/Process.hpp:61
Definition: TextItem.hpp:28
Base classes and tools to implement processes and layers.
Definition: JSONVisitor.hpp:1324
Base toolkit upon which the software is built.
Definition: Application.cpp:90
Definition: ProcessContext.hpp:12
Definition: DocumentContext.hpp:18