Modelinglib: Avoid temporary extensive copy

Change-Id: I25fb6f671cc392836b829889987c516aa722bc92
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Jochen Becher
2018-01-13 19:35:05 +01:00
parent e7d44054e1
commit eb9172d1a0
8 changed files with 25 additions and 25 deletions

View File

@@ -764,13 +764,13 @@ void DiagramController::removeObjects(MObject *modelObject)
DElement *diagramElement = findDelegate(modelObject, diagram);
if (diagramElement)
removeElement(diagramElement, diagram);
foreach (const Handle<MRelation> &relation, modelObject->relations()) {
for (const Handle<MRelation> &relation : modelObject->relations()) {
DElement *diagramElement = findDelegate(relation.target(), diagram);
if (diagramElement)
removeElement(diagramElement, diagram);
}
}
foreach (const Handle<MObject> &object, modelObject->children()) {
for (const Handle<MObject> &object : modelObject->children()) {
if (object.hasTarget())
removeObjects(object.target());
}

View File

@@ -45,7 +45,7 @@ void MChildrenVisitor::visitMElement(MElement *element)
void MChildrenVisitor::visitMObject(MObject *object)
{
foreach (const Handle<MObject> &handle, object->children()) {
for (const Handle<MObject> &handle : object->children()) {
MObject *child = handle.target();
if (child)
child->accept(this);

View File

@@ -159,7 +159,7 @@ void MCloneDeepVisitor::visitMObject(const MObject *object)
visitMElement(object);
auto cloned = dynamic_cast<MObject *>(m_cloned);
QMT_ASSERT(cloned, return);
foreach (const Handle<MObject> &handle, object->children()) {
for (const Handle<MObject> &handle : object->children()) {
if (handle.hasTarget()) {
MCloneDeepVisitor visitor;
handle.target()->accept(&visitor);
@@ -170,7 +170,7 @@ void MCloneDeepVisitor::visitMObject(const MObject *object)
cloned->addChild(handle.uid());
}
}
foreach (const Handle<MRelation> &handle, object->relations()) {
for (const Handle<MRelation> &handle : object->relations()) {
if (handle.hasTarget()) {
MCloneDeepVisitor visitor;
handle.target()->accept(&visitor);

View File

@@ -1060,9 +1060,9 @@ void ModelController::renewElementKey(MElement *element, QHash<Uid, Uid> *renewe
}
auto object = dynamic_cast<MObject *>(element);
if (object) {
foreach (const Handle<MObject> &child, object->children())
for (const Handle<MObject> &child : object->children())
renewElementKey(child.target(), renewedKeys);
foreach (const Handle<MRelation> &relation, object->relations())
for (const Handle<MRelation> &relation : object->relations())
renewElementKey(relation.target(), renewedKeys);
}
}
@@ -1071,9 +1071,9 @@ void ModelController::renewElementKey(MElement *element, QHash<Uid, Uid> *renewe
void ModelController::updateRelationKeys(MElement *element, const QHash<Uid, Uid> &renewedKeys)
{
if (auto object = dynamic_cast<MObject *>(element)) {
foreach (const Handle<MRelation> &handle, object->relations())
for (const Handle<MRelation> &handle : object->relations())
updateRelationEndKeys(handle.target(), renewedKeys);
foreach (const Handle<MObject> &child, object->children())
for (const Handle<MObject> &child : object->children())
updateRelationKeys(child.target(), renewedKeys);
} else if (auto relation = dynamic_cast<MRelation *>(element)) {
updateRelationEndKeys(relation, renewedKeys);
@@ -1097,9 +1097,9 @@ void ModelController::mapObject(MObject *object)
if (object) {
QMT_CHECK(!m_objectsMap.contains(object->uid()));
m_objectsMap.insert(object->uid(), object);
foreach (const Handle<MObject> &child, object->children())
for (const Handle<MObject> &child : object->children())
mapObject(child.target());
foreach (const Handle<MRelation> &relation, object->relations())
for (const Handle<MRelation> &relation : object->relations())
mapRelation(relation.target());
}
}
@@ -1108,9 +1108,9 @@ void ModelController::unmapObject(MObject *object)
{
if (object) {
QMT_CHECK(m_objectsMap.contains(object->uid()));
foreach (const Handle<MRelation> &relation, object->relations())
for (const Handle<MRelation> &relation : object->relations())
unmapRelation(relation.target());
foreach (const Handle<MObject> &child, object->children())
for (const Handle<MObject> &child : object->children())
unmapObject(child.target());
m_objectsMap.remove(object->uid());
}
@@ -1209,7 +1209,7 @@ void ModelController::verifyModelIntegrity(const MObject *object, QHash<Uid, con
QMT_ASSERT(object, return);
QMT_ASSERT(!objectsMap->contains(object->uid()), return);
objectsMap->insert(object->uid(), object);
foreach (const Handle<MRelation> &handle, object->relations()) {
for (const Handle<MRelation> &handle : object->relations()) {
MRelation *relation = handle.target();
if (relation) {
QMT_ASSERT(!relationsMap->contains(relation->uid()), return);
@@ -1222,7 +1222,7 @@ void ModelController::verifyModelIntegrity(const MObject *object, QHash<Uid, con
objectRelationsMap->insert(relation->endBUid(), relation);
}
}
foreach (const Handle<MObject> &handle, object->children()) {
for (const Handle<MObject> &handle : object->children()) {
MObject *childObject = handle.target();
if (childObject)
verifyModelIntegrity(childObject, objectsMap, relationsMap, objectRelationsMap);

View File

@@ -755,14 +755,14 @@ void TreeModel::createChildren(const MObject *parentObject, ModelItem *parentIte
m_objectToItemMap.insert(parentObject, parentItem);
QMT_CHECK(!m_itemToObjectMap.contains(parentItem));
m_itemToObjectMap.insert(parentItem, parentObject);
foreach (const Handle<MObject> &object, parentObject->children()) {
for (const Handle<MObject> &object : parentObject->children()) {
if (object.hasTarget()) {
ModelItem *item = createItem(object.target());
parentItem->appendRow(item);
createChildren(object.target(), item);
}
}
foreach (const Handle<MRelation> &handle, parentObject->relations()) {
for (const Handle<MRelation> &handle : parentObject->relations()) {
if (handle.hasTarget()) {
MRelation *relation = handle.target();
ModelItem *item = createItem(relation);
@@ -780,7 +780,7 @@ void TreeModel::removeObjectFromItemMap(const MObject *object)
QMT_CHECK(m_itemToObjectMap.contains(item));
m_itemToObjectMap.remove(item);
m_objectToItemMap.remove(object);
foreach (const Handle<MObject> &child, object->children()) {
for (const Handle<MObject> &child : object->children()) {
if (child.hasTarget())
removeObjectFromItemMap(child.target());
}

View File

@@ -504,7 +504,7 @@ MPackage *DiagramSceneController::findSuitableParentPackage(DElement *topmostDia
MDiagram *DiagramSceneController::findDiagramBySearchId(MPackage *package, const QString &diagramName)
{
QString diagramSearchId = NameController::calcElementNameSearchId(diagramName);
foreach (const Handle<MObject> &handle, package->children()) {
for (const Handle<MObject> &handle : package->children()) {
if (handle.hasTarget()) {
if (auto diagram = dynamic_cast<MDiagram *>(handle.target())) {
if (NameController::calcElementNameSearchId(diagram->name()) == diagramSearchId)
@@ -745,7 +745,7 @@ DObject *DiagramSceneController::addObject(MObject *modelObject, const QPointF &
if (dobject) {
MObject *mobject = m_modelController->findObject(dobject->modelUid());
if (mobject) {
foreach (const Handle<MRelation> &handle, mobject->relations()) {
for (const Handle<MRelation> &handle : mobject->relations()) {
if (handle.hasTarget()
&& ((handle.target()->endAUid() == modelObject->uid()
&& handle.target()->endBUid() == mobject->uid())
@@ -754,7 +754,7 @@ DObject *DiagramSceneController::addObject(MObject *modelObject, const QPointF &
addRelation(handle.target(), QList<QPointF>(), diagram);
}
}
foreach (const Handle<MRelation> &handle, modelObject->relations()) {
for (const Handle<MRelation> &handle : modelObject->relations()) {
if (handle.hasTarget()
&& ((handle.target()->endAUid() == modelObject->uid()
&& handle.target()->endBUid() == mobject->uid())
@@ -769,7 +769,7 @@ DObject *DiagramSceneController::addObject(MObject *modelObject, const QPointF &
}
// add all self relations
foreach (const Handle<MRelation> &handle, modelObject->relations()) {
for (const Handle<MRelation> &handle : modelObject->relations()) {
if (handle.hasTarget ()
&& handle.target()->endAUid() == modelObject->uid()
&& handle.target()->endBUid() == modelObject->uid()) {

View File

@@ -40,7 +40,7 @@ FindDiagramVisitor::~FindDiagramVisitor()
void FindDiagramVisitor::visitMObject(const MObject *object)
{
foreach (const Handle<MObject> &child, object->children()) {
for (const Handle<MObject> &child : object->children()) {
if (child.hasTarget()) {
if (auto diagram = dynamic_cast<MDiagram *>(child.target())) {
m_diagram = diagram;

View File

@@ -40,7 +40,7 @@ FindRootDiagramVisitor::~FindRootDiagramVisitor()
void FindRootDiagramVisitor::visitMObject(MObject *object)
{
// first search flat
foreach(const Handle<MObject> &child, object->children()) {
for (const Handle<MObject> &child : object->children()) {
if (child.hasTarget()) {
auto diagram = dynamic_cast<MDiagram *>(child.target());
if (diagram) {
@@ -50,7 +50,7 @@ void FindRootDiagramVisitor::visitMObject(MObject *object)
}
}
// then search in children
foreach(const Handle<MObject> &child, object->children()) {
for (const Handle<MObject> &child : object->children()) {
if (child.hasTarget()) {
child.target()->accept(this);
if (m_diagram)