Skip to content

Commit 6958b7a

Browse files
committed
Massive Q_FOREACH to range-based-for conversion
1 parent 2bb049e commit 6958b7a

File tree

105 files changed

+851
-437
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+851
-437
lines changed

src/core/expression/qgsexpressioncontextutils.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,8 @@ QgsExpressionContextScope *QgsExpressionContextUtils::layerScope( const QgsMapLa
325325
QStringList variableValues = layer->customProperty( QStringLiteral( "variableValues" ) ).toStringList();
326326

327327
int varIndex = 0;
328-
Q_FOREACH ( const QString &variableName, variableNames )
328+
const auto constVariableNames = variableNames;
329+
for ( const QString &variableName : constVariableNames )
329330
{
330331
if ( varIndex >= variableValues.length() )
331332
{
@@ -529,7 +530,8 @@ QgsExpressionContextScope *QgsExpressionContextUtils::layoutScope( const QgsLayo
529530
QStringList variableValues = layout->customProperty( QStringLiteral( "variableValues" ) ).toStringList();
530531

531532
int varIndex = 0;
532-
Q_FOREACH ( const QString &variableName, variableNames )
533+
const auto constVariableNames = variableNames;
534+
for ( const QString &variableName : constVariableNames )
533535
{
534536
if ( varIndex >= variableValues.length() )
535537
{

src/core/layertree/qgslayertree.cpp

+6-3
Original file line numberDiff line numberDiff line change
@@ -129,14 +129,16 @@ void QgsLayerTree::writeXml( QDomElement &parentElement, const QgsReadWriteConte
129129

130130
writeCommonXml( elem );
131131

132-
Q_FOREACH ( QgsLayerTreeNode *node, mChildren )
132+
const auto constMChildren = mChildren;
133+
for ( QgsLayerTreeNode *node : constMChildren )
133134
node->writeXml( elem, context );
134135

135136
QDomElement customOrderElem = doc.createElement( QStringLiteral( "custom-order" ) );
136137
customOrderElem.setAttribute( QStringLiteral( "enabled" ), mHasCustomLayerOrder ? 1 : 0 );
137138
elem.appendChild( customOrderElem );
138139

139-
Q_FOREACH ( QgsMapLayer *layer, mCustomLayerOrder )
140+
const auto constMCustomLayerOrder = mCustomLayerOrder;
141+
for ( QgsMapLayer *layer : constMCustomLayerOrder )
140142
{
141143
// Safety belt, see https://issues.qgis.org/issues/19145
142144
// Crash when deleting an item from the layout legend
@@ -186,7 +188,8 @@ void QgsLayerTree::nodeAddedChildren( QgsLayerTreeNode *node, int indexFrom, int
186188
}
187189
}
188190

189-
Q_FOREACH ( QgsMapLayer *layer, layers )
191+
const auto constLayers = layers;
192+
for ( QgsMapLayer *layer : constLayers )
190193
{
191194
if ( !mCustomLayerOrder.contains( layer ) && layer )
192195
mCustomLayerOrder.append( layer );

src/core/layertree/qgslayertreegroup.cpp

+22-11
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,8 @@ void QgsLayerTreeGroup::removeChildNode( QgsLayerTreeNode *node )
138138

139139
void QgsLayerTreeGroup::removeLayer( QgsMapLayer *layer )
140140
{
141-
Q_FOREACH ( QgsLayerTreeNode *child, mChildren )
141+
const auto constMChildren = mChildren;
142+
for ( QgsLayerTreeNode *child : constMChildren )
142143
{
143144
if ( QgsLayerTree::isLayer( child ) )
144145
{
@@ -201,7 +202,8 @@ QgsLayerTreeLayer *QgsLayerTreeGroup::findLayer( QgsMapLayer *layer ) const
201202

202203
QgsLayerTreeLayer *QgsLayerTreeGroup::findLayer( const QString &layerId ) const
203204
{
204-
Q_FOREACH ( QgsLayerTreeNode *child, mChildren )
205+
const auto constMChildren = mChildren;
206+
for ( QgsLayerTreeNode *child : constMChildren )
205207
{
206208
if ( QgsLayerTree::isLayer( child ) )
207209
{
@@ -222,7 +224,8 @@ QgsLayerTreeLayer *QgsLayerTreeGroup::findLayer( const QString &layerId ) const
222224
QList<QgsLayerTreeLayer *> QgsLayerTreeGroup::findLayers() const
223225
{
224226
QList<QgsLayerTreeLayer *> list;
225-
Q_FOREACH ( QgsLayerTreeNode *child, mChildren )
227+
const auto constMChildren = mChildren;
228+
for ( QgsLayerTreeNode *child : constMChildren )
226229
{
227230
if ( QgsLayerTree::isLayer( child ) )
228231
list << QgsLayerTree::toLayer( child );
@@ -234,7 +237,8 @@ QList<QgsLayerTreeLayer *> QgsLayerTreeGroup::findLayers() const
234237

235238
QgsLayerTreeGroup *QgsLayerTreeGroup::findGroup( const QString &name )
236239
{
237-
Q_FOREACH ( QgsLayerTreeNode *child, mChildren )
240+
const auto constMChildren = mChildren;
241+
for ( QgsLayerTreeNode *child : constMChildren )
238242
{
239243
if ( QgsLayerTree::isGroup( child ) )
240244
{
@@ -310,7 +314,8 @@ void QgsLayerTreeGroup::writeXml( QDomElement &parentElement, const QgsReadWrite
310314

311315
writeCommonXml( elem );
312316

313-
Q_FOREACH ( QgsLayerTreeNode *node, mChildren )
317+
const auto constMChildren = mChildren;
318+
for ( QgsLayerTreeNode *node : constMChildren )
314319
node->writeXml( elem, context );
315320

316321
parentElement.appendChild( elem );
@@ -336,7 +341,8 @@ QString QgsLayerTreeGroup::dump() const
336341
{
337342
QString header = QStringLiteral( "GROUP: %1 checked=%2 expanded=%3\n" ).arg( name() ).arg( mChecked ).arg( mExpanded );
338343
QStringList childrenDump;
339-
Q_FOREACH ( QgsLayerTreeNode *node, mChildren )
344+
const auto constMChildren = mChildren;
345+
for ( QgsLayerTreeNode *node : constMChildren )
340346
childrenDump << node->dump().split( '\n' );
341347
for ( int i = 0; i < childrenDump.count(); ++i )
342348
childrenDump[i].prepend( " " );
@@ -350,7 +356,8 @@ QgsLayerTreeGroup *QgsLayerTreeGroup::clone() const
350356

351357
void QgsLayerTreeGroup::resolveReferences( const QgsProject *project, bool looseMatching )
352358
{
353-
Q_FOREACH ( QgsLayerTreeNode *node, mChildren )
359+
const auto constMChildren = mChildren;
360+
for ( QgsLayerTreeNode *node : constMChildren )
354361
node->resolveReferences( project, looseMatching );
355362
}
356363

@@ -379,7 +386,8 @@ void QgsLayerTreeGroup::setIsMutuallyExclusive( bool enabled, int initialChildIn
379386
{
380387
// try to use first checked index
381388
int index = 0;
382-
Q_FOREACH ( QgsLayerTreeNode *child, mChildren )
389+
const auto constMChildren = mChildren;
390+
for ( QgsLayerTreeNode *child : constMChildren )
383391
{
384392
if ( _nodeIsChecked( child ) )
385393
{
@@ -396,7 +404,8 @@ void QgsLayerTreeGroup::setIsMutuallyExclusive( bool enabled, int initialChildIn
396404
QStringList QgsLayerTreeGroup::findLayerIds() const
397405
{
398406
QStringList lst;
399-
Q_FOREACH ( QgsLayerTreeNode *child, mChildren )
407+
const auto constMChildren = mChildren;
408+
for ( QgsLayerTreeNode *child : constMChildren )
400409
{
401410
if ( QgsLayerTree::isGroup( child ) )
402411
lst << QgsLayerTree::toGroup( child )->findLayerIds();
@@ -432,7 +441,8 @@ void QgsLayerTreeGroup::updateChildVisibilityMutuallyExclusive()
432441
mChangingChildVisibility = true; // guard against running again setVisible() triggered from children
433442

434443
int index = 0;
435-
Q_FOREACH ( QgsLayerTreeNode *child, mChildren )
444+
const auto constMChildren = mChildren;
445+
for ( QgsLayerTreeNode *child : constMChildren )
436446
{
437447
child->setItemVisibilityChecked( index == mMutuallyExclusiveChildIndex );
438448
++index;
@@ -448,7 +458,8 @@ void QgsLayerTreeGroup::setItemVisibilityCheckedRecursive( bool checked )
448458
mChangingChildVisibility = true; // guard against running again setVisible() triggered from children
449459

450460
int index = 0;
451-
Q_FOREACH ( QgsLayerTreeNode *child, mChildren )
461+
const auto constMChildren = mChildren;
462+
for ( QgsLayerTreeNode *child : constMChildren )
452463
{
453464
child->setItemVisibilityCheckedRecursive( checked && ( mMutuallyExclusiveChildIndex < 0 || index == mMutuallyExclusiveChildIndex ) );
454465
++index;

src/core/layertree/qgslayertreemodel.cpp

+25-14
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,8 @@ static bool _isChildOfNode( QgsLayerTreeNode *child, QgsLayerTreeNode *node )
474474

475475
static bool _isChildOfNodes( QgsLayerTreeNode *child, const QList<QgsLayerTreeNode *> &nodes )
476476
{
477-
Q_FOREACH ( QgsLayerTreeNode *n, nodes )
477+
const auto constNodes = nodes;
478+
for ( QgsLayerTreeNode *n : constNodes )
478479
{
479480
if ( _isChildOfNode( child, n ) )
480481
return true;
@@ -487,7 +488,8 @@ static bool _isChildOfNodes( QgsLayerTreeNode *child, const QList<QgsLayerTreeNo
487488
QList<QgsLayerTreeNode *> QgsLayerTreeModel::indexes2nodes( const QModelIndexList &list, bool skipInternal ) const
488489
{
489490
QList<QgsLayerTreeNode *> nodes;
490-
Q_FOREACH ( const QModelIndex &index, list )
491+
const auto constList = list;
492+
for ( const QModelIndex &index : constList )
491493
{
492494
QgsLayerTreeNode *node = index2node( index );
493495
if ( !node )
@@ -501,7 +503,8 @@ QList<QgsLayerTreeNode *> QgsLayerTreeModel::indexes2nodes( const QModelIndexLis
501503

502504
// remove any children of nodes if both parent node and children are selected
503505
QList<QgsLayerTreeNode *> nodesFinal;
504-
Q_FOREACH ( QgsLayerTreeNode *node, nodes )
506+
const auto constNodes = nodes;
507+
for ( QgsLayerTreeNode *node : constNodes )
505508
{
506509
if ( !_isChildOfNodes( node, nodes ) )
507510
nodesFinal << node;
@@ -1039,7 +1042,8 @@ QMimeData *QgsLayerTreeModel::mimeData( const QModelIndexList &indexes ) const
10391042

10401043
QDomDocument doc;
10411044
QDomElement rootElem = doc.createElement( QStringLiteral( "layer_tree_model_data" ) );
1042-
Q_FOREACH ( QgsLayerTreeNode *node, nodesFinal )
1045+
const auto constNodesFinal = nodesFinal;
1046+
for ( QgsLayerTreeNode *node : constNodesFinal )
10431047
node->writeXml( rootElem, QgsReadWriteContext() );
10441048
doc.appendChild( rootElem );
10451049
QString txt = doc.toString();
@@ -1144,7 +1148,8 @@ QList<QgsLayerTreeModelLegendNode *> QgsLayerTreeModel::filterLegendNodes( const
11441148

11451149
if ( mLegendFilterByScale > 0 )
11461150
{
1147-
Q_FOREACH ( QgsLayerTreeModelLegendNode *node, nodes )
1151+
const auto constNodes = nodes;
1152+
for ( QgsLayerTreeModelLegendNode *node : constNodes )
11481153
{
11491154
if ( node->isScaleOK( mLegendFilterByScale ) )
11501155
filtered << node;
@@ -1154,7 +1159,8 @@ QList<QgsLayerTreeModelLegendNode *> QgsLayerTreeModel::filterLegendNodes( const
11541159
{
11551160
if ( !nodes.isEmpty() && mLegendFilterMapSettings->layers().contains( nodes.at( 0 )->layerNode()->layer() ) )
11561161
{
1157-
Q_FOREACH ( QgsLayerTreeModelLegendNode *node, nodes )
1162+
const auto constNodes = nodes;
1163+
for ( QgsLayerTreeModelLegendNode *node : constNodes )
11581164
{
11591165
QString ruleKey = node->data( QgsSymbolLegendNode::RuleKeyRole ).toString();
11601166
bool checked = mLegendFilterUsesExtent || node->data( Qt::CheckStateRole ).toInt() == Qt::Checked;
@@ -1190,7 +1196,8 @@ QList<QgsLayerTreeModelLegendNode *> QgsLayerTreeModel::filterLegendNodes( const
11901196

11911197
void QgsLayerTreeModel::legendCleanup()
11921198
{
1193-
Q_FOREACH ( const LayerLegendData &data, mLegend )
1199+
const auto constMLegend = mLegend;
1200+
for ( const LayerLegendData &data : constMLegend )
11941201
{
11951202
qDeleteAll( data.originalNodes );
11961203
delete data.tree;
@@ -1242,7 +1249,8 @@ void QgsLayerTreeModel::addLegendToLayer( QgsLayerTreeLayer *nodeL )
12421249

12431250
QList<QgsLayerTreeModelLegendNode *> filteredLstNew = filterLegendNodes( lstNew );
12441251

1245-
Q_FOREACH ( QgsLayerTreeModelLegendNode *n, lstNew )
1252+
const auto constLstNew = lstNew;
1253+
for ( QgsLayerTreeModelLegendNode *n : constLstNew )
12461254
{
12471255
n->setParent( this );
12481256
connect( n, &QgsLayerTreeModelLegendNode::dataChanged, this, &QgsLayerTreeModel::legendNodeDataChanged );
@@ -1252,7 +1260,8 @@ void QgsLayerTreeModel::addLegendToLayer( QgsLayerTreeLayer *nodeL )
12521260
// Legend node embedded in parent does not have to be the first one,
12531261
// there can be also nodes generated for embedded widgets
12541262
QgsLayerTreeModelLegendNode *embeddedNode = nullptr;
1255-
Q_FOREACH ( QgsLayerTreeModelLegendNode *legendNode, filteredLstNew )
1263+
const auto constFilteredLstNew = filteredLstNew;
1264+
for ( QgsLayerTreeModelLegendNode *legendNode : constFilteredLstNew )
12561265
{
12571266
if ( legendNode->isEmbeddedInParent() )
12581267
{
@@ -1292,7 +1301,7 @@ QgsLayerTreeModel::LayerLegendTree *QgsLayerTreeModel::tryBuildLegendTree( const
12921301
{
12931302
// first check whether there are any legend nodes that are not top-level
12941303
bool hasParentKeys = false;
1295-
Q_FOREACH ( QgsLayerTreeModelLegendNode *n, nodes )
1304+
for ( QgsLayerTreeModelLegendNode *n : nodes )
12961305
{
12971306
if ( !n->data( QgsLayerTreeModelLegendNode::ParentRuleKeyRole ).toString().isEmpty() )
12981307
{
@@ -1306,7 +1315,7 @@ QgsLayerTreeModel::LayerLegendTree *QgsLayerTreeModel::tryBuildLegendTree( const
13061315
// make mapping from rules to nodes and do some sanity checks
13071316
QHash<QString, QgsLayerTreeModelLegendNode *> rule2node;
13081317
rule2node[QString()] = nullptr;
1309-
Q_FOREACH ( QgsLayerTreeModelLegendNode *n, nodes )
1318+
for ( QgsLayerTreeModelLegendNode *n : nodes )
13101319
{
13111320
QString ruleKey = n->data( QgsLayerTreeModelLegendNode::RuleKeyRole ).toString();
13121321
if ( ruleKey.isEmpty() ) // in tree all nodes must have key
@@ -1318,7 +1327,7 @@ QgsLayerTreeModel::LayerLegendTree *QgsLayerTreeModel::tryBuildLegendTree( const
13181327

13191328
// create the tree structure
13201329
LayerLegendTree *tree = new LayerLegendTree;
1321-
Q_FOREACH ( QgsLayerTreeModelLegendNode *n, nodes )
1330+
for ( QgsLayerTreeModelLegendNode *n : nodes )
13221331
{
13231332
QString parentRuleKey = n->data( QgsLayerTreeModelLegendNode::ParentRuleKeyRole ).toString();
13241333
QgsLayerTreeModelLegendNode *parent = rule2node.value( parentRuleKey, nullptr );
@@ -1541,7 +1550,8 @@ void QgsLayerTreeModel::invalidateLegendMapBasedData()
15411550

15421551
std::unique_ptr<QgsRenderContext> context( createTemporaryRenderContext() );
15431552

1544-
Q_FOREACH ( const LayerLegendData &data, mLegend )
1553+
const auto constMLegend = mLegend;
1554+
for ( const LayerLegendData &data : constMLegend )
15451555
{
15461556
QList<QgsSymbolLegendNode *> symbolNodes;
15471557
QMap<QString, int> widthMax;
@@ -1557,7 +1567,8 @@ void QgsLayerTreeModel::invalidateLegendMapBasedData()
15571567
symbolNodes.append( n );
15581568
}
15591569
}
1560-
Q_FOREACH ( QgsSymbolLegendNode *n, symbolNodes )
1570+
const auto constSymbolNodes = symbolNodes;
1571+
for ( QgsSymbolLegendNode *n : constSymbolNodes )
15611572
{
15621573
const QString parentKey( n->data( QgsLayerTreeModelLegendNode::ParentRuleKeyRole ).toString() );
15631574
Q_ASSERT( widthMax[parentKey] > 0 );

src/core/layertree/qgslayertreenode.cpp

+6-3
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,8 @@ bool QgsLayerTreeNode::isItemVisibilityCheckedRecursive() const
109109
{
110110
if ( !mChecked )
111111
return false;
112-
Q_FOREACH ( QgsLayerTreeNode *child, mChildren )
112+
const auto constMChildren = mChildren;
113+
for ( QgsLayerTreeNode *child : constMChildren )
113114
{
114115
if ( !child->isItemVisibilityCheckedRecursive() )
115116
return false;
@@ -122,7 +123,8 @@ bool QgsLayerTreeNode::isItemVisibilityUncheckedRecursive() const
122123
{
123124
if ( mChecked )
124125
return false;
125-
Q_FOREACH ( QgsLayerTreeNode *child, mChildren )
126+
const auto constMChildren = mChildren;
127+
for ( QgsLayerTreeNode *child : constMChildren )
126128
{
127129
if ( !child->isItemVisibilityUncheckedRecursive() )
128130
return false;
@@ -199,7 +201,8 @@ void QgsLayerTreeNode::insertChildrenPrivate( int index, QList<QgsLayerTreeNode
199201
if ( nodes.isEmpty() )
200202
return;
201203

202-
Q_FOREACH ( QgsLayerTreeNode *node, nodes )
204+
const auto constNodes = nodes;
205+
for ( QgsLayerTreeNode *node : constNodes )
203206
{
204207
Q_ASSERT( !node->mParent );
205208
node->mParent = this;

src/core/layertree/qgslayertreeregistrybridge.cpp

+6-3
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ void QgsLayerTreeRegistryBridge::layersAdded( const QList<QgsMapLayer *> &layers
4949
return;
5050

5151
QList<QgsLayerTreeNode *> nodes;
52-
Q_FOREACH ( QgsMapLayer *layer, layers )
52+
const auto constLayers = layers;
53+
for ( QgsMapLayer *layer : constLayers )
5354
{
5455
QgsLayerTreeLayer *nodeLayer = new QgsLayerTreeLayer( layer );
5556
nodeLayer->setItemVisibilityChecked( mNewLayersVisible );
@@ -83,7 +84,8 @@ void QgsLayerTreeRegistryBridge::layersWillBeRemoved( const QStringList &layerId
8384
// the registry _again_ in groupRemovedChildren() - this prevents it
8485
mRegistryRemovingLayers = true;
8586

86-
Q_FOREACH ( const QString &layerId, layerIds )
87+
const auto constLayerIds = layerIds;
88+
for ( const QString &layerId : constLayerIds )
8789
{
8890
QgsLayerTreeLayer *nodeLayer = mRoot->findLayer( layerId );
8991
if ( nodeLayer )
@@ -131,7 +133,8 @@ void QgsLayerTreeRegistryBridge::groupRemovedChildren()
131133
// remove only those that really do not exist in the tree
132134
// (ignores layers that were dragged'n'dropped: 1. drop new 2. remove old)
133135
QStringList toRemove;
134-
Q_FOREACH ( const QString &layerId, mLayerIdsForRemoval )
136+
const auto constMLayerIdsForRemoval = mLayerIdsForRemoval;
137+
for ( const QString &layerId : constMLayerIdsForRemoval )
135138
if ( !mRoot->findLayer( layerId ) )
136139
toRemove << layerId;
137140
mLayerIdsForRemoval.clear();

src/core/layertree/qgslayertreeutils.cpp

+8-4
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ bool QgsLayerTreeUtils::readOldLegendLayerOrder( const QDomElement &legendElem,
9393
if ( !res && hasCustomOrder )
9494
return false; // invalid state
9595

96-
Q_FOREACH ( const QString &layerId, layerIndexes )
96+
const auto constLayerIndexes = layerIndexes;
97+
for ( const QString &layerId : constLayerIndexes )
9798
{
9899
QgsDebugMsg( layerId );
99100
order.append( layerId );
@@ -262,7 +263,8 @@ static void _readOldLegendLayer( const QDomElement &layerElem, QgsLayerTreeGroup
262263

263264
bool QgsLayerTreeUtils::layersEditable( const QList<QgsLayerTreeLayer *> &layerNodes )
264265
{
265-
Q_FOREACH ( QgsLayerTreeLayer *layerNode, layerNodes )
266+
const auto constLayerNodes = layerNodes;
267+
for ( QgsLayerTreeLayer *layerNode : constLayerNodes )
266268
{
267269
QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( layerNode->layer() );
268270
if ( !vl )
@@ -276,7 +278,8 @@ bool QgsLayerTreeUtils::layersEditable( const QList<QgsLayerTreeLayer *> &layerN
276278

277279
bool QgsLayerTreeUtils::layersModified( const QList<QgsLayerTreeLayer *> &layerNodes )
278280
{
279-
Q_FOREACH ( QgsLayerTreeLayer *layerNode, layerNodes )
281+
const auto constLayerNodes = layerNodes;
282+
for ( QgsLayerTreeLayer *layerNode : constLayerNodes )
280283
{
281284
QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( layerNode->layer() );
282285
if ( !vl )
@@ -302,7 +305,8 @@ void QgsLayerTreeUtils::removeInvalidLayers( QgsLayerTreeGroup *group )
302305
}
303306
}
304307

305-
Q_FOREACH ( QgsLayerTreeNode *node, nodesToRemove )
308+
const auto constNodesToRemove = nodesToRemove;
309+
for ( QgsLayerTreeNode *node : constNodesToRemove )
306310
group->removeChildNode( node );
307311
}
308312

0 commit comments

Comments
 (0)