aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/modelinglib
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2022-06-13 09:38:01 +0200
committerChristian Stenger <christian.stenger@qt.io>2022-06-14 12:47:59 +0000
commit6c4d5ef3c7a74ff18d29c624c56b44bea6cfdc88 (patch)
tree24a248d7e2bbd0ace855cbe6cf43e69e445c5895 /src/libs/modelinglib
parenta370c154d09e1a5d744cffa434c742de7eee6121 (diff)
Modeling: Fix crash while reset model
Fixes: QTCREATORBUG-27226 Change-Id: I1333379a99ff5ebd08b121f2f014c6971a192699 Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/libs/modelinglib')
-rw-r--r--src/libs/modelinglib/qmt/diagram_controller/diagramcontroller.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/libs/modelinglib/qmt/diagram_controller/diagramcontroller.cpp b/src/libs/modelinglib/qmt/diagram_controller/diagramcontroller.cpp
index f7d7e702e5..72eef3ef74 100644
--- a/src/libs/modelinglib/qmt/diagram_controller/diagramcontroller.cpp
+++ b/src/libs/modelinglib/qmt/diagram_controller/diagramcontroller.cpp
@@ -557,9 +557,11 @@ void DiagramController::onBeginResetModel()
void DiagramController::onEndResetModel()
{
updateAllDiagramsList();
- foreach (MDiagram *diagram, m_allDiagrams) {
+ for (MDiagram *diagram : qAsConst(m_allDiagrams)) {
+ const QList<DElement *> elements = diagram->diagramElements();
// remove all elements which are not longer part of the model
- foreach (DElement *element, diagram->diagramElements()) {
+ for (int i = elements.size() - 1; i >= 0; --i) {
+ DElement *element = elements.at(i);
if (element->modelUid().isValid()) {
MElement *modelElement = m_modelController->findElement(element->modelUid());
if (!modelElement)
@@ -567,7 +569,7 @@ void DiagramController::onEndResetModel()
}
}
// update all remaining elements from model
- foreach (DElement *element, diagram->diagramElements())
+ for (DElement *element : diagram->diagramElements())
updateElementFromModel(element, diagram, false);
}
emit endResetAllDiagrams();