Skip to content

Commit a13cabc

Browse files
author
Sergey Agafonov
committed
fixed bug with removing groupitem
1 parent fcc3329 commit a13cabc

2 files changed

Lines changed: 16 additions & 10 deletions

File tree

src/nodeitem.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,8 @@ void NodeItem::removePort(PortItem *port)
298298
nView->removePortConnections(port);
299299

300300
m_portList.removeOne(port);
301-
scene()->removeItem(port);
301+
port->disconnect();
302+
port->deleteLater();
302303
}
303304
}
304305
}

src/nodeview.cpp

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,8 @@ void NodeView::mousePressEvent(QMouseEvent *e)
131131
else emit calledMenuView();
132132
}
133133

134-
QGraphicsView::mousePressEvent(e);
135134
update();
135+
QGraphicsView::mousePressEvent(e);
136136
}
137137

138138
void NodeView::mouseMoveEvent(QMouseEvent *e)
@@ -174,8 +174,8 @@ void NodeView::mouseReleaseEvent(QMouseEvent *e)
174174
}
175175

176176
m_moveScene = false;
177-
QGraphicsView::mouseReleaseEvent(e);
178177
update();
178+
QGraphicsView::mouseReleaseEvent(e);
179179
}
180180

181181
void NodeView::checkRopeCreation(const QPointF &point)
@@ -335,7 +335,8 @@ void NodeView::removeActiveRope()
335335
m_activeRope->removePortOut();
336336

337337
m_ropeList.removeOne(m_activeRope);
338-
m_scene->removeItem(m_activeRope);
338+
m_activeRope->disconnect();
339+
m_activeRope->deleteLater();
339340
m_activeRope = Q_NULLPTR;
340341
}
341342

@@ -395,7 +396,8 @@ void NodeView::removeNode(NodeItem *node)
395396
rope->removePortOut();
396397

397398
m_ropeList.removeOne(rope);
398-
m_scene->removeItem(rope);
399+
rope->disconnect();
400+
rope->deleteLater();
399401
}
400402

401403
port->disconnect();
@@ -406,7 +408,7 @@ void NodeView::removeNode(NodeItem *node)
406408
group->removeNode(node);
407409

408410
m_nodeList.removeOne(node);
409-
m_scene->removeItem(node);
411+
node->disconnect();
410412
node->deleteLater();
411413
}
412414

@@ -461,11 +463,13 @@ GroupItem *NodeView::getItemGroup(NodeItem *node)
461463

462464
void NodeView::removeGroup(GroupItem *group)
463465
{
466+
qDebug() << "NodeView::removeGroup" << group;
464467
if (!m_groupList.contains(group)) return;
465468

466-
group->clearNodes();
467469
m_groupList.removeOne(group);
468-
m_scene->removeItem(group);
470+
471+
group->disconnect();
472+
group->deleteLater();
469473
}
470474

471475
bool NodeView::createConnection(PortItem *portOut, PortItem *portIn)
@@ -494,7 +498,8 @@ void NodeView::removePortConnections(PortItem *port)
494498
foreach (RopeItem *rope, ropesToRemove)
495499
{
496500
m_ropeList.removeOne(rope);
497-
m_scene->removeItem(rope);
501+
rope->disconnect();
502+
rope->deleteLater();
498503
}
499504
}
500505

@@ -510,7 +515,7 @@ void NodeView::clearView()
510515

511516
foreach (GroupItem *group, m_groupList)
512517
{
513-
m_scene->removeItem(group);
518+
group->disconnect();
514519
group->deleteLater();
515520
}
516521

0 commit comments

Comments
 (0)