20 #include <QGraphicsScene>
21 #include <QGraphicsSceneMouseEvent>
27 scene->installEventFilter(
this);
33 QList<QGraphicsItem*> items =
m_scene->items(QRectF(pos - QPointF(1, 1), QSize(3, 3)));
35 for (QGraphicsItem* item : items)
36 if (item->type() > QGraphicsItem::UserType)
44 QGraphicsSceneMouseEvent* mouseEvent =
dynamic_cast<QGraphicsSceneMouseEvent*
>(event);
46 return QObject::eventFilter(
object, event);
48 bool isProcessedEvent(
false);
50 if (event->type() == QEvent::GraphicsSceneMousePress) {
52 }
else if (event->type() == QEvent::GraphicsSceneMouseMove) {
54 }
else if (event->type() == QEvent::GraphicsSceneMouseRelease) {
57 return isProcessedEvent ? isProcessedEvent : QObject::eventFilter(
object, event);
64 if (
m_conn == 0 && event->button() == Qt::LeftButton) {
65 QGraphicsItem* item =
itemAt(event->scenePos());
96 if (
m_conn && event->button() == Qt::LeftButton) {
99 QGraphicsItem* item =
itemAt(event->scenePos());
104 if (port1->parentItem() != port2->parentItem() && port1->
isOutput() != port2->
isOutput()
Defines class DesignerView.
Defines class NodeEditorConnection.
Defines class NodeEditorPort.
Defines class NodeEditor.
void setPort2(NodeEditorPort *p)
void setPos1(const QPointF &p)
void setPort1(NodeEditorPort *p)
void setPos2(const QPointF &p)
NodeEditorPort * port1() const
bool isConnected(NodeEditorPort *)
EPortType getPortType() const
QGraphicsItem * itemAt(const QPointF &)
bool processMousePress(QGraphicsSceneMouseEvent *event)
bool eventFilter(QObject *object, QEvent *event)
void connectionIsEstablished(NodeEditorConnection *)
NodeEditorConnection * m_conn
NodeEditor(QObject *parent=0)
bool processMouseRelease(QGraphicsSceneMouseEvent *event)
void install(QGraphicsScene *scene)
bool processMouseMove(QGraphicsSceneMouseEvent *event)
void selectionModeChangeRequest(int)