diff --git a/ui/nodeui.cpp b/ui/nodeui.cpp index 9a8f68c49..aacda3065 100644 --- a/ui/nodeui.cpp +++ b/ui/nodeui.cpp @@ -17,7 +17,8 @@ const int kRoundedRectRadius = 5; const int kNodePlugSize = 10; NodeUI::NodeUI() : - central_widget_(nullptr) + central_widget_(nullptr), + clicked_socket_(false) { setFlag(QGraphicsItem::ItemIsMovable, true); setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -93,22 +94,41 @@ void NodeUI::mousePressEvent(QGraphicsSceneMouseEvent *event) { QVector sockets = GetNodeSocketRects(); - bool clicked_socket = false; + clicked_socket_ = false; for (int i=0;ipos())) { - clicked_socket = true; + clicked_socket_ = true; break; } } - if (clicked_socket) { - qDebug() << "CLICKED SOCKET!"; + if (clicked_socket_) { + qDebug() << "Clicked socket!"; + event->accept(); } else { QGraphicsItem::mousePressEvent(event); } } +void NodeUI::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + if (clicked_socket_) { + + } else { + QGraphicsItem::mouseMoveEvent(event); + } +} + +void NodeUI::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + if (clicked_socket_) { + + } else { + QGraphicsItem::mouseReleaseEvent(event); + } +} + QVector NodeUI::GetNodeSocketRects() { QVector rects; diff --git a/ui/nodeui.h b/ui/nodeui.h index fe278accf..3cb50d2a6 100644 --- a/ui/nodeui.h +++ b/ui/nodeui.h @@ -18,12 +18,16 @@ protected: virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override; virtual void mousePressEvent(QGraphicsSceneMouseEvent * event) override; + virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override; + virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; private: QVector GetNodeSocketRects(); EffectUI* central_widget_; QGraphicsProxyWidget* proxy_; QPainterPath path_; + + bool clicked_socket_; }; #endif // NODEUI_H