aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/modelinglib
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2022-11-23 23:23:52 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2022-11-24 17:00:03 +0000
commit3d05611726686e826ddeaf435d2c61628576cdad (patch)
tree076a117afe09070ad31c7e718a5ae5846a094aa2 /src/libs/modelinglib
parenta94f37c8b06350cba94c3a4b6221f6df0a8398b4 (diff)
ModelingLib: Replace foreach with range-based for loops
Change-Id: I3e51c9477b6995ec06b119fb4518a53aa1d71ec9 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/libs/modelinglib')
-rw-r--r--src/libs/modelinglib/qmt/config/textscanner.cpp8
-rw-r--r--src/libs/modelinglib/qmt/diagram_controller/diagramcontroller.cpp50
-rw-r--r--src/libs/modelinglib/qmt/diagram_scene/diagramscenemodel.cpp81
-rw-r--r--src/libs/modelinglib/qmt/infrastructure/handles.h8
-rw-r--r--src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.cpp39
-rw-r--r--src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.h6
-rw-r--r--src/libs/modelinglib/qmt/stereotype/stereotypecontroller.cpp16
-rw-r--r--src/libs/modelinglib/qmt/style/defaultstyleengine.cpp5
-rw-r--r--src/libs/modelinglib/qtserialization/inc/qark/serialize_container.h12
9 files changed, 124 insertions, 101 deletions
diff --git a/src/libs/modelinglib/qmt/config/textscanner.cpp b/src/libs/modelinglib/qmt/config/textscanner.cpp
index 7ff31a20ac..3c8b0b7e7a 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<QPair<QString, int>> &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<QPair<QString, int>> &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 57c99db0c2..4703da36d8 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<DElement *> 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<Uid, Uid> renewedKeys;
QList<DElement *> clonedElements;
- foreach (const DElement *element, diagramContainer.elements()) {
+ const QList<DElement *> 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<DRelation *>(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<DRelation *>(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<DRelation *>(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<MPackage *>(modelObject);
- foreach (MDiagram *diagram, m_allDiagrams) {
+ for (MDiagram *diagram : std::as_const(m_allDiagrams)) {
DObject *object = findDelegate<DObject>(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<DElement *> 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<MDiagram *>(modelObject);
if (modelDiagram) {
emit beginResetDiagram(modelDiagram);
- foreach (DElement *diagramElement, modelDiagram->diagramElements())
+ const QList<DElement *> 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<DRelation>(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<DElement *> 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<DObject *>(element);
if (diagramObject) {
- foreach (DElement *diagramElement, diagram->diagramElements()) {
+ const QList<DElement *> elements = diagram->diagramElements();
+ for (DElement *diagramElement : elements) {
if (auto diagramRelation = dynamic_cast<DRelation *>(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<DSelection::Index> 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<Uid, const DElement *> delementsMap;
- foreach (const DElement *delement, diagram->diagramElements()) {
+ const QList<DElement *> elements = diagram->diagramElements();
+ for (const DElement *delement : elements) {
delementsMap.insert(delement->uid(), delement);
if (dynamic_cast<const DObject *>(delement) || dynamic_cast<const DRelation *>(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<const DRelation *>(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 dbb363646c..93c7bda96e 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<QGraphicsItem *> items = m_graphicsScene->selectedItems();
+ for (QGraphicsItem *item : items) {
DElement *element = m_itemToElementMap.value(item);
QMT_CHECK(element);
if (dynamic_cast<DObject *>(element)) {
@@ -199,7 +200,8 @@ bool DiagramSceneModel::hasMultiObjectsSelection() const
DSelection DiagramSceneModel::selectedElements() const
{
DSelection selection;
- foreach (QGraphicsItem *item, m_graphicsScene->selectedItems()) {
+ const QList<QGraphicsItem *> 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<QGraphicsItem *> items = m_graphicsScene->items(scenePos);
- foreach (QGraphicsItem *item, items) {
+ const QList<QGraphicsItem *> 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<QGraphicsItem *> 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<IMoveable *>(item))
moveable->moveDelta(delta);
}
- foreach (QGraphicsItem *item, m_secondarySelectedItems) {
+ for (QGraphicsItem *item : std::as_const(m_secondarySelectedItems)) {
if (auto moveable = dynamic_cast<IMoveable *>(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<IMoveable *>(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<IMoveable *>(item))
moveable->alignItemPositionToRaster(RASTER_WIDTH, RASTER_HEIGHT);
}
@@ -563,7 +566,7 @@ QList<QGraphicsItem *> 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<const IResizable *>(candidate)) {
QRectF candidateRect = candidateResizable->rect();
candidateRect.translate(candidateResizable->pos());
@@ -575,7 +578,7 @@ QList<QGraphicsItem *> 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<const IResizable *>(candidate)) {
QRectF candidateRect = candidateResizable->rect();
candidateRect.translate(candidateResizable->pos());
@@ -587,7 +590,7 @@ QList<QGraphicsItem *> 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<const IResizable *>(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<QGraphicsView *> 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<QGraphicsItem *> selectedItemSet = Utils::toSet(m_graphicsScene->selectedItems());
- QList<QGraphicsItem *> itemsUnderMouse = m_graphicsScene->items(event->scenePos());
- foreach (QGraphicsItem *item, itemsUnderMouse) {
+ const QList<QGraphicsItem *> 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<QGraphicsItem *> 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<QGraphicsView *> 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<DElement *> 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<QGraphicsItem *> newSelectedItems = Utils::toSet(m_graphicsScene->selectedItems());
+ const QSet<QGraphicsItem *> 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<QGraphicsItem *> 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<QGraphicsItem *> items = collectCollidingObjectItems(selectedItem, CollidingInnerItems);
+ for (QGraphicsItem *item : items) {
if (!item->isSelected() && dynamic_cast<ISelectable *>(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<DElement *> elements = m_diagram->diagramElements();
+ for (DElement *element : elements) {
auto relation = dynamic_cast<DRelation *>(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<ISelectable *>(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<ISelectable *>(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<IEditable *>(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 94a5827a04..0e220adbf9 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<T> &handle, m_handleList) {
+ for (const Handle<T> &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<T> &handle, m_handleList) {
+ for (const Handle<T> &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<T> &handle, m_handleList) {
+ for (const Handle<T> &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<T> &handle, m_handleList)
+ for (const Handle<T> &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 73fca46572..d87ae65946 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<MElement *> &modelElements)
+void PropertiesView::MView::update(const QList<MElement *> &modelElements)
{
QMT_ASSERT(modelElements.size() > 0, return);
@@ -284,7 +284,7 @@ void PropertiesView::MView::update(QList<MElement *> &modelElements)
modelElements.at(0)->accept(this);
}
-void PropertiesView::MView::update(QList<DElement *> &diagramElements, MDiagram *diagram)
+void PropertiesView::MView::update(const QList<DElement *> &diagramElements, MDiagram *diagram)
{
QMT_ASSERT(diagramElements.size() > 0, return);
QMT_ASSERT(diagram, return);
@@ -292,7 +292,7 @@ void PropertiesView::MView::update(QList<DElement *> &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<MClassMember> &classMembers)
+void PropertiesView::MView::onClassMembersChanged(const QList<MClassMember> &classMembers)
{
QSet<Uid> showMembers;
if (!classMembers.isEmpty()) {
- foreach (MElement *element, m_modelElements) {
+ for (MElement *element : std::as_const(m_modelElements)) {
MClass *klass = dynamic_cast<MClass *>(element);
if (klass && klass->members().isEmpty())
showMembers.insert(klass->uid());
@@ -1193,7 +1193,7 @@ void PropertiesView::MView::onClassMembersChanged(QList<MClassMember> &classMemb
}
assignModelElement<MClass, QList<MClassMember>>(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<DClass, bool>(QList<DElement *>({element}), SelectionSingle, true,
&DClass::showAllMembers, &DClass::setShowAllMembers);
@@ -1571,7 +1571,8 @@ void PropertiesView::MView::setEndBName(const QString &endBName)
QList<QString> PropertiesView::MView::splitTemplateParameters(const QString &templateParameters)
{
QList<QString> templateParametersList;
- foreach (const QString &parameter, templateParameters.split(QLatin1Char(','))) {
+ const QStringList parameters = templateParameters.split(QLatin1Char(','));
+ for (const QString &parameter : parameters) {
const QString &p = parameter.trimmed();
if (!p.isEmpty())
templateParametersList.append(p);
@@ -1583,7 +1584,7 @@ QString PropertiesView::MView::formatTemplateParameters(const QList<QString> &te
{
QString templateParamters;
bool first = true;
- foreach (const QString &parameter, templateParametersList) {
+ for (const QString &parameter : templateParametersList) {
if (!first)
templateParamters += ", ";
templateParamters += parameter;
@@ -1596,7 +1597,7 @@ template<class T, class V>
QList<T *> PropertiesView::MView::filter(const QList<V *> &elements)
{
QList<T *> filtered;
- foreach (V *element, elements) {
+ for (V *element : elements) {
auto t = dynamic_cast<T *>(element);
if (t)
filtered.append(t);
@@ -1607,11 +1608,11 @@ QList<T *> PropertiesView::MView::filter(const QList<V *> &elements)
template<class T, class V, class BASE>
bool PropertiesView::MView::haveSameValue(const QList<BASE *> &baseElements, V (T::*getter)() const, V *value)
{
- QList<T *> elements = filter<T>(baseElements);
+ const QList<T *> elements = filter<T>(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<class T, class V, class BASE>
void PropertiesView::MView::assignModelElement(const QList<BASE *> &baseElements, SelectionType selectionType,
const V &value, V (T::*getter)() const, void (T::*setter)(const V &))
{
- QList<T *> elements = filter<T>(baseElements);
+ const QList<T *> elements = filter<T>(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<class T, class V, class BASE>
void PropertiesView::MView::assignModelElement(const QList<BASE *> &baseElements, SelectionType selectionType,
const V &value, V (T::*getter)() const, void (T::*setter)(V))
{
- QList<T *> elements = filter<T>(baseElements);
+ const QList<T *> elements = filter<T>(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 *> &base
void (T::*setter)(const E &),
V (E::*vGetter)() const, void (E::*vSetter)(const V &))
{
- QList<T *> elements = filter<T>(baseElements);
+ const QList<T *> elements = filter<T>(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 *> &base
void (T::*setter)(const E &),
V (E::*vGetter)() const, void (E::*vSetter)(V))
{
- QList<T *> elements = filter<T>(baseElements);
+ const QList<T *> elements = filter<T>(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 2ecf079a55..c7bbc3d167 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<MElement *> &modelElements);
- void update(QList<DElement *> &diagramElements, MDiagram *diagram);
+ void update(const QList<MElement *> &modelElements);
+ void update(const QList<DElement *> &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<MClassMember> &classMembers);
+ void onClassMembersChanged(const QList<MClassMember> &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 800046d465..30c33809cb 100644
--- a/src/libs/modelinglib/qmt/stereotype/stereotypecontroller.cpp
+++ b/src/libs/modelinglib/qmt/stereotype/stereotypecontroller.cpp
@@ -104,7 +104,7 @@ QList<Toolbar> StereotypeController::findToolbars(const QString &elementType) co
QList<QString> StereotypeController::knownStereotypes(StereotypeIcon::Element stereotypeElement) const
{
QSet<QString> 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<QString> StereotypeController::knownStereotypes(StereotypeIcon::Element st
QString StereotypeController::findStereotypeIconId(StereotypeIcon::Element element,
const QList<QString> &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<QString> StereotypeController::filterStereotypesByIconId(const QString &st
if (!d->m_iconIdToStereotypeIconsMap.contains(stereotypeIconId))
return stereotypes;
QList<QString> filteredStereotypes = stereotypes;
- foreach (const QString &stereotype, d->m_iconIdToStereotypeIconsMap.value(stereotypeIconId).stereotypes())
+ const QSet<QString> 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<QString> 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<StereotypeIcon::Element> elements = stereotypeIcon.elements();
+ for (StereotypeIcon::Element element : elements) {
+ const QSet<QString> 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 34753b1f75..37b9d91663 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<int, DepthProperties> depths;
- foreach (const DObject *collidingObject, styledObject.collidingObjects()) {
+ const QList<const DObject *> 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<int> 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 a7bc515331..c4a839b5bf 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<class Archive, class T>
inline void save(Archive &archive, const QList<T> &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<T *> &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<class Archive, class T>
inline void save(Archive &archive, const QSet<T> &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<T *> &set, const Parameters &param
{
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;