@@ -474,7 +474,8 @@ static bool _isChildOfNode( QgsLayerTreeNode *child, QgsLayerTreeNode *node )
474
474
475
475
static bool _isChildOfNodes ( QgsLayerTreeNode *child, const QList<QgsLayerTreeNode *> &nodes )
476
476
{
477
- Q_FOREACH ( QgsLayerTreeNode *n, nodes )
477
+ const auto constNodes = nodes;
478
+ for ( QgsLayerTreeNode *n : constNodes )
478
479
{
479
480
if ( _isChildOfNode ( child, n ) )
480
481
return true ;
@@ -487,7 +488,8 @@ static bool _isChildOfNodes( QgsLayerTreeNode *child, const QList<QgsLayerTreeNo
487
488
QList<QgsLayerTreeNode *> QgsLayerTreeModel::indexes2nodes ( const QModelIndexList &list, bool skipInternal ) const
488
489
{
489
490
QList<QgsLayerTreeNode *> nodes;
490
- Q_FOREACH ( const QModelIndex &index , list )
491
+ const auto constList = list;
492
+ for ( const QModelIndex &index : constList )
491
493
{
492
494
QgsLayerTreeNode *node = index2node ( index );
493
495
if ( !node )
@@ -501,7 +503,8 @@ QList<QgsLayerTreeNode *> QgsLayerTreeModel::indexes2nodes( const QModelIndexLis
501
503
502
504
// remove any children of nodes if both parent node and children are selected
503
505
QList<QgsLayerTreeNode *> nodesFinal;
504
- Q_FOREACH ( QgsLayerTreeNode *node, nodes )
506
+ const auto constNodes = nodes;
507
+ for ( QgsLayerTreeNode *node : constNodes )
505
508
{
506
509
if ( !_isChildOfNodes ( node, nodes ) )
507
510
nodesFinal << node;
@@ -1039,7 +1042,8 @@ QMimeData *QgsLayerTreeModel::mimeData( const QModelIndexList &indexes ) const
1039
1042
1040
1043
QDomDocument doc;
1041
1044
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 )
1043
1047
node->writeXml ( rootElem, QgsReadWriteContext () );
1044
1048
doc.appendChild ( rootElem );
1045
1049
QString txt = doc.toString ();
@@ -1144,7 +1148,8 @@ QList<QgsLayerTreeModelLegendNode *> QgsLayerTreeModel::filterLegendNodes( const
1144
1148
1145
1149
if ( mLegendFilterByScale > 0 )
1146
1150
{
1147
- Q_FOREACH ( QgsLayerTreeModelLegendNode *node, nodes )
1151
+ const auto constNodes = nodes;
1152
+ for ( QgsLayerTreeModelLegendNode *node : constNodes )
1148
1153
{
1149
1154
if ( node->isScaleOK ( mLegendFilterByScale ) )
1150
1155
filtered << node;
@@ -1154,7 +1159,8 @@ QList<QgsLayerTreeModelLegendNode *> QgsLayerTreeModel::filterLegendNodes( const
1154
1159
{
1155
1160
if ( !nodes.isEmpty () && mLegendFilterMapSettings ->layers ().contains ( nodes.at ( 0 )->layerNode ()->layer () ) )
1156
1161
{
1157
- Q_FOREACH ( QgsLayerTreeModelLegendNode *node, nodes )
1162
+ const auto constNodes = nodes;
1163
+ for ( QgsLayerTreeModelLegendNode *node : constNodes )
1158
1164
{
1159
1165
QString ruleKey = node->data ( QgsSymbolLegendNode::RuleKeyRole ).toString ();
1160
1166
bool checked = mLegendFilterUsesExtent || node->data ( Qt::CheckStateRole ).toInt () == Qt::Checked;
@@ -1190,7 +1196,8 @@ QList<QgsLayerTreeModelLegendNode *> QgsLayerTreeModel::filterLegendNodes( const
1190
1196
1191
1197
void QgsLayerTreeModel::legendCleanup ()
1192
1198
{
1193
- Q_FOREACH ( const LayerLegendData &data, mLegend )
1199
+ const auto constMLegend = mLegend ;
1200
+ for ( const LayerLegendData &data : constMLegend )
1194
1201
{
1195
1202
qDeleteAll ( data.originalNodes );
1196
1203
delete data.tree ;
@@ -1242,7 +1249,8 @@ void QgsLayerTreeModel::addLegendToLayer( QgsLayerTreeLayer *nodeL )
1242
1249
1243
1250
QList<QgsLayerTreeModelLegendNode *> filteredLstNew = filterLegendNodes ( lstNew );
1244
1251
1245
- Q_FOREACH ( QgsLayerTreeModelLegendNode *n, lstNew )
1252
+ const auto constLstNew = lstNew;
1253
+ for ( QgsLayerTreeModelLegendNode *n : constLstNew )
1246
1254
{
1247
1255
n->setParent ( this );
1248
1256
connect ( n, &QgsLayerTreeModelLegendNode::dataChanged, this , &QgsLayerTreeModel::legendNodeDataChanged );
@@ -1252,7 +1260,8 @@ void QgsLayerTreeModel::addLegendToLayer( QgsLayerTreeLayer *nodeL )
1252
1260
// Legend node embedded in parent does not have to be the first one,
1253
1261
// there can be also nodes generated for embedded widgets
1254
1262
QgsLayerTreeModelLegendNode *embeddedNode = nullptr ;
1255
- Q_FOREACH ( QgsLayerTreeModelLegendNode *legendNode, filteredLstNew )
1263
+ const auto constFilteredLstNew = filteredLstNew;
1264
+ for ( QgsLayerTreeModelLegendNode *legendNode : constFilteredLstNew )
1256
1265
{
1257
1266
if ( legendNode->isEmbeddedInParent () )
1258
1267
{
@@ -1292,7 +1301,7 @@ QgsLayerTreeModel::LayerLegendTree *QgsLayerTreeModel::tryBuildLegendTree( const
1292
1301
{
1293
1302
// first check whether there are any legend nodes that are not top-level
1294
1303
bool hasParentKeys = false ;
1295
- Q_FOREACH ( QgsLayerTreeModelLegendNode *n, nodes )
1304
+ for ( QgsLayerTreeModelLegendNode *n : nodes )
1296
1305
{
1297
1306
if ( !n->data ( QgsLayerTreeModelLegendNode::ParentRuleKeyRole ).toString ().isEmpty () )
1298
1307
{
@@ -1306,7 +1315,7 @@ QgsLayerTreeModel::LayerLegendTree *QgsLayerTreeModel::tryBuildLegendTree( const
1306
1315
// make mapping from rules to nodes and do some sanity checks
1307
1316
QHash<QString, QgsLayerTreeModelLegendNode *> rule2node;
1308
1317
rule2node[QString ()] = nullptr ;
1309
- Q_FOREACH ( QgsLayerTreeModelLegendNode *n, nodes )
1318
+ for ( QgsLayerTreeModelLegendNode *n : nodes )
1310
1319
{
1311
1320
QString ruleKey = n->data ( QgsLayerTreeModelLegendNode::RuleKeyRole ).toString ();
1312
1321
if ( ruleKey.isEmpty () ) // in tree all nodes must have key
@@ -1318,7 +1327,7 @@ QgsLayerTreeModel::LayerLegendTree *QgsLayerTreeModel::tryBuildLegendTree( const
1318
1327
1319
1328
// create the tree structure
1320
1329
LayerLegendTree *tree = new LayerLegendTree;
1321
- Q_FOREACH ( QgsLayerTreeModelLegendNode *n, nodes )
1330
+ for ( QgsLayerTreeModelLegendNode *n : nodes )
1322
1331
{
1323
1332
QString parentRuleKey = n->data ( QgsLayerTreeModelLegendNode::ParentRuleKeyRole ).toString ();
1324
1333
QgsLayerTreeModelLegendNode *parent = rule2node.value ( parentRuleKey, nullptr );
@@ -1541,7 +1550,8 @@ void QgsLayerTreeModel::invalidateLegendMapBasedData()
1541
1550
1542
1551
std::unique_ptr<QgsRenderContext> context ( createTemporaryRenderContext () );
1543
1552
1544
- Q_FOREACH ( const LayerLegendData &data, mLegend )
1553
+ const auto constMLegend = mLegend ;
1554
+ for ( const LayerLegendData &data : constMLegend )
1545
1555
{
1546
1556
QList<QgsSymbolLegendNode *> symbolNodes;
1547
1557
QMap<QString, int > widthMax;
@@ -1557,7 +1567,8 @@ void QgsLayerTreeModel::invalidateLegendMapBasedData()
1557
1567
symbolNodes.append ( n );
1558
1568
}
1559
1569
}
1560
- Q_FOREACH ( QgsSymbolLegendNode *n, symbolNodes )
1570
+ const auto constSymbolNodes = symbolNodes;
1571
+ for ( QgsSymbolLegendNode *n : constSymbolNodes )
1561
1572
{
1562
1573
const QString parentKey ( n->data ( QgsLayerTreeModelLegendNode::ParentRuleKeyRole ).toString () );
1563
1574
Q_ASSERT ( widthMax[parentKey] > 0 );
0 commit comments