[QGIS Commit] r8737 - trunk/qgis/src/providers/memory
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Tue Jul 8 10:05:11 EDT 2008
Author: wonder
Date: 2008-07-08 10:05:11 -0400 (Tue, 08 Jul 2008)
New Revision: 8737
Modified:
trunk/qgis/src/providers/memory/memoryprovider.cpp
Log:
added missing implementations for changeAttributeValues, changeGeometryValues
Modified: trunk/qgis/src/providers/memory/memoryprovider.cpp
===================================================================
--- trunk/qgis/src/providers/memory/memoryprovider.cpp 2008-07-08 14:03:09 UTC (rev 8736)
+++ trunk/qgis/src/providers/memory/memoryprovider.cpp 2008-07-08 14:05:11 UTC (rev 8737)
@@ -306,19 +306,41 @@
bool QgsMemoryProvider::changeAttributeValues(const QgsChangedAttributesMap & attr_map)
{
- // TODO: change attribute values
- return FALSE;
+ for (QgsChangedAttributesMap::const_iterator it = attr_map.begin(); it != attr_map.end(); ++it)
+ {
+ QgsFeatureMap::iterator fit = mFeatures.find(it.key());
+ if (fit == mFeatures.end())
+ continue;
+
+ const QgsAttributeMap& attrs = it.value();
+ for (QgsAttributeMap::const_iterator it2 = attrs.begin(); it2 != attrs.end(); ++it2)
+ fit->changeAttribute(it2.key(), it2.value());
+ }
+ return TRUE;
}
bool QgsMemoryProvider::changeGeometryValues(QgsGeometryMap & geometry_map)
{
- // TODO: change geometries
+ for (QgsGeometryMap::const_iterator it = geometry_map.begin(); it != geometry_map.end(); ++it)
+ {
+ QgsFeatureMap::iterator fit = mFeatures.find(it.key());
+ if (fit == mFeatures.end())
+ continue;
+
+ // update spatial index
+ if (mSpatialIndex)
+ mSpatialIndex->deleteFeature(*fit);
+
+ fit->setGeometry(it.value());
+
+ // update spatial index
+ if (mSpatialIndex)
+ mSpatialIndex->insertFeature(*fit);
+ }
- // TODO: update spatial index
-
updateExtent();
- return FALSE;
+ return TRUE;
}
bool QgsMemoryProvider::createSpatialIndex()
More information about the QGIS-commit
mailing list