From 3d05611726686e826ddeaf435d2c61628576cdad Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 23 Nov 2022 23:23:52 +0100 Subject: ModelingLib: Replace foreach with range-based for loops Change-Id: I3e51c9477b6995ec06b119fb4518a53aa1d71ec9 Reviewed-by: hjk Reviewed-by: Qt CI Bot --- src/libs/modelinglib/qmt/config/textscanner.cpp | 8 +-- .../qmt/diagram_controller/diagramcontroller.cpp | 50 +++++++------ .../qmt/diagram_scene/diagramscenemodel.cpp | 81 ++++++++++++---------- src/libs/modelinglib/qmt/infrastructure/handles.h | 8 +-- .../qmt/model_widgets_ui/propertiesviewmview.cpp | 39 ++++++----- .../qmt/model_widgets_ui/propertiesviewmview.h | 6 +- .../qmt/stereotype/stereotypecontroller.cpp | 16 +++-- .../modelinglib/qmt/style/defaultstyleengine.cpp | 5 +- .../qtserialization/inc/qark/serialize_container.h | 12 ++-- 9 files changed, 124 insertions(+), 101 deletions(-) (limited to 'src/libs/modelinglib') diff --git a/src/libs/modelinglib/qmt/config/textscanner.cpp b/src/libs/modelinglib/qmt/config/textscanner.cpp index 7ff31a20ac5..3c8b0b7e7a8 100644 --- a/src/libs/modelinglib/qmt/config/textscanner.cpp +++ b/src/libs/modelinglib/qmt/config/textscanner.cpp @@ -55,7 +55,7 @@ TextScanner::~TextScanner() void TextScanner::setKeywords(const QList> &keywords) { d->m_keywordToSubtypeMap.clear(); - foreach (const DefTuple &tuple, keywords) + for (const DefTuple &tuple : keywords) d->m_keywordToSubtypeMap.insert(tuple.first.toLower(), tuple.second); } @@ -65,13 +65,13 @@ void TextScanner::setOperators(const QList> &operators) d->m_maxOperatorLength = 0; d->m_operatorFirstCharsSet.clear(); d->m_operatorCharsSet.clear(); - foreach (const DefTuple &tuple, operators) { - QString op = tuple.first; + for (const DefTuple &tuple : operators) { + const QString op = tuple.first; d->m_operatorToSubtypeMap.insert(op, tuple.second); if (op.length() > d->m_maxOperatorLength) d->m_maxOperatorLength = op.length(); d->m_operatorFirstCharsSet.insert(op.at(0)); - foreach (const QChar ch, op) + for (const QChar ch : op) d->m_operatorCharsSet.insert(ch); } } diff --git a/src/libs/modelinglib/qmt/diagram_controller/diagramcontroller.cpp b/src/libs/modelinglib/qmt/diagram_controller/diagramcontroller.cpp index 57c99db0c2f..4703da36d8a 100644 --- a/src/libs/modelinglib/qmt/diagram_controller/diagramcontroller.cpp +++ b/src/libs/modelinglib/qmt/diagram_controller/diagramcontroller.cpp @@ -97,7 +97,7 @@ public: return false; } // join other elements into this command - foreach (const DElement *otherElement, otherUpdateCommand->m_clonedElements) { + for (const DElement *otherElement : std::as_const(otherUpdateCommand->m_clonedElements)) { if (!m_clonedElements.contains(otherElement->uid())) { DCloneVisitor visitor; otherElement->accept(&visitor); @@ -127,7 +127,7 @@ private: { DiagramController *diagramController = this->diagramController(); MDiagram *diagram = this->diagram(); - foreach (DElement *clonedElement, m_clonedElements) { + for (DElement *clonedElement : std::as_const(m_clonedElements)) { DElement *activeElement = diagramController->findElement(clonedElement->uid(), diagram); QMT_ASSERT(activeElement, return); int row = diagram->diagramElements().indexOf(activeElement); @@ -163,7 +163,7 @@ protected: ~AbstractAddRemCommand() override { - foreach (const Clone &clone, m_clonedElements) + for (const Clone &clone : std::as_const(m_clonedElements)) delete clone.m_clonedElement; } @@ -450,7 +450,8 @@ DContainer DiagramController::copyElements(const DSelection &diagramSelection, c DReferences simplifiedSelection = simplify(diagramSelection, diagram); DContainer copiedElements; - foreach (const DElement *element, simplifiedSelection.elements()) { + const QList elements = simplifiedSelection.elements(); + for (const DElement *element : elements) { DCloneDeepVisitor visitor; element->accept(&visitor); DElement *clonedElement = visitor.cloned(); @@ -466,7 +467,8 @@ void DiagramController::pasteElements(const DReferences &diagramContainer, MDiag // clone all elements and renew their keys QHash renewedKeys; QList clonedElements; - foreach (const DElement *element, diagramContainer.elements()) { + const QList elements = diagramContainer.elements(); + for (const DElement *element : elements) { if (!isDelegatedElementOnDiagram(element, diagram)) { DCloneDeepVisitor visitor; element->accept(&visitor); @@ -476,7 +478,7 @@ void DiagramController::pasteElements(const DReferences &diagramContainer, MDiag } } // fix all keys referencing between pasting elements - foreach(DElement *clonedElement, clonedElements) { + for (DElement *clonedElement : std::as_const(clonedElements)) { auto relation = dynamic_cast(clonedElement); if (relation) updateRelationKeys(relation, renewedKeys); @@ -485,7 +487,7 @@ void DiagramController::pasteElements(const DReferences &diagramContainer, MDiag m_undoController->beginMergeSequence(tr("Paste")); // insert all elements bool added = false; - foreach (DElement *clonedElement, clonedElements) { + for (DElement *clonedElement : std::as_const(clonedElements)) { if (!dynamic_cast(clonedElement)) { int row = diagram->diagramElements().size(); emit beginInsertElement(row, diagram); @@ -499,7 +501,7 @@ void DiagramController::pasteElements(const DReferences &diagramContainer, MDiag added = true; } } - foreach (DElement *clonedElement, clonedElements) { + for (DElement *clonedElement : std::as_const(clonedElements)) { auto clonedRelation = dynamic_cast(clonedElement); if (clonedRelation && areRelationEndsOnDiagram(clonedRelation, diagram)) { int row = diagram->diagramElements().size(); @@ -567,14 +569,15 @@ void DiagramController::onEndUpdateObject(int row, const MObject *parent) MObject *modelObject = m_modelController->object(row, parent); QMT_ASSERT(modelObject, return); auto modelPackage = dynamic_cast(modelObject); - foreach (MDiagram *diagram, m_allDiagrams) { + for (MDiagram *diagram : std::as_const(m_allDiagrams)) { DObject *object = findDelegate(modelObject, diagram); if (object) { updateElementFromModel(object, diagram, true); } if (modelPackage) { // update each element that has the updated object as its owner (for context changes) - foreach (DElement *diagramElement, diagram->diagramElements()) { + const QList elements = diagram->diagramElements(); + for (DElement *diagramElement : elements) { if (diagramElement->modelUid().isValid()) { MObject *mobject = m_modelController->findObject(diagramElement->modelUid()); if (mobject && mobject->owner() == modelPackage) @@ -634,7 +637,8 @@ void DiagramController::onEndMoveObject(int row, const MObject *owner) auto modelDiagram = dynamic_cast(modelObject); if (modelDiagram) { emit beginResetDiagram(modelDiagram); - foreach (DElement *diagramElement, modelDiagram->diagramElements()) + const QList elements = modelDiagram->diagramElements(); + for (DElement *diagramElement : elements) updateElementFromModel(diagramElement, modelDiagram, false); emit endResetDiagram(modelDiagram); } @@ -652,7 +656,7 @@ void DiagramController::onBeginUpdateRelation(int row, const MObject *owner) void DiagramController::onEndUpdateRelation(int row, const MObject *owner) { MRelation *modelRelation = owner->relations().at(row); - foreach (MDiagram *diagram, m_allDiagrams) { + for (MDiagram *diagram : std::as_const(m_allDiagrams)) { DRelation *relation = findDelegate(modelRelation, diagram); if (relation) { updateElementFromModel(relation, diagram, true); @@ -699,7 +703,8 @@ void DiagramController::deleteElements(const DSelection &diagramSelection, MDiag if (m_undoController) m_undoController->beginMergeSequence(commandLabel); bool removed = false; - foreach (DElement *element, simplifiedSelection.elements()) { + const QList elements = simplifiedSelection.elements(); + for (DElement *element : elements) { // element may have been deleted indirectly by predecessor element in loop if ((element = findElement(element->uid(), diagram))) { removeRelations(element, diagram); @@ -724,7 +729,7 @@ void DiagramController::deleteElements(const DSelection &diagramSelection, MDiag DElement *DiagramController::findElementOnAnyDiagram(const Uid &uid) { - foreach (MDiagram *diagram, m_allDiagrams) { + for (MDiagram *diagram : std::as_const(m_allDiagrams)) { DElement *element = findElement(uid, diagram); if (element) return element; @@ -734,7 +739,7 @@ DElement *DiagramController::findElementOnAnyDiagram(const Uid &uid) void DiagramController::removeObjects(MObject *modelObject) { - foreach (MDiagram *diagram, m_allDiagrams) { + for (MDiagram *diagram : std::as_const(m_allDiagrams)) { DElement *diagramElement = findDelegate(modelObject, diagram); if (diagramElement) removeElement(diagramElement, diagram); @@ -764,7 +769,7 @@ void DiagramController::removeObjects(MObject *modelObject) void DiagramController::removeRelations(MRelation *modelRelation) { - foreach (MDiagram *diagram, m_allDiagrams) { + for (MDiagram *diagram : std::as_const(m_allDiagrams)) { DElement *diagramElement = findDelegate(modelRelation, diagram); if (diagramElement) removeElement(diagramElement, diagram); @@ -776,7 +781,8 @@ void DiagramController::removeRelations(DElement *element, MDiagram *diagram) { auto diagramObject = dynamic_cast(element); if (diagramObject) { - foreach (DElement *diagramElement, diagram->diagramElements()) { + const QList elements = diagram->diagramElements(); + for (DElement *diagramElement : elements) { if (auto diagramRelation = dynamic_cast(diagramElement)) { if (diagramRelation->endAUid() == diagramObject->uid() || diagramRelation->endBUid() == diagramObject->uid()) { @@ -851,7 +857,8 @@ void DiagramController::diagramModified(MDiagram *diagram) DReferences DiagramController::simplify(const DSelection &diagramSelection, const MDiagram *diagram) { DReferences references; - foreach (const DSelection::Index &index, diagramSelection.indices()) { + const QList indices = diagramSelection.indices(); + for (const DSelection::Index &index : indices) { DElement *element = findElement(index.elementKey(), diagram); if (element) references.append(element); @@ -898,7 +905,7 @@ void DiagramController::verifyDiagramsIntegrity() m_modelController->rootPackage()->accept(&visitor); } QMT_ASSERT(allDiagrams == m_allDiagrams, return); - foreach (const MDiagram *diagram, allDiagrams) + for (MDiagram *diagram : std::as_const(m_allDiagrams)) verifyDiagramIntegrity(diagram); } } @@ -906,7 +913,8 @@ void DiagramController::verifyDiagramsIntegrity() void DiagramController::verifyDiagramIntegrity(const MDiagram *diagram) { QHash delementsMap; - foreach (const DElement *delement, diagram->diagramElements()) { + const QList elements = diagram->diagramElements(); + for (const DElement *delement : elements) { delementsMap.insert(delement->uid(), delement); if (dynamic_cast(delement) || dynamic_cast(delement)) { QMT_ASSERT(delement->modelUid().isValid(), return); @@ -921,7 +929,7 @@ void DiagramController::verifyDiagramIntegrity(const MDiagram *diagram) QMT_ASSERT(!delement->modelUid().isValid(), return); } } - foreach (const DElement *delement, diagram->diagramElements()) { + for (const DElement *delement : elements) { if (const DRelation *drelation = dynamic_cast(delement)) { QMT_ASSERT(drelation->endAUid().isValid(), return); QMT_ASSERT(delementsMap.contains(drelation->endAUid()), return); diff --git a/src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp b/src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp index dbb363646c9..93c7bda96e4 100644 --- a/src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp +++ b/src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp @@ -184,7 +184,8 @@ bool DiagramSceneModel::hasSelection() const bool DiagramSceneModel::hasMultiObjectsSelection() const { int count = 0; - foreach (QGraphicsItem *item, m_graphicsScene->selectedItems()) { + const QList items = m_graphicsScene->selectedItems(); + for (QGraphicsItem *item : items) { DElement *element = m_itemToElementMap.value(item); QMT_CHECK(element); if (dynamic_cast(element)) { @@ -199,7 +200,8 @@ bool DiagramSceneModel::hasMultiObjectsSelection() const DSelection DiagramSceneModel::selectedElements() const { DSelection selection; - foreach (QGraphicsItem *item, m_graphicsScene->selectedItems()) { + const QList items = m_graphicsScene->selectedItems(); + for (QGraphicsItem *item : items) { DElement *element = m_itemToElementMap.value(item); QMT_ASSERT(element, return selection); selection.append(element->uid(), m_diagram->uid()); @@ -210,8 +212,8 @@ DSelection DiagramSceneModel::selectedElements() const DElement *DiagramSceneModel::findTopmostElement(const QPointF &scenePos) const { // fetch affected items from scene in correct drawing order to find topmost element - QList items = m_graphicsScene->items(scenePos); - foreach (QGraphicsItem *item, items) { + const QList items = m_graphicsScene->items(scenePos); + for (QGraphicsItem *item : items) { if (m_graphicsItems.contains(item)) return m_itemToElementMap.value(item); } @@ -273,7 +275,8 @@ bool DiagramSceneModel::isInFrontOf(const QGraphicsItem *frontItem, const QGraph // shortcut for usual case of root items if (!frontItem->parentItem() && !backItem->parentItem()) { - foreach (const QGraphicsItem *item, m_graphicsScene->items()) { + const QList items = m_graphicsScene->items(); + for (const QGraphicsItem *item : items) { if (item == frontItem) return true; else if (item == backItem) @@ -329,7 +332,7 @@ bool DiagramSceneModel::isInFrontOf(const QGraphicsItem *frontItem, const QGraph children = frontStack.at(frontIndex + 1)->childItems(); else children = m_graphicsScene->items(Qt::AscendingOrder); - foreach (const QGraphicsItem *item, children) { + for (const QGraphicsItem *item : std::as_const(children)) { if (item == frontItem) return false; else if (item == backItem) @@ -343,14 +346,14 @@ bool DiagramSceneModel::isInFrontOf(const QGraphicsItem *frontItem, const QGraph void DiagramSceneModel::selectAllElements() { - foreach (QGraphicsItem *item, m_graphicsItems) + for (QGraphicsItem *item : std::as_const(m_graphicsItems)) item->setSelected(true); } void DiagramSceneModel::selectElement(DElement *element) { QGraphicsItem *selectItem = m_elementToItemMap.value(element); - foreach (QGraphicsItem *item, m_selectedItems) { + for (QGraphicsItem *item : std::as_const(m_selectedItems)) { if (item != selectItem) item->setSelected(false); } @@ -504,7 +507,7 @@ void DiagramSceneModel::selectItem(QGraphicsItem *item, bool multiSelect) { if (!multiSelect) { if (!item->isSelected()) { - foreach (QGraphicsItem *selectedItem, m_selectedItems) { + for (QGraphicsItem *selectedItem : std::as_const(m_selectedItems)) { if (selectedItem != item) selectedItem->setSelected(false); } @@ -520,11 +523,11 @@ void DiagramSceneModel::moveSelectedItems(QGraphicsItem *grabbedItem, const QPoi Q_UNUSED(grabbedItem) if (delta != QPointF(0.0, 0.0)) { - foreach (QGraphicsItem *item, m_selectedItems) { + for (QGraphicsItem *item : std::as_const(m_selectedItems)) { if (auto moveable = dynamic_cast(item)) moveable->moveDelta(delta); } - foreach (QGraphicsItem *item, m_secondarySelectedItems) { + for (QGraphicsItem *item : std::as_const(m_secondarySelectedItems)) { if (auto moveable = dynamic_cast(item)) moveable->moveDelta(delta); } @@ -533,11 +536,11 @@ void DiagramSceneModel::moveSelectedItems(QGraphicsItem *grabbedItem, const QPoi void DiagramSceneModel::alignSelectedItemsPositionOnRaster() { - foreach (QGraphicsItem *item, m_selectedItems) { + for (QGraphicsItem *item : std::as_const(m_selectedItems)) { if (auto moveable = dynamic_cast(item)) moveable->alignItemPositionToRaster(RASTER_WIDTH, RASTER_HEIGHT); } - foreach (QGraphicsItem *item, m_secondarySelectedItems) { + for (QGraphicsItem *item : std::as_const(m_secondarySelectedItems)) { if (auto moveable = dynamic_cast(item)) moveable->alignItemPositionToRaster(RASTER_WIDTH, RASTER_HEIGHT); } @@ -563,7 +566,7 @@ QList DiagramSceneModel::collectCollidingObjectItems(const QGra switch (collidingMode) { case CollidingInnerItems: - foreach (QGraphicsItem *candidate, m_graphicsItems) { + for (QGraphicsItem *candidate : std::as_const(m_graphicsItems)) { if (auto candidateResizable = dynamic_cast(candidate)) { QRectF candidateRect = candidateResizable->rect(); candidateRect.translate(candidateResizable->pos()); @@ -575,7 +578,7 @@ QList DiagramSceneModel::collectCollidingObjectItems(const QGra } break; case CollidingItems: - foreach (QGraphicsItem *candidate, m_graphicsItems) { + for (QGraphicsItem *candidate : std::as_const(m_graphicsItems)) { if (auto candidateResizable = dynamic_cast(candidate)) { QRectF candidateRect = candidateResizable->rect(); candidateRect.translate(candidateResizable->pos()); @@ -587,7 +590,7 @@ QList DiagramSceneModel::collectCollidingObjectItems(const QGra } break; case CollidingOuterItems: - foreach (QGraphicsItem *candidate, m_graphicsItems) { + for (QGraphicsItem *candidate : std::as_const(m_graphicsItems)) { if (auto candidateResizable = dynamic_cast(candidate)) { QRectF candidateRect = candidateResizable->rect(); candidateRect.translate(candidateResizable->pos()); @@ -638,14 +641,15 @@ void DiagramSceneModel::mouseMoveEvent(QGraphicsSceneMouseEvent *event) void DiagramSceneModel::mouseMoveEventReparenting(QGraphicsSceneMouseEvent *event) { + const QList views = m_graphicsScene->views(); if (event->modifiers() & Qt::AltModifier) { // TODO show move cursor only if elements can be moved to underlaying element - foreach (QGraphicsView *view, m_graphicsScene->views()) { + for (QGraphicsView *view : views) { // TODO find a better cursor that signals "move to this package" view->setCursor(QCursor(Qt::OpenHandCursor)); } } else { - foreach (QGraphicsView *view, m_graphicsScene->views()) + for (QGraphicsView *view : views) view->unsetCursor(); } } @@ -662,8 +666,8 @@ void DiagramSceneModel::mouseReleaseEventReparenting(QGraphicsSceneMouseEvent *e ModelController *modelController = diagramController()->modelController(); MPackage *newOwner = nullptr; QSet selectedItemSet = Utils::toSet(m_graphicsScene->selectedItems()); - QList itemsUnderMouse = m_graphicsScene->items(event->scenePos()); - foreach (QGraphicsItem *item, itemsUnderMouse) { + const QList itemsUnderMouse = m_graphicsScene->items(event->scenePos()); + for (QGraphicsItem *item : itemsUnderMouse) { if (!selectedItemSet.contains(item)) { // the item may be any graphics item not matching to a DElement DElement *element = m_itemToElementMap.value(item); @@ -674,7 +678,8 @@ void DiagramSceneModel::mouseReleaseEventReparenting(QGraphicsSceneMouseEvent *e break; } if (newOwner) { - foreach (QGraphicsItem *item, m_graphicsScene->selectedItems()) { + const QList items = m_graphicsScene->selectedItems(); + for (QGraphicsItem *item : items) { DElement *element = m_itemToElementMap.value(item); QMT_ASSERT(element, return); if (element->modelUid().isValid()) { @@ -687,7 +692,8 @@ void DiagramSceneModel::mouseReleaseEventReparenting(QGraphicsSceneMouseEvent *e } } } - foreach (QGraphicsView *view, m_graphicsScene->views()) + const QList views = m_graphicsScene->views(); + for (QGraphicsView *view : views) view->unsetCursor(); } @@ -715,7 +721,8 @@ void DiagramSceneModel::onEndResetDiagram(const MDiagram *diagram) if (diagram == m_diagram) { QMT_CHECK(m_graphicsItems.size() == 0); // create all items and update graphics item from element initially - foreach (DElement *element, diagram->diagramElements()) { + const QList elements = diagram->diagramElements(); + for (DElement *element : elements) { QGraphicsItem *item = createGraphicsItem(element); m_graphicsItems.append(item); updateGraphicsItem(item, element); @@ -723,7 +730,7 @@ void DiagramSceneModel::onEndResetDiagram(const MDiagram *diagram) // invalidate scene m_graphicsScene->invalidate(); // update graphics items again so every item gets a correct list of colliding items - foreach (DElement *element, diagram->diagramElements()) + for (DElement *element : elements) updateGraphicsItem(m_elementToItemMap.value(element), element); recalcSceneRectSize(); } @@ -820,16 +827,16 @@ void DiagramSceneModel::onSelectionChanged() bool selectionChanged = false; // collect and update all primary selected items (selected by user) - QSet newSelectedItems = Utils::toSet(m_graphicsScene->selectedItems()); + const QSet newSelectedItems = Utils::toSet(m_graphicsScene->selectedItems()); updateFocusItem(newSelectedItems); - foreach (QGraphicsItem *item, m_selectedItems) { + for (QGraphicsItem *item : std::as_const(m_selectedItems)) { if (!newSelectedItems.contains(item)) { DElement *element = m_itemToElementMap.value(item); updateGraphicsItem(item, element); selectionChanged = true; } } - foreach (QGraphicsItem *item, newSelectedItems) { + for (QGraphicsItem *item : newSelectedItems) { if (!m_selectedItems.contains(item)) { DElement *element = m_itemToElementMap.value(item); updateGraphicsItem(item, element); @@ -842,8 +849,9 @@ void DiagramSceneModel::onSelectionChanged() QSet newSecondarySelectedItems; // select all contained objects secondarily - foreach (QGraphicsItem *selectedItem, m_selectedItems) { - foreach (QGraphicsItem *item, collectCollidingObjectItems(selectedItem, CollidingInnerItems)) { + for (QGraphicsItem *selectedItem : std::as_const(m_secondarySelectedItems)) { + const QList items = collectCollidingObjectItems(selectedItem, CollidingInnerItems); + for (QGraphicsItem *item : items) { if (!item->isSelected() && dynamic_cast(item) && item->collidesWithItem(selectedItem, Qt::ContainsItemBoundingRect) && isInFrontOf(item, selectedItem)) { @@ -875,7 +883,8 @@ void DiagramSceneModel::onSelectionChanged() // select all relations where both ends are primary or secondary selected - foreach (DElement *element, m_diagram->diagramElements()) { + const QList elements = m_diagram->diagramElements(); + for (DElement *element : elements) { auto relation = dynamic_cast(element); if (relation) { QGraphicsItem *relationItem = m_elementToItemMap.value(relation); @@ -897,7 +906,7 @@ void DiagramSceneModel::onSelectionChanged() } } - foreach (QGraphicsItem *item, m_secondarySelectedItems) { + for (QGraphicsItem *item : std::as_const(m_secondarySelectedItems)) { if (!newSecondarySelectedItems.contains(item)) { auto selectable = dynamic_cast(item); QMT_ASSERT(selectable, return); @@ -905,7 +914,7 @@ void DiagramSceneModel::onSelectionChanged() selectionChanged = true; } } - foreach (QGraphicsItem *item, newSecondarySelectedItems) { + for (QGraphicsItem *item : std::as_const(newSecondarySelectedItems)) { if (!m_secondarySelectedItems.contains(item)) { auto selectable = dynamic_cast(item); QMT_ASSERT(selectable, return); @@ -959,7 +968,7 @@ void DiagramSceneModel::saveSelectionStatusBeforeExport(bool exportSelectedEleme // Selections would also render to the clipboard m_graphicsScene->clearSelection(); - foreach (QGraphicsItem *item, m_graphicsItems) { + for (QGraphicsItem *item : std::as_const(m_graphicsItems)) { if (IEditable *editItem = dynamic_cast(item)) { if (editItem->isEditing()) { status->m_editItem = editItem; @@ -969,7 +978,7 @@ void DiagramSceneModel::saveSelectionStatusBeforeExport(bool exportSelectedEleme } removeExtraSceneItems(); - foreach (QGraphicsItem *item, m_graphicsItems) { + for (QGraphicsItem *item : std::as_const(m_graphicsItems)) { if (!exportSelectedElements || status->m_selectedItems.contains(item) || status->m_secondarySelectedItems.contains(item)) { @@ -997,13 +1006,13 @@ void DiagramSceneModel::restoreSelectedStatusAfterExport(const DiagramSceneModel { if (status.m_exportSelectedElements) { // TODO once an annotation item had focus the call to show() will give it focus again. Bug in Qt? - foreach (QGraphicsItem *item, m_graphicsItems) + for (QGraphicsItem *item : std::as_const(m_graphicsItems)) item->show(); } addExtraSceneItems(); - foreach (QGraphicsItem *item, status.m_selectedItems) + for (QGraphicsItem *item : std::as_const(status.m_selectedItems)) item->setSelected(true); // reset focus item diff --git a/src/libs/modelinglib/qmt/infrastructure/handles.h b/src/libs/modelinglib/qmt/infrastructure/handles.h index 94a5827a042..0e220adbf99 100644 --- a/src/libs/modelinglib/qmt/infrastructure/handles.h +++ b/src/libs/modelinglib/qmt/infrastructure/handles.h @@ -55,7 +55,7 @@ public: bool contains(const Uid &uid) const { - foreach (const Handle &handle, m_handleList) { + for (const Handle &handle : std::as_const(m_handleList)) { if (handle.uid() == uid) return true; } @@ -70,7 +70,7 @@ public: T *find(const Uid &uid) const { - foreach (const Handle &handle, m_handleList) { + for (const Handle &handle : std::as_const(m_handleList)) { if (handle.uid() == uid) return handle.target(); } @@ -92,7 +92,7 @@ public: int indexOf(const Uid &uid) const { int index = 0; - foreach (const Handle &handle, m_handleList) { + for (const Handle &handle : std::as_const(m_handleList)) { if (handle.uid() == uid) return index; ++index; @@ -123,7 +123,7 @@ public: void reset() { if (m_takesOwnership) { - foreach (const Handle &handle, m_handleList) + for (const Handle &handle : std::as_const(m_handleList)) delete handle.target(); } m_handleList.clear(); diff --git a/src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.cpp b/src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.cpp index 73fca46572a..d87ae65946d 100644 --- a/src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.cpp +++ b/src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.cpp @@ -274,7 +274,7 @@ PropertiesView::MView::~MView() { } -void PropertiesView::MView::update(QList &modelElements) +void PropertiesView::MView::update(const QList &modelElements) { QMT_ASSERT(modelElements.size() > 0, return); @@ -284,7 +284,7 @@ void PropertiesView::MView::update(QList &modelElements) modelElements.at(0)->accept(this); } -void PropertiesView::MView::update(QList &diagramElements, MDiagram *diagram) +void PropertiesView::MView::update(const QList &diagramElements, MDiagram *diagram) { QMT_ASSERT(diagramElements.size() > 0, return); QMT_ASSERT(diagram, return); @@ -292,7 +292,7 @@ void PropertiesView::MView::update(QList &diagramElements, MDiagram m_diagramElements = diagramElements; m_diagram = diagram; m_modelElements.clear(); - foreach (DElement *delement, diagramElements) { + for (DElement *delement : diagramElements) { bool appendedMelement = false; if (delement->modelUid().isValid()) { MElement *melement = m_propertiesView->modelController()->findElement(delement->modelUid()); @@ -1181,11 +1181,11 @@ void PropertiesView::MView::onParseClassMembers() m_classMembersEdit->reparse(); } -void PropertiesView::MView::onClassMembersChanged(QList &classMembers) +void PropertiesView::MView::onClassMembersChanged(const QList &classMembers) { QSet showMembers; if (!classMembers.isEmpty()) { - foreach (MElement *element, m_modelElements) { + for (MElement *element : std::as_const(m_modelElements)) { MClass *klass = dynamic_cast(element); if (klass && klass->members().isEmpty()) showMembers.insert(klass->uid()); @@ -1193,7 +1193,7 @@ void PropertiesView::MView::onClassMembersChanged(QList &classMemb } assignModelElement>(m_modelElements, SelectionSingle, classMembers, &MClass::members, &MClass::setMembers); - foreach (DElement *element, m_diagramElements) { + for (DElement *element : std::as_const(m_diagramElements)) { if (showMembers.contains(element->modelUid())) { assignModelElement(QList({element}), SelectionSingle, true, &DClass::showAllMembers, &DClass::setShowAllMembers); @@ -1571,7 +1571,8 @@ void PropertiesView::MView::setEndBName(const QString &endBName) QList PropertiesView::MView::splitTemplateParameters(const QString &templateParameters) { QList templateParametersList; - foreach (const QString ¶meter, templateParameters.split(QLatin1Char(','))) { + const QStringList parameters = templateParameters.split(QLatin1Char(',')); + for (const QString ¶meter : parameters) { const QString &p = parameter.trimmed(); if (!p.isEmpty()) templateParametersList.append(p); @@ -1583,7 +1584,7 @@ QString PropertiesView::MView::formatTemplateParameters(const QList &te { QString templateParamters; bool first = true; - foreach (const QString ¶meter, templateParametersList) { + for (const QString ¶meter : templateParametersList) { if (!first) templateParamters += ", "; templateParamters += parameter; @@ -1596,7 +1597,7 @@ template QList PropertiesView::MView::filter(const QList &elements) { QList filtered; - foreach (V *element, elements) { + for (V *element : elements) { auto t = dynamic_cast(element); if (t) filtered.append(t); @@ -1607,11 +1608,11 @@ QList PropertiesView::MView::filter(const QList &elements) template bool PropertiesView::MView::haveSameValue(const QList &baseElements, V (T::*getter)() const, V *value) { - QList elements = filter(baseElements); + const QList elements = filter(baseElements); QMT_CHECK(!elements.isEmpty()); V candidate = V(); // avoid warning of reading uninitialized variable bool haveCandidate = false; - foreach (T *element, elements) { + for (T *element : elements) { if (!haveCandidate) { candidate = ((*element).*getter)(); haveCandidate = true; @@ -1632,9 +1633,9 @@ template void PropertiesView::MView::assignModelElement(const QList &baseElements, SelectionType selectionType, const V &value, V (T::*getter)() const, void (T::*setter)(const V &)) { - QList elements = filter(baseElements); + const QList elements = filter(baseElements); if ((selectionType == SelectionSingle && elements.size() == 1) || selectionType == SelectionMulti) { - foreach (T *element, elements) { + for (T *element : elements) { if (value != ((*element).*getter)()) { m_propertiesView->beginUpdate(element); ((*element).*setter)(value); @@ -1648,9 +1649,9 @@ template void PropertiesView::MView::assignModelElement(const QList &baseElements, SelectionType selectionType, const V &value, V (T::*getter)() const, void (T::*setter)(V)) { - QList elements = filter(baseElements); + const QList elements = filter(baseElements); if ((selectionType == SelectionSingle && elements.size() == 1) || selectionType == SelectionMulti) { - foreach (T *element, elements) { + for (T *element : elements) { if (value != ((*element).*getter)()) { m_propertiesView->beginUpdate(element); ((*element).*setter)(value); @@ -1666,9 +1667,9 @@ void PropertiesView::MView::assignEmbeddedModelElement(const QList &base void (T::*setter)(const E &), V (E::*vGetter)() const, void (E::*vSetter)(const V &)) { - QList elements = filter(baseElements); + const QList elements = filter(baseElements); if ((selectionType == SelectionSingle && elements.size() == 1) || selectionType == SelectionMulti) { - foreach (T *element, elements) { + for (T *element : elements) { E embedded = ((*element).*getter)(); if (value != (embedded.*vGetter)()) { m_propertiesView->beginUpdate(element); @@ -1686,9 +1687,9 @@ void PropertiesView::MView::assignEmbeddedModelElement(const QList &base void (T::*setter)(const E &), V (E::*vGetter)() const, void (E::*vSetter)(V)) { - QList elements = filter(baseElements); + const QList elements = filter(baseElements); if ((selectionType == SelectionSingle && elements.size() == 1) || selectionType == SelectionMulti) { - foreach (T *element, elements) { + for (T *element : elements) { E embedded = ((*element).*getter)(); if (value != (embedded.*vGetter)()) { m_propertiesView->beginUpdate(element); diff --git a/src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.h b/src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.h index 2ecf079a550..c7bbc3d1674 100644 --- a/src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.h +++ b/src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.h @@ -74,8 +74,8 @@ public: void visitDBoundary(const DBoundary *boundary) override; void visitDSwimlane(const DSwimlane *swimlane) override; - void update(QList &modelElements); - void update(QList &diagramElements, MDiagram *diagram); + void update(const QList &modelElements); + void update(const QList &diagramElements, MDiagram *diagram); void edit(); protected: @@ -85,7 +85,7 @@ protected: void onTemplateParametersChanged(const QString &templateParameters); void onClassMembersStatusChanged(bool valid); void onParseClassMembers(); - void onClassMembersChanged(QList &classMembers); + void onClassMembersChanged(const QList &classMembers); void onItemVarietyChanged(const QString &variety); void onRelationNameChanged(const QString &name); void onDependencyDirectionChanged(int directionIndex); diff --git a/src/libs/modelinglib/qmt/stereotype/stereotypecontroller.cpp b/src/libs/modelinglib/qmt/stereotype/stereotypecontroller.cpp index 800046d4655..30c33809cb1 100644 --- a/src/libs/modelinglib/qmt/stereotype/stereotypecontroller.cpp +++ b/src/libs/modelinglib/qmt/stereotype/stereotypecontroller.cpp @@ -104,7 +104,7 @@ QList StereotypeController::findToolbars(const QString &elementType) co QList StereotypeController::knownStereotypes(StereotypeIcon::Element stereotypeElement) const { QSet stereotypes; - foreach (const StereotypeIcon &icon, d->m_iconIdToStereotypeIconsMap) { + for (const StereotypeIcon &icon : d->m_iconIdToStereotypeIconsMap) { if (icon.elements().isEmpty() || icon.elements().contains(stereotypeElement)) stereotypes += icon.stereotypes(); } @@ -116,7 +116,7 @@ QList StereotypeController::knownStereotypes(StereotypeIcon::Element st QString StereotypeController::findStereotypeIconId(StereotypeIcon::Element element, const QList &stereotypes) const { - foreach (const QString &stereotype, stereotypes) { + for (const QString &stereotype : stereotypes) { auto it = d->m_stereotypeToIconIdMap.constFind({element, stereotype}); if (it != d->m_stereotypeToIconIdMap.constEnd()) return it.value(); @@ -133,7 +133,8 @@ QList StereotypeController::filterStereotypesByIconId(const QString &st if (!d->m_iconIdToStereotypeIconsMap.contains(stereotypeIconId)) return stereotypes; QList filteredStereotypes = stereotypes; - foreach (const QString &stereotype, d->m_iconIdToStereotypeIconsMap.value(stereotypeIconId).stereotypes()) + const QSet stereotypeList = d->m_iconIdToStereotypeIconsMap.value(stereotypeIconId).stereotypes(); + for (const QString &stereotype : stereotypeList) filteredStereotypes.removeAll(stereotype); return filteredStereotypes; } @@ -233,11 +234,14 @@ QIcon StereotypeController::createIcon(StereotypeIcon::Element element, const QL void StereotypeController::addStereotypeIcon(const StereotypeIcon &stereotypeIcon) { if (stereotypeIcon.elements().isEmpty()) { - foreach (const QString &stereotype, stereotypeIcon.stereotypes()) + const QSet stereotypes = stereotypeIcon.stereotypes(); + for (const QString &stereotype : stereotypes) d->m_stereotypeToIconIdMap.insert({StereotypeIcon::ElementAny, stereotype}, stereotypeIcon.id()); } else { - foreach (StereotypeIcon::Element element, stereotypeIcon.elements()) { - foreach (const QString &stereotype, stereotypeIcon.stereotypes()) + const QSet elements = stereotypeIcon.elements(); + for (StereotypeIcon::Element element : elements) { + const QSet stereotypes = stereotypeIcon.stereotypes(); + for (const QString &stereotype : stereotypes) d->m_stereotypeToIconIdMap.insert({element, stereotype}, stereotypeIcon.id()); } } diff --git a/src/libs/modelinglib/qmt/style/defaultstyleengine.cpp b/src/libs/modelinglib/qmt/style/defaultstyleengine.cpp index 34753b1f750..37b9d916632 100644 --- a/src/libs/modelinglib/qmt/style/defaultstyleengine.cpp +++ b/src/libs/modelinglib/qmt/style/defaultstyleengine.cpp @@ -262,7 +262,8 @@ const Style *DefaultStyleEngine::applyObjectStyle(const Style *baseStyle, const DObject::VisualPrimaryRole styledVisualPrimaryRole = styledObject.objectVisuals().visualPrimaryRole(); DObject::VisualSecondaryRole styledVisualSecondaryRole = styledObject.objectVisuals().visualSecondaryRole(); QHash depths; - foreach (const DObject *collidingObject, styledObject.collidingObjects()) { + const QList collidingObjectList = styledObject.collidingObjects(); + for (const DObject *collidingObject : collidingObjectList) { int collidingDepth = collidingObject->depth(); if (collidingDepth < styledObject.object()->depth()) { ElementType collidingElementType = objectType(collidingObject); @@ -297,7 +298,7 @@ const Style *DefaultStyleEngine::applyObjectStyle(const Style *baseStyle, const int depth = 0; if (!depths.isEmpty()) { const QList keys = Utils::sorted(depths.keys()); - foreach (int d, keys) { + for (int d : keys) { DepthProperties properties = depths.value(d); if (properties.m_elementType == elementType && areStackingRoles(properties.m_visualPrimaryRole, properties.m_visualSecondaryRole, diff --git a/src/libs/modelinglib/qtserialization/inc/qark/serialize_container.h b/src/libs/modelinglib/qtserialization/inc/qark/serialize_container.h index a7bc5153316..c4a839b5bfe 100644 --- a/src/libs/modelinglib/qtserialization/inc/qark/serialize_container.h +++ b/src/libs/modelinglib/qtserialization/inc/qark/serialize_container.h @@ -18,7 +18,7 @@ template inline void save(Archive &archive, const QList &list, const Parameters &) { archive << tag("qlist"); - foreach (const T &t, list) + for (const T &t : list) archive << attr("item", t); archive << end; } @@ -28,10 +28,10 @@ inline void save(Archive &archive, const QList &list, const Parameters &par { archive << tag("qlist"); if (parameters.hasFlag(ENFORCE_REFERENCED_ITEMS)) { - foreach (const T *t, list) + for (const T *t : list) archive << ref("item", t); } else { - foreach (const T *t, list) + for (const T *t : list) archive << attr("item", t); } archive << end; @@ -68,7 +68,7 @@ template inline void save(Archive &archive, const QSet &set, const Parameters &) { archive << tag("qset"); - foreach (const T &t, set) + for (const T &t : set) archive << attr("item", t); archive << end; } @@ -78,10 +78,10 @@ inline void save(Archive &archive, const QSet &set, const Parameters ¶m { archive << tag("qset"); if (parameters.hasFlag(ENFORCE_REFERENCED_ITEMS)) { - foreach (const T *t, set) + for (const T *t : set) archive << ref("item", t); } else { - foreach (const T *t, set) + for (const T *t : set) archive << attr("item", t); } archive << end; -- cgit v1.2.3