[QGIS Commit] r13379 - in trunk/qgis/src/providers: memory spatialite

svn_qgis at osgeo.org svn_qgis at osgeo.org
Sun Apr 25 08:47:18 EDT 2010


Author: jef
Date: 2010-04-25 08:47:16 -0400 (Sun, 25 Apr 2010)
New Revision: 13379

Modified:
   trunk/qgis/src/providers/memory/qgsmemoryprovider.cpp
   trunk/qgis/src/providers/spatialite/qgsspatialiteprovider.cpp
Log:
also set feature validity in featureAtId of memory and spatialite provider

Modified: trunk/qgis/src/providers/memory/qgsmemoryprovider.cpp
===================================================================
--- trunk/qgis/src/providers/memory/qgsmemoryprovider.cpp	2010-04-25 09:05:57 UTC (rev 13378)
+++ trunk/qgis/src/providers/memory/qgsmemoryprovider.cpp	2010-04-25 12:47:16 UTC (rev 13379)
@@ -69,7 +69,7 @@
 bool QgsMemoryProvider::nextFeature( QgsFeature& feature )
 {
   feature.setValid( false );
-  bool hasFeature = FALSE;
+  bool hasFeature = false;
 
   // option 1: using spatial index
   if ( mSelectUsingSpatialIndex )
@@ -80,10 +80,10 @@
       if ( mSelectUseIntersect )
       {
         if ( mFeatures[*mSelectSI_Iterator].geometry()->intersects( mSelectRectGeom ) )
-          hasFeature = TRUE;
+          hasFeature = true;
       }
       else
-        hasFeature = TRUE;
+        hasFeature = true;
 
       if ( hasFeature )
         break;
@@ -106,7 +106,7 @@
     if ( mSelectRect.isEmpty() )
     {
       // selection rect empty => using all features
-      hasFeature = TRUE;
+      hasFeature = true;
     }
     else
     {
@@ -114,13 +114,13 @@
       {
         // using exact test when checking for intersection
         if ( mSelectIterator->geometry()->intersects( mSelectRectGeom ) )
-          hasFeature = TRUE;
+          hasFeature = true;
       }
       else
       {
         // check just bounding box against rect when not using intersection
         if ( mSelectIterator->geometry()->boundingBox().intersects( mSelectRect ) )
-          hasFeature = TRUE;
+          hasFeature = true;
       }
     }
 
@@ -147,13 +147,15 @@
                                      bool fetchGeometry,
                                      QgsAttributeList fetchAttributes )
 {
+  feature.setValid( false );
   QgsFeatureMap::iterator it = mFeatures.find( featureId );
 
   if ( it == mFeatures.end() )
-    return FALSE;
+    return false;
 
   feature = *it;
-  return TRUE;
+  feature.setValid( true );
+  return true;
 }
 
 
@@ -173,13 +175,13 @@
   // (but don't use it when selection rect is not specified)
   if ( mSpatialIndex && !mSelectRect.isEmpty() )
   {
-    mSelectUsingSpatialIndex = TRUE;
+    mSelectUsingSpatialIndex = true;
     mSelectSI_Features = mSpatialIndex->intersects( rect );
     QgsDebugMsg( "Features returned by spatial index: " + QString::number( mSelectSI_Features.count() ) );
   }
   else
   {
-    mSelectUsingSpatialIndex = FALSE;
+    mSelectUsingSpatialIndex = false;
     mSelectSI_Features.clear();
   }
 
@@ -252,7 +254,7 @@
 
   updateExtent();
 
-  return TRUE;
+  return true;
 }
 
 bool QgsMemoryProvider::deleteFeatures( const QgsFeatureIds & id )
@@ -274,7 +276,7 @@
 
   updateExtent();
 
-  return TRUE;
+  return true;
 }
 
 bool QgsMemoryProvider::addAttributes( const QList<QgsField> &attributes )
@@ -298,14 +300,14 @@
       if ( it2.key() > nextId ) nextId = it2.key();
     mFields[nextId+1] = *it;
   }
-  return TRUE;
+  return true;
 }
 
 bool QgsMemoryProvider::deleteAttributes( const QgsAttributeIds& attributes )
 {
   for ( QgsAttributeIds::const_iterator it = attributes.begin(); it != attributes.end(); ++it )
     mFields.remove( *it );
-  return TRUE;
+  return true;
 }
 
 bool QgsMemoryProvider::changeAttributeValues( const QgsChangedAttributesMap & attr_map )
@@ -320,7 +322,7 @@
     for ( QgsAttributeMap::const_iterator it2 = attrs.begin(); it2 != attrs.end(); ++it2 )
       fit->changeAttribute( it2.key(), it2.value() );
   }
-  return TRUE;
+  return true;
 }
 
 bool QgsMemoryProvider::changeGeometryValues( QgsGeometryMap & geometry_map )
@@ -344,7 +346,7 @@
 
   updateExtent();
 
-  return TRUE;
+  return true;
 }
 
 bool QgsMemoryProvider::createSpatialIndex()
@@ -359,7 +361,7 @@
       mSpatialIndex->insertFeature( *it );
     }
   }
-  return TRUE;
+  return true;
 }
 
 int QgsMemoryProvider::capabilities() const

Modified: trunk/qgis/src/providers/spatialite/qgsspatialiteprovider.cpp
===================================================================
--- trunk/qgis/src/providers/spatialite/qgsspatialiteprovider.cpp	2010-04-25 09:05:57 UTC (rev 13378)
+++ trunk/qgis/src/providers/spatialite/qgsspatialiteprovider.cpp	2010-04-25 12:47:16 UTC (rev 13379)
@@ -222,6 +222,8 @@
 {
   sqlite3_stmt *stmt = NULL;
 
+  feature.setValid( false );
+
   QString sql = "SELECT ROWID";
   for ( QgsAttributeList::const_iterator it = fetchAttributes.constBegin(); it != fetchAttributes.constEnd(); ++it )
   {
@@ -347,6 +349,8 @@
   }
   sqlite3_finalize( stmt );
 
+  feature.setValid( true );
+
   return true;
 }
 
@@ -1433,7 +1437,7 @@
   }
 
   // checking the DB for sanity
-  if ( checkMetadata( sqlite_handle ) == false )
+  if ( !checkMetadata( sqlite_handle ) )
   {
     // failure
     QgsDebugMsg( QString( "Failure while connecting to: %1\n\ninvalid metadata tables" ).arg( dbPath ) );



More information about the QGIS-commit mailing list