diff --git a/src/gui/network/NodeEdgeGraphic.cpp b/src/gui/network/NodeEdgeGraphic.cpp index f92cf78..ccdd131 100644 --- a/src/gui/network/NodeEdgeGraphic.cpp +++ b/src/gui/network/NodeEdgeGraphic.cpp @@ -4,10 +4,13 @@ #include #include #include +#include NodeEdgeGraphic::NodeEdgeGraphic(SocketGraphic* socket1, SocketGraphic* socket2, QGraphicsItem *parent) : QGraphicsItem(parent), socket1_{socket1}, socket2_{socket2}, defaultColor_{QColor("white")} { + setAcceptHoverEvents(true); + setZValue(-1); color_=defaultColor_; defaultPen_=QPen(defaultColor_); @@ -24,10 +27,10 @@ NodeEdgeGraphic::NodeEdgeGraphic(SocketGraphic* socket1, SocketGraphic* socket2, void NodeEdgeGraphic::updateDeleteHighlightPen() { - QLinearGradient gradient(pos1_, pos2_); + QLinearGradient gradient(pos1_, hoverPos_); gradient.setColorAt(0.0, QColor(255, 74, 74, 200)); - gradient.setColorAt(0.5, QColor(255, 74, 74, 50)); - gradient.setColorAt(1.0, QColor(255, 74, 74, 200)); + gradient.setColorAt(1, QColor(255, 74, 74, 50)); + // gradient.setColorAt(1.0, QColor(255, 74, 74, 200)); deleteHighlightPen_.setBrush(QBrush(gradient)); } @@ -39,6 +42,16 @@ NodeEdgeGraphic::~NodeEdgeGraphic() std::cout << "destructor finished\n"; } +void NodeEdgeGraphic::hoverMoveEvent(QGraphicsSceneHoverEvent *event) +{ + hoverPos_ = event->scenePos(); + if(deleteHighlight_) + { + updateDeleteHighlightPen(); + update(); + } +} + void NodeEdgeGraphic::updatePath() { qreal cubicStrength = 40; diff --git a/src/gui/network/NodeEdgeGraphic.h b/src/gui/network/NodeEdgeGraphic.h index e29042b..1420da5 100644 --- a/src/gui/network/NodeEdgeGraphic.h +++ b/src/gui/network/NodeEdgeGraphic.h @@ -37,7 +37,10 @@ private: QPainterPath path_; QRectF boundRect_; qreal padding_=40; + QPointF hoverPos_; void updatePath(); +protected: + void hoverMoveEvent(QGraphicsSceneHoverEvent *event) override; };