feat: drag connect nodes
This commit is contained in:
@@ -263,3 +263,13 @@ void Network::keyReleaseEvent(QKeyEvent *event)
|
|||||||
highlightEdge(prevHoverItem_, false);
|
highlightEdge(prevHoverItem_, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Network::mouseReleaseEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
QList<QGraphicsItem*> hoverItems = view_->items(event->pos());
|
||||||
|
QGraphicsItem* hoverSocket = itemOfType<SocketGraphic>(hoverItems);
|
||||||
|
if(floatingEdge_ && hoverSocket)
|
||||||
|
{
|
||||||
|
socketClicked(static_cast<SocketGraphic*>(hoverSocket), event);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -62,4 +62,5 @@ private:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
void resizeEvent(QResizeEvent *event) override;
|
void resizeEvent(QResizeEvent *event) override;
|
||||||
|
void mouseReleaseEvent(QMouseEvent *event) override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,6 +34,23 @@ void NetworkGraphicsView::initUI()
|
|||||||
setViewportUpdateMode(ViewportUpdateMode::FullViewportUpdate);
|
setViewportUpdateMode(ViewportUpdateMode::FullViewportUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NetworkGraphicsView::mouseReleaseEvent(QMouseEvent *event) {
|
||||||
|
// pass event to parent
|
||||||
|
QGraphicsView::mouseReleaseEvent(event);
|
||||||
|
|
||||||
|
if (parentWidget()) {
|
||||||
|
QMouseEvent *eventCopy = new QMouseEvent(
|
||||||
|
event->type(),
|
||||||
|
event->position(),
|
||||||
|
event->scenePosition(),
|
||||||
|
event->globalPosition(),
|
||||||
|
event->button(),
|
||||||
|
event->buttons(),
|
||||||
|
event->modifiers()
|
||||||
|
);
|
||||||
|
QCoreApplication::postEvent(parentWidget(), eventCopy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void NetworkGraphicsView::mousePressEvent(QMouseEvent *event)
|
void NetworkGraphicsView::mousePressEvent(QMouseEvent *event)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ private:
|
|||||||
protected:
|
protected:
|
||||||
void mouseMoveEvent(QMouseEvent *mouseEvent) override;
|
void mouseMoveEvent(QMouseEvent *mouseEvent) override;
|
||||||
void mousePressEvent(QMouseEvent *event) override;
|
void mousePressEvent(QMouseEvent *event) override;
|
||||||
|
void mouseReleaseEvent(QMouseEvent *event) override;
|
||||||
void leftMousePress(QMouseEvent *event);
|
void leftMousePress(QMouseEvent *event);
|
||||||
QGraphicsItem* getItemAtClick(QMouseEvent *event);
|
QGraphicsItem* getItemAtClick(QMouseEvent *event);
|
||||||
void wheelEvent(QWheelEvent *event) override;
|
void wheelEvent(QWheelEvent *event) override;
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ SocketGraphic* NodeGraphic::getOutput(int indx) const
|
|||||||
QRectF NodeGraphic::boundingRect() const
|
QRectF NodeGraphic::boundingRect() const
|
||||||
{
|
{
|
||||||
QRectF boundRect = bodyRect_;
|
QRectF boundRect = bodyRect_;
|
||||||
float padding = 10;
|
float padding = 0;
|
||||||
boundRect.adjust(-padding, -padding, padding, padding);
|
boundRect.adjust(-padding, -padding, padding, padding);
|
||||||
return boundRect;
|
return boundRect;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user