[QGIS Commit] r8634 - trunk/qgis/src/core
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Mon Jun 9 13:12:09 EDT 2008
Author: mhugent
Date: 2008-06-09 13:12:09 -0400 (Mon, 09 Jun 2008)
New Revision: 8634
Modified:
trunk/qgis/src/core/qgsvectorlayer.cpp
Log:
Applied patch provided by Adrien to fix problem where attributes where not copied for modified features
Modified: trunk/qgis/src/core/qgsvectorlayer.cpp
===================================================================
--- trunk/qgis/src/core/qgsvectorlayer.cpp 2008-06-09 16:11:38 UTC (rev 8633)
+++ trunk/qgis/src/core/qgsvectorlayer.cpp 2008-06-09 17:12:09 UTC (rev 8634)
@@ -1273,10 +1273,30 @@
}
if(fetchAttributes)
{
- QgsFeature tmpFeature;
- mDataProvider->getFeatureAtId(changedIt.key(), tmpFeature, false, mDataProvider->allAttributesList());
- newFeature.setAttributeMap(tmpFeature.attributeMap());
-
+ if(changedIt.key()<0)
+ {
+ //The feature is in mAddedFeature's list because its id<0
+ bool findMyFeature = false;
+ for (QgsFeatureList::iterator iter = mAddedFeatures.begin(); iter != mAddedFeatures.end(); ++iter)
+ {
+ if(iter->featureId()==changedIt.key())
+ {
+ findMyFeature = true;
+ newFeature.setAttributeMap(iter->attributeMap());
+ break;
+ }
+ }
+ if(!findMyFeature)
+ {
+ QgsLogger::warning("No attribute for the feature");
+ }
+ }
+ else
+ {
+ QgsFeature tmpFeature;
+ mDataProvider->getFeatureAtId(changedIt.key(), tmpFeature, false, mDataProvider->allAttributesList());
+ newFeature.setAttributeMap(tmpFeature.attributeMap());
+ }
}
features.push_back(newFeature);
}
More information about the QGIS-commit
mailing list