@@ -507,16 +507,16 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
507
507
QgsFeature feature;
508
508
509
509
mWithGeom = true ;
510
- // QgsAttributeList attrIndexes = provider->attributeIndexes();
510
+
511
+ // Using pending attributes and pending fields
511
512
QgsAttributeList attrIndexes = layer->pendingAllAttributesList ();
512
513
513
514
QDomNodeList queryChildNodes = queryElem.childNodes ();
514
515
if ( queryChildNodes.size () )
515
516
{
516
517
QStringList::const_iterator alstIt;
517
518
QList<int > idxList;
518
- QMap<QString, int > fieldMap = provider->fieldNameMap ();
519
- QMap<QString, int >::const_iterator fieldIt;
519
+ QgsFields fields = layer->pendingFields ();
520
520
QString fieldName;
521
521
QDomElement propertyElem;
522
522
for ( int q = 0 ; q < queryChildNodes.size (); q++ )
@@ -529,10 +529,10 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
529
529
{
530
530
fieldName = fieldName.section ( " :" , 1 , 1 );
531
531
}
532
- fieldIt = fieldMap. find ( fieldName );
533
- if ( fieldIt != fieldMap. end () )
532
+ int fieldNameIdx = fields. fieldNameIndex ( fieldName );
533
+ if ( fieldNameIdx > - 1 )
534
534
{
535
- idxList.append ( fieldIt. value () );
535
+ idxList.append ( fieldNameIdx );
536
536
}
537
537
}
538
538
}
@@ -896,7 +896,7 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
896
896
// map extent
897
897
searchRect = layer->extent ();
898
898
899
- // QgsAttributeList attrIndexes = provider->attributeIndexes();
899
+ // Using pending attributes and pending fields
900
900
QgsAttributeList attrIndexes = layer->pendingAllAttributesList ();
901
901
if ( mPropertyName != " *" )
902
902
{
@@ -905,16 +905,15 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
905
905
{
906
906
QStringList::const_iterator alstIt;
907
907
QList<int > idxList;
908
- QMap<QString, int > fieldMap = provider->fieldNameMap ();
909
- QMap<QString, int >::const_iterator fieldIt;
908
+ QgsFields fields = layer->pendingFields ();
910
909
QString fieldName;
911
910
for ( alstIt = attrList.begin (); alstIt != attrList.end (); ++alstIt )
912
911
{
913
912
fieldName = *alstIt;
914
- fieldIt = fieldMap. find ( fieldName );
915
- if ( fieldIt != fieldMap. end () )
913
+ int fieldNameIdx = fields. fieldNameIndex ( fieldName );
914
+ if ( fieldNameIdx > - 1 )
916
915
{
917
- idxList.append ( fieldIt. value () );
916
+ idxList.append ( fieldNameIdx );
918
917
}
919
918
}
920
919
if ( !idxList.isEmpty () )
0 commit comments