summaryrefslogtreecommitdiff
path: root/src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp
diff options
context:
space:
mode:
authorArtem Sokolovskii <artem.sokolovskii@qt.io>2022-12-20 13:23:39 +0100
committerArtem Sokolovskii <artem.sokolovskii@qt.io>2023-01-03 14:45:31 +0000
commitd2f1ac542f077ca3518a611f3246d5731d678231 (patch)
treee83a2f777a242cc5509136b2da57de5c18eadf89 /src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp
parente1ae96647d60a262244fbfb8dd43485361d55e74 (diff)
downloadqt-creator-d2f1ac542f077ca3518a611f3246d5731d678231.tar.gz
modelinglib: Remove foreach usage part 2
Change-Id: Ia898cc019a0534a97d20a3dc48e69c6617773766 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp')
-rw-r--r--src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp35
1 files changed, 20 insertions, 15 deletions
diff --git a/src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp b/src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp
index 5c65094859..61a9d6e904 100644
--- a/src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp
+++ b/src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp
@@ -184,7 +184,7 @@ public:
~AddElementsCommand() override
{
- foreach (const Clone &clone, m_clonedElements)
+ for (const Clone &clone : std::as_const(m_clonedElements))
delete clone.m_clonedElement;
}
@@ -314,7 +314,7 @@ public:
~RemoveElementsCommand() override
{
- foreach (const Clone &clone, m_clonedElements)
+ for (const Clone &clone : std::as_const(m_clonedElements))
delete clone.m_clonedElement;
}
@@ -722,8 +722,8 @@ void ModelController::finishUpdateObject(MObject *object, bool cancelled)
if (!m_isResettingModel) {
emit endUpdateObject(row, parent);
if (!cancelled) {
- QList<MRelation *> relations = findRelationsOfObject(object);
- foreach (MRelation *relation, relations)
+ const QList<MRelation *> relations = findRelationsOfObject(object);
+ for (MRelation *relation : relations)
emit relationEndChanged(relation, object);
if (auto package = dynamic_cast<MPackage *>(object)) {
if (m_oldPackageName != package->name())
@@ -892,7 +892,8 @@ MContainer ModelController::copyElements(const MSelection &modelSelection)
{
MReferences simplifiedSelection = simplify(modelSelection);
MContainer copiedElements;
- foreach (MElement *element, simplifiedSelection.elements()) {
+ const QList<MElement *> elements = simplifiedSelection.elements();
+ for (MElement *element : elements) {
MCloneDeepVisitor visitor;
element->accept(&visitor);
MElement *clonedElement = visitor.cloned();
@@ -906,7 +907,8 @@ void ModelController::pasteElements(MObject *owner, const MReferences &modelCont
// clone all elements and renew their keys
QHash<Uid, Uid> renewedKeys;
QList<MElement *> clonedElements;
- foreach (MElement *element, modelContainer.elements()) {
+ const QList<MElement *> elements = modelContainer.elements();
+ for (MElement *element : elements) {
if (option == PasteAlwaysWithNewKeys || option == PasteAlwaysAndKeepKeys || !findElement(element->uid())) {
MCloneDeepVisitor visitor;
element->accept(&visitor);
@@ -917,13 +919,13 @@ void ModelController::pasteElements(MObject *owner, const MReferences &modelCont
}
}
// fix all keys referencing between pasting elements
- foreach (MElement *clonedElement, clonedElements)
+ for (MElement *clonedElement : std::as_const(clonedElements))
updateRelationKeys(clonedElement, renewedKeys);
if (m_undoController)
m_undoController->beginMergeSequence(tr("Paste"));
// insert all elements
bool added = false;
- foreach (MElement *clonedElement, clonedElements) {
+ for (MElement *clonedElement : std::as_const(clonedElements)) {
if (auto object = dynamic_cast<MObject *>(clonedElement)) {
MObject *objectOwner = owner;
if (!dynamic_cast<MPackage*>(owner))
@@ -974,7 +976,8 @@ void ModelController::deleteElements(const MSelection &modelSelection, const QSt
if (m_undoController)
m_undoController->beginMergeSequence(commandLabel);
bool removed = false;
- foreach (MElement *element, simplifiedSelection.elements()) {
+ const QList<MElement *> elements = simplifiedSelection.elements();
+ for (MElement *element : elements) {
// element may have been deleted indirectly by predecessor element in loop
if ((element = findElement(element->uid()))) {
if (auto object = dynamic_cast<MObject *>(element)) {
@@ -1018,7 +1021,8 @@ void ModelController::deleteElements(const MSelection &modelSelection, const QSt
void ModelController::removeRelatedRelations(MObject *object)
{
- foreach (MRelation *relation, m_objectRelationsMap.values(object->uid()))
+ const QList<MRelation *> relations = m_objectRelationsMap.values(object->uid());
+ for (MRelation *relation : relations)
removeRelation(relation);
QMT_CHECK(m_objectRelationsMap.values(object->uid()).isEmpty());
}
@@ -1126,7 +1130,8 @@ MReferences ModelController::simplify(const MSelection &modelSelection)
{
// PERFORM improve performance by using a set of Uid build from modelSelection
MReferences references;
- foreach (const MSelection::Index &index, modelSelection.indices()) {
+ const QList<MSelection::Index> indices = modelSelection.indices();
+ for (const MSelection::Index &index : indices) {
MElement *element = findElement(index.elementKey());
QMT_ASSERT(element, return MReferences());
// if any (grand-)parent of element is in modelSelection then ignore element
@@ -1134,8 +1139,8 @@ MReferences ModelController::simplify(const MSelection &modelSelection)
MObject *owner = element->owner();
while (owner) {
Uid ownerKey = owner->uid();
- foreach (const MSelection::Index &index, modelSelection.indices()) {
- if (index.elementKey() == ownerKey) {
+ for (const MSelection::Index &otherIndex : indices) {
+ if (otherIndex.elementKey() == ownerKey) {
ignore = true;
break;
}
@@ -1162,13 +1167,13 @@ void ModelController::verifyModelIntegrity() const
verifyModelIntegrity(m_rootPackage, &objectsMap, &relationsMap, &objectRelationsMap);
QMT_ASSERT(objectsMap.size() == m_objectsMap.size(), return);
- foreach (const MObject *object, m_objectsMap) {
+ for (const MObject *object : m_objectsMap) {
QMT_ASSERT(object, return);
QMT_ASSERT(m_objectsMap.contains(object->uid()), return);
QMT_ASSERT(objectsMap.contains(object->uid()), return);
}
QMT_ASSERT(relationsMap.size() == m_relationsMap.size(), return);
- foreach (const MRelation *relation, m_relationsMap) {
+ for (const MRelation *relation : m_relationsMap) {
QMT_ASSERT(relation, return);
QMT_ASSERT(m_relationsMap.contains(relation->uid()), return);
QMT_ASSERT(relationsMap.contains(relation->uid()), return);