Skip to content

Commit f816588

Browse files
authored
Merge pull request #6862 from m-kuhn/core-headers-no-qforeach
Rewrite all core header usages of Q_FOREACH
2 parents c3b6990 + f5099db commit f816588

15 files changed

+143
-105
lines changed

python/core/qgsrelation.sip.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ The second element of each pair are the field names of the matching primary key.
238238
%MethodCode
239239
const QList< QgsRelation::FieldPair > &pairs = sipCpp->fieldPairs();
240240
sipRes = new QMap< QString, QString >();
241-
Q_FOREACH ( const QgsRelation::FieldPair &pair, pairs )
241+
for ( const QgsRelation::FieldPair &pair : pairs )
242242
{
243243
sipRes->insert( pair.first, pair.second );
244244
}

src/core/qgsexpressionsorter.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class QgsExpressionSorter
3636
bool operator()( const QgsIndexedFeature &f1, const QgsIndexedFeature &f2 ) const
3737
{
3838
int i = 0;
39-
Q_FOREACH ( const QgsFeatureRequest::OrderByClause &orderBy, mPreparedOrderBys )
39+
for ( const QgsFeatureRequest::OrderByClause &orderBy : qgis::as_const( mPreparedOrderBys ) )
4040
{
4141
const QVariant &v1 = f1.mIndexes.at( i );
4242
const QVariant &v2 = f2.mIndexes.at( i );
@@ -143,15 +143,15 @@ class QgsExpressionSorter
143143

144144
QgsIndexedFeature indexedFeature;
145145

146-
Q_FOREACH ( const QgsFeature &f, features )
146+
for ( const QgsFeature &f : qgis::as_const( features ) )
147147
{
148148
indexedFeature.mIndexes.resize( mPreparedOrderBys.size() );
149149
indexedFeature.mFeature = f;
150150

151151
expressionContext->setFeature( indexedFeature.mFeature );
152152

153153
int i = 0;
154-
Q_FOREACH ( const QgsFeatureRequest::OrderByClause &orderBy, mPreparedOrderBys )
154+
for ( const QgsFeatureRequest::OrderByClause &orderBy : qgis::as_const( mPreparedOrderBys ) )
155155
{
156156
indexedFeature.mIndexes.replace( i++, orderBy.expression().evaluate( expressionContext ) );
157157
}
@@ -164,7 +164,7 @@ class QgsExpressionSorter
164164

165165
features.clear();
166166

167-
Q_FOREACH ( const QgsIndexedFeature &indexedFeature, indexedFeatures )
167+
for ( const QgsIndexedFeature &indexedFeature : qgis::as_const( indexedFeatures ) )
168168
features.append( indexedFeature.mFeature );
169169
}
170170

src/core/qgsmaplayerlistutils.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ inline QList<QgsMapLayer *> _qgis_listQPointerToRaw( const QgsWeakMapLayerPointe
3535
{
3636
QList<QgsMapLayer *> lst;
3737
lst.reserve( layers.count() );
38-
Q_FOREACH ( const QgsWeakMapLayerPointer &layerPtr, layers )
38+
for ( const QgsWeakMapLayerPointer &layerPtr : layers )
3939
{
4040
if ( layerPtr )
4141
lst.append( layerPtr.data() );
@@ -47,7 +47,7 @@ inline QgsWeakMapLayerPointerList _qgis_listRawToQPointer( const QList<QgsMapLay
4747
{
4848
QgsWeakMapLayerPointerList lst;
4949
lst.reserve( layers.count() );
50-
Q_FOREACH ( QgsMapLayer *layer, layers )
50+
for ( QgsMapLayer *layer : layers )
5151
{
5252
lst.append( layer );
5353
}
@@ -58,7 +58,7 @@ inline QList<QgsMapLayer *> _qgis_listRefToRaw( const QList< QgsMapLayerRef > &l
5858
{
5959
QList<QgsMapLayer *> lst;
6060
lst.reserve( layers.count() );
61-
Q_FOREACH ( const QgsMapLayerRef &layer, layers )
61+
for ( const QgsMapLayerRef &layer : layers )
6262
{
6363
if ( layer )
6464
lst.append( layer.get() );
@@ -70,7 +70,7 @@ inline QList< QgsMapLayerRef > _qgis_listRawToRef( const QList<QgsMapLayer *> &l
7070
{
7171
QList< QgsMapLayerRef > lst;
7272
lst.reserve( layers.count() );
73-
Q_FOREACH ( QgsMapLayer *layer, layers )
73+
for ( QgsMapLayer *layer : layers )
7474
{
7575
lst.append( QgsMapLayerRef( layer ) );
7676
}
@@ -92,7 +92,7 @@ inline QStringList _qgis_listQPointerToIDs( const QgsWeakMapLayerPointerList &la
9292
{
9393
QStringList lst;
9494
lst.reserve( layers.count() );
95-
Q_FOREACH ( const QgsWeakMapLayerPointer &layerPtr, layers )
95+
for ( const QgsWeakMapLayerPointer &layerPtr : layers )
9696
{
9797
if ( layerPtr )
9898
lst << layerPtr->id();
@@ -107,7 +107,7 @@ inline static QgsMapLayer *_qgis_findLayer( const QList< QgsMapLayer *> &layers,
107107
QgsMapLayer *matchNameInsensitive = nullptr;
108108

109109
// Look for match against layer IDs
110-
Q_FOREACH ( QgsMapLayer *layer, layers )
110+
for ( QgsMapLayer *layer : layers )
111111
{
112112
if ( !matchId && layer->id() == identifier )
113113
{

src/core/qgsmaplayerref.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,8 @@ struct _LayerRef
171171

172172
if ( project && !name.isEmpty() )
173173
{
174-
Q_FOREACH ( QgsMapLayer *l, project->mapLayersByName( name ) )
174+
const QList<QgsMapLayer *> layers = project->mapLayersByName( name );
175+
for ( QgsMapLayer *l : layers )
175176
{
176177
if ( TYPE *tl = qobject_cast< TYPE *>( l ) )
177178
{

src/core/qgsrelation.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ class CORE_EXPORT QgsRelation
296296
% MethodCode
297297
const QList< QgsRelation::FieldPair > &pairs = sipCpp->fieldPairs();
298298
sipRes = new QMap< QString, QString >();
299-
Q_FOREACH ( const QgsRelation::FieldPair &pair, pairs )
299+
for ( const QgsRelation::FieldPair &pair : pairs )
300300
{
301301
sipRes->insert( pair.first, pair.second );
302302
}

src/core/qgsrulebasedlabeling.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,17 @@ void QgsRuleBasedLabeling::Rule::setSettings( QgsPalLayerSettings *settings )
8686
mSettings = settings;
8787
}
8888

89+
QgsRuleBasedLabeling::RuleList QgsRuleBasedLabeling::Rule::descendants() const
90+
{
91+
RuleList l;
92+
for ( Rule *c : mChildren )
93+
{
94+
l += c;
95+
l += c->descendants();
96+
}
97+
return l;
98+
}
99+
89100
void QgsRuleBasedLabeling::Rule::initFilter()
90101
{
91102
if ( mElseRule || mFilterExp.compare( QLatin1String( "ELSE" ), Qt::CaseInsensitive ) == 0 )

src/core/qgsrulebasedlabeling.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ class CORE_EXPORT QgsRuleBasedLabeling : public QgsAbstractVectorLayerLabeling
203203
*
204204
* \returns A list of descendant rules
205205
*/
206-
QgsRuleBasedLabeling::RuleList descendants() const { RuleList l; Q_FOREACH ( Rule *c, mChildren ) { l += c; l += c->descendants(); } return l; }
206+
QgsRuleBasedLabeling::RuleList descendants() const;
207207

208208
/**
209209
* The parent rule

src/core/qgssqlstatement.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,14 @@ bool QgsSQLStatement::doBasicValidationChecks( QString &errorMsgOut ) const
251251
///////////////////////////////////////////////
252252
// nodes
253253

254+
void QgsSQLStatement::NodeList::accept( QgsSQLStatement::Visitor &v ) const
255+
{
256+
for ( QgsSQLStatement::Node *node : mList )
257+
{
258+
node->accept( v );
259+
}
260+
}
261+
254262
QgsSQLStatement::NodeList *QgsSQLStatement::NodeList::clone() const
255263
{
256264
NodeList *nl = new NodeList;

src/core/qgssqlstatement.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ class CORE_EXPORT QgsSQLStatement
301301
int count() const { return mList.count(); }
302302

303303
//! Accept visitor
304-
void accept( QgsSQLStatement::Visitor &v ) const { Q_FOREACH ( QgsSQLStatement::Node *node, mList ) { node->accept( v ); } }
304+
void accept( QgsSQLStatement::Visitor &v ) const;
305305

306306
//! Creates a deep copy of this list. Ownership is transferred to the caller
307307
QgsSQLStatement::NodeList *clone() const SIP_FACTORY;

src/core/symbology/qgscolorbrewerpalette.cpp

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,3 +291,56 @@ const char *QgsColorBrewerPalette::BREWER_STRING =
291291
"PuBuGn-7-246,239,247 208,209,230 166,189,219 103,169,207 54,144,192 2,129,138 1,100,80\n"
292292
"PuBuGn-8-255,247,251 236,226,240 208,209,230 166,189,219 103,169,207 54,144,192 2,129,138 1,100,80\n"
293293
"PuBuGn-9-255,247,251 236,226,240 208,209,230 166,189,219 103,169,207 54,144,192 2,129,138 1,108,89 1,70,54";
294+
295+
QList<QColor> QgsColorBrewerPalette::listSchemeColors( const QString &schemeName, int colors )
296+
{
297+
QList<QColor> pal;
298+
QString palette( BREWER_STRING );
299+
const QStringList list = palette.split( QChar( '\n' ) );
300+
for ( const QString &entry : list )
301+
{
302+
QStringList items = entry.split( QChar( '-' ) );
303+
if ( items.count() != 3 || items[0] != schemeName || items[1].toInt() != colors )
304+
continue;
305+
const QStringList colors = items[2].split( QChar( ' ' ) );
306+
for ( const QString &clr : colors )
307+
{
308+
pal << QgsSymbolLayerUtils::parseColor( clr );
309+
}
310+
}
311+
return pal;
312+
}
313+
314+
QStringList QgsColorBrewerPalette::listSchemes()
315+
{
316+
QStringList schemes;
317+
318+
QString palette( BREWER_STRING );
319+
const QStringList list = palette.split( QChar( '\n' ) );
320+
for ( const QString &entry : list )
321+
{
322+
QStringList items = entry.split( QChar( '-' ) );
323+
if ( items.count() != 3 )
324+
continue;
325+
if ( !schemes.contains( items[0] ) )
326+
schemes << items[0];
327+
}
328+
return schemes;
329+
}
330+
331+
QList<int> QgsColorBrewerPalette::listSchemeVariants( const QString &schemeName )
332+
{
333+
QList<int> variants;
334+
335+
QString palette( BREWER_STRING );
336+
const QStringList list = palette.split( QChar( '\n' ) );
337+
for ( const QString &entry : list )
338+
{
339+
QStringList items = entry.split( QChar( '-' ) );
340+
if ( items.count() != 3 || items[0] != schemeName )
341+
continue;
342+
variants << items[1].toInt();
343+
}
344+
345+
return variants;
346+
}

0 commit comments

Comments
 (0)