Skip to content

Commit 6b5d9d6

Browse files
author
mhugent
committedJun 9, 2008
Applied patch provided by Adrien to fix problem where attributes where not copied for modified features
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@8634 c8812cc2-4d05-0410-92ff-de0c093fc19c

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed
 

‎src/core/qgsvectorlayer.cpp

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1273,10 +1273,30 @@ int QgsVectorLayer::featuresInRectangle(const QgsRect& searchRect, QList<QgsFeat
12731273
}
12741274
if(fetchAttributes)
12751275
{
1276-
QgsFeature tmpFeature;
1277-
mDataProvider->getFeatureAtId(changedIt.key(), tmpFeature, false, mDataProvider->allAttributesList());
1278-
newFeature.setAttributeMap(tmpFeature.attributeMap());
1279-
1276+
if(changedIt.key()<0)
1277+
{
1278+
//The feature is in mAddedFeature's list because its id<0
1279+
bool findMyFeature = false;
1280+
for (QgsFeatureList::iterator iter = mAddedFeatures.begin(); iter != mAddedFeatures.end(); ++iter)
1281+
{
1282+
if(iter->featureId()==changedIt.key())
1283+
{
1284+
findMyFeature = true;
1285+
newFeature.setAttributeMap(iter->attributeMap());
1286+
break;
1287+
}
1288+
}
1289+
if(!findMyFeature)
1290+
{
1291+
QgsLogger::warning("No attribute for the feature");
1292+
}
1293+
}
1294+
else
1295+
{
1296+
QgsFeature tmpFeature;
1297+
mDataProvider->getFeatureAtId(changedIt.key(), tmpFeature, false, mDataProvider->allAttributesList());
1298+
newFeature.setAttributeMap(tmpFeature.attributeMap());
1299+
}
12801300
}
12811301
features.push_back(newFeature);
12821302
}

0 commit comments

Comments
 (0)
Please sign in to comment.