diff --git a/agui2/src/Graphics/Connection/Connection.cpp b/agui2/src/Graphics/Connection/Connection.cpp index 786e0d162b0296f306b2750fc9e6b1cba944efd8..426357230d3f67b362b88b2232c0a341d90231fe 100644 --- a/agui2/src/Graphics/Connection/Connection.cpp +++ b/agui2/src/Graphics/Connection/Connection.cpp @@ -12,13 +12,13 @@ #define SHORTEST_LINE 20.0 Connection::Connection(OutputConnectionBox* origin, InputConnectionBox* target) - : originConnectionBox(origin) + : QGraphicsItem(origin) + , originConnectionBox(origin) , targetConnectionBox(target) { this->setZValue(2); - this->boundRect = Utils::pointsToRect(origin->pos(), target->pos()); + this->boundRect = Utils::pointsToRect({}, target->pos() - origin->pos()); this->boundRect.adjust(-1, -1, 1, 1); - origin->scene()->addItem(this); origin->scene()->update(); auto* originModel = origin->getParent()->getModelBox(); @@ -35,8 +35,8 @@ QRectF Connection::boundingRect() const { void Connection::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { painter->setPen(QPen(Qt::black,1)); - QPointF originPoint = this->originConnectionBox->scenePos(); - QPointF targetPoint = this->targetConnectionBox->scenePos(); + QPointF originPoint; + QPointF targetPoint = this->targetConnectionBox->scenePos() - this->originConnectionBox->scenePos(); if ((targetPoint.x() - originPoint.x()) > SHORTEST_LINE * 2) this->drawDirectConnection(painter, originPoint, targetPoint);