@@ -1423,38 +1423,33 @@ void QgsWFSFeatureIterator::copyFeature( const QgsFeature &srcFeature, QgsFeatur
1423
1423
QgsFields &fields = mShared ->mFields ;
1424
1424
dstFeature.initAttributes ( fields.size () );
1425
1425
1426
+ auto setAttr = [ & ]( const int i )
1427
+ {
1428
+ int idx = srcFeature.fields ().indexFromName ( fields.at ( i ).name () );
1429
+ if ( idx >= 0 )
1430
+ {
1431
+ const QVariant &v = srcFeature.attributes ().value ( idx );
1432
+ if ( v.type () == fields.at ( i ).type () )
1433
+ dstFeature.setAttribute ( i, v );
1434
+ else if ( fields.at ( i ).type () == QVariant::DateTime && !v.isNull () )
1435
+ dstFeature.setAttribute ( i, QVariant ( QDateTime::fromMSecsSinceEpoch ( v.toLongLong () ) ) );
1436
+ else
1437
+ dstFeature.setAttribute ( i, QgsVectorDataProvider::convertValue ( fields.at ( i ).type (), v.toString () ) );
1438
+ }
1439
+ };
1440
+
1426
1441
if ( mRequest .flags () & QgsFeatureRequest::SubsetOfAttributes )
1427
1442
{
1428
- Q_FOREACH ( int i, mSubSetAttributes )
1443
+ for ( auto i : qgis::as_const ( mSubSetAttributes ) )
1429
1444
{
1430
- int idx = srcFeature.fields ().indexFromName ( fields.at ( i ).name () );
1431
- if ( idx >= 0 )
1432
- {
1433
- const QVariant &v = srcFeature.attributes ().value ( idx );
1434
- if ( v.type () == fields.at ( i ).type () )
1435
- dstFeature.setAttribute ( i, v );
1436
- else if ( fields.at ( i ).type () == QVariant::DateTime && !v.isNull () )
1437
- dstFeature.setAttribute ( i, QVariant ( QDateTime::fromMSecsSinceEpoch ( v.toLongLong () ) ) );
1438
- else
1439
- dstFeature.setAttribute ( i, QgsVectorDataProvider::convertValue ( fields.at ( i ).type (), v.toString () ) );
1440
- }
1445
+ setAttr ( i );
1441
1446
}
1442
1447
}
1443
1448
else
1444
1449
{
1445
1450
for ( int i = 0 ; i < fields.size (); i++ )
1446
1451
{
1447
- int idx = srcFeature.fields ().indexFromName ( fields.at ( i ).name () );
1448
- if ( idx >= 0 )
1449
- {
1450
- const QVariant &v = srcFeature.attributes ().value ( idx );
1451
- if ( v.type () == fields.at ( i ).type () )
1452
- dstFeature.setAttribute ( i, v );
1453
- else if ( fields.at ( i ).type () == QVariant::DateTime && !v.isNull () )
1454
- dstFeature.setAttribute ( i, QVariant ( QDateTime::fromMSecsSinceEpoch ( v.toLongLong () ) ) );
1455
- else
1456
- dstFeature.setAttribute ( i, QgsVectorDataProvider::convertValue ( fields.at ( i ).type (), v.toString () ) );
1457
- }
1452
+ setAttr ( i );
1458
1453
}
1459
1454
}
1460
1455
0 commit comments