Attach and Unattach apply to entire selection (#4651)

* (un)attach applies to entire selection

* additional code formatting, just because it's nicer

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
This commit is contained in:
cajun 2022-08-25 20:26:29 -05:00 committed by GitHub
parent a2624e36f3
commit b5305aa5e4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 72 additions and 29 deletions

View file

@ -138,8 +138,8 @@ void ArrowItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
}
QList<QGraphicsItem *> colliding = scene()->items(event->scenePos());
for (int i = 0; i < colliding.size(); ++i) {
if (qgraphicsitem_cast<CardItem *>(colliding[i])) {
for (QGraphicsItem *item : colliding) {
if (qgraphicsitem_cast<CardItem *>(item)) {
event->ignore();
return;
}
@ -205,8 +205,8 @@ void ArrowDragItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
}
update();
for (int i = 0; i < childArrows.size(); ++i) {
childArrows[i]->mouseMoveEvent(event);
for (ArrowDragItem *child : childArrows) {
child->mouseMoveEvent(event);
}
}
@ -251,8 +251,9 @@ void ArrowDragItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
}
delArrow();
for (int i = 0; i < childArrows.size(); ++i)
childArrows[i]->mouseReleaseEvent(event);
for (ArrowDragItem *child : childArrows) {
child->mouseReleaseEvent(event);
}
}
ArrowAttachItem::ArrowAttachItem(ArrowTarget *_startItem)
@ -260,6 +261,11 @@ ArrowAttachItem::ArrowAttachItem(ArrowTarget *_startItem)
{
}
void ArrowAttachItem::addChildArrow(ArrowAttachItem *childArrow)
{
childArrows.append(childArrow);
}
void ArrowAttachItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if (!startItem)
@ -295,9 +301,13 @@ void ArrowAttachItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
updatePath();
}
update();
for (ArrowAttachItem *child : childArrows) {
child->mouseMoveEvent(event);
}
}
void ArrowAttachItem::mouseReleaseEvent(QGraphicsSceneMouseEvent * /*event*/)
void ArrowAttachItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
if (!startItem)
return;
@ -319,4 +329,8 @@ void ArrowAttachItem::mouseReleaseEvent(QGraphicsSceneMouseEvent * /*event*/)
}
delArrow();
for (ArrowAttachItem *child : childArrows) {
child->mouseReleaseEvent(event);
}
}