diff --git a/src/lib_gui/qt/graphics/base/QtGraphicsView.cpp b/src/lib_gui/qt/graphics/base/QtGraphicsView.cpp index 3987582f..69cf3c6e 100644 --- a/src/lib_gui/qt/graphics/base/QtGraphicsView.cpp +++ b/src/lib_gui/qt/graphics/base/QtGraphicsView.cpp @@ -254,6 +254,12 @@ void QtGraphicsView::mousePressEvent(QMouseEvent *event) QGraphicsView::mousePressEvent(event); } +void QtGraphicsView::mouseMoveEvent(QMouseEvent *event) +{ + QtGraphEdge::unfocusBezierEdge(); + QGraphicsView::mouseMoveEvent(event); +} + void QtGraphicsView::mouseReleaseEvent(QMouseEvent *event) { if (event->button() == Qt::LeftButton && !itemAt(event->pos()) && event->pos() == m_last) diff --git a/src/lib_gui/qt/graphics/base/QtGraphicsView.h b/src/lib_gui/qt/graphics/base/QtGraphicsView.h index 79af3860..7251db41 100644 --- a/src/lib_gui/qt/graphics/base/QtGraphicsView.h +++ b/src/lib_gui/qt/graphics/base/QtGraphicsView.h @@ -37,6 +37,7 @@ protected: void resizeEvent(QResizeEvent* event); void mousePressEvent(QMouseEvent* event); + void mouseMoveEvent(QMouseEvent* event); void mouseReleaseEvent(QMouseEvent* event); void keyPressEvent(QKeyEvent* event); diff --git a/src/lib_gui/qt/graphics/graph/QtGraphEdge.cpp b/src/lib_gui/qt/graphics/graph/QtGraphEdge.cpp index 838ad223..0d43a219 100644 --- a/src/lib_gui/qt/graphics/graph/QtGraphEdge.cpp +++ b/src/lib_gui/qt/graphics/graph/QtGraphEdge.cpp @@ -26,6 +26,14 @@ QtGraphEdge* QtGraphEdge::s_focusedEdge = nullptr; QtGraphEdge* QtGraphEdge::s_focusedBezierEdge = nullptr; +void QtGraphEdge::unfocusBezierEdge() +{ + if (s_focusedBezierEdge) + { + s_focusedBezierEdge->focusOut(); + } +} + QtGraphEdge::QtGraphEdge( QtGraphNode* owner, QtGraphNode* target, diff --git a/src/lib_gui/qt/graphics/graph/QtGraphEdge.h b/src/lib_gui/qt/graphics/graph/QtGraphEdge.h index 10309dd8..cb966297 100644 --- a/src/lib_gui/qt/graphics/graph/QtGraphEdge.h +++ b/src/lib_gui/qt/graphics/graph/QtGraphEdge.h @@ -21,6 +21,8 @@ class QtGraphEdge Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity) public: + static void unfocusBezierEdge(); + QtGraphEdge( QtGraphNode* owner, QtGraphNode* target,