Skip to content

Commit 2480fce

Browse files
author
jef
committedApr 25, 2010
also set feature validity in featureAtId of memory and spatialite provider
git-svn-id: http://svn.osgeo.org/qgis/trunk@13379 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 51f815a commit 2480fce

File tree

2 files changed

+24
-18
lines changed

2 files changed

+24
-18
lines changed
 

‎src/providers/memory/qgsmemoryprovider.cpp

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ QString QgsMemoryProvider::storageType() const
6969
bool QgsMemoryProvider::nextFeature( QgsFeature& feature )
7070
{
7171
feature.setValid( false );
72-
bool hasFeature = FALSE;
72+
bool hasFeature = false;
7373

7474
// option 1: using spatial index
7575
if ( mSelectUsingSpatialIndex )
@@ -80,10 +80,10 @@ bool QgsMemoryProvider::nextFeature( QgsFeature& feature )
8080
if ( mSelectUseIntersect )
8181
{
8282
if ( mFeatures[*mSelectSI_Iterator].geometry()->intersects( mSelectRectGeom ) )
83-
hasFeature = TRUE;
83+
hasFeature = true;
8484
}
8585
else
86-
hasFeature = TRUE;
86+
hasFeature = true;
8787

8888
if ( hasFeature )
8989
break;
@@ -106,21 +106,21 @@ bool QgsMemoryProvider::nextFeature( QgsFeature& feature )
106106
if ( mSelectRect.isEmpty() )
107107
{
108108
// selection rect empty => using all features
109-
hasFeature = TRUE;
109+
hasFeature = true;
110110
}
111111
else
112112
{
113113
if ( mSelectUseIntersect )
114114
{
115115
// using exact test when checking for intersection
116116
if ( mSelectIterator->geometry()->intersects( mSelectRectGeom ) )
117-
hasFeature = TRUE;
117+
hasFeature = true;
118118
}
119119
else
120120
{
121121
// check just bounding box against rect when not using intersection
122122
if ( mSelectIterator->geometry()->boundingBox().intersects( mSelectRect ) )
123-
hasFeature = TRUE;
123+
hasFeature = true;
124124
}
125125
}
126126

@@ -147,13 +147,15 @@ bool QgsMemoryProvider::featureAtId( int featureId,
147147
bool fetchGeometry,
148148
QgsAttributeList fetchAttributes )
149149
{
150+
feature.setValid( false );
150151
QgsFeatureMap::iterator it = mFeatures.find( featureId );
151152

152153
if ( it == mFeatures.end() )
153-
return FALSE;
154+
return false;
154155

155156
feature = *it;
156-
return TRUE;
157+
feature.setValid( true );
158+
return true;
157159
}
158160

159161

@@ -173,13 +175,13 @@ void QgsMemoryProvider::select( QgsAttributeList fetchAttributes,
173175
// (but don't use it when selection rect is not specified)
174176
if ( mSpatialIndex && !mSelectRect.isEmpty() )
175177
{
176-
mSelectUsingSpatialIndex = TRUE;
178+
mSelectUsingSpatialIndex = true;
177179
mSelectSI_Features = mSpatialIndex->intersects( rect );
178180
QgsDebugMsg( "Features returned by spatial index: " + QString::number( mSelectSI_Features.count() ) );
179181
}
180182
else
181183
{
182-
mSelectUsingSpatialIndex = FALSE;
184+
mSelectUsingSpatialIndex = false;
183185
mSelectSI_Features.clear();
184186
}
185187

@@ -252,7 +254,7 @@ bool QgsMemoryProvider::addFeatures( QgsFeatureList & flist )
252254

253255
updateExtent();
254256

255-
return TRUE;
257+
return true;
256258
}
257259

258260
bool QgsMemoryProvider::deleteFeatures( const QgsFeatureIds & id )
@@ -274,7 +276,7 @@ bool QgsMemoryProvider::deleteFeatures( const QgsFeatureIds & id )
274276

275277
updateExtent();
276278

277-
return TRUE;
279+
return true;
278280
}
279281

280282
bool QgsMemoryProvider::addAttributes( const QList<QgsField> &attributes )
@@ -298,14 +300,14 @@ bool QgsMemoryProvider::addAttributes( const QList<QgsField> &attributes )
298300
if ( it2.key() > nextId ) nextId = it2.key();
299301
mFields[nextId+1] = *it;
300302
}
301-
return TRUE;
303+
return true;
302304
}
303305

304306
bool QgsMemoryProvider::deleteAttributes( const QgsAttributeIds& attributes )
305307
{
306308
for ( QgsAttributeIds::const_iterator it = attributes.begin(); it != attributes.end(); ++it )
307309
mFields.remove( *it );
308-
return TRUE;
310+
return true;
309311
}
310312

311313
bool QgsMemoryProvider::changeAttributeValues( const QgsChangedAttributesMap & attr_map )
@@ -320,7 +322,7 @@ bool QgsMemoryProvider::changeAttributeValues( const QgsChangedAttributesMap & a
320322
for ( QgsAttributeMap::const_iterator it2 = attrs.begin(); it2 != attrs.end(); ++it2 )
321323
fit->changeAttribute( it2.key(), it2.value() );
322324
}
323-
return TRUE;
325+
return true;
324326
}
325327

326328
bool QgsMemoryProvider::changeGeometryValues( QgsGeometryMap & geometry_map )
@@ -344,7 +346,7 @@ bool QgsMemoryProvider::changeGeometryValues( QgsGeometryMap & geometry_map )
344346

345347
updateExtent();
346348

347-
return TRUE;
349+
return true;
348350
}
349351

350352
bool QgsMemoryProvider::createSpatialIndex()
@@ -359,7 +361,7 @@ bool QgsMemoryProvider::createSpatialIndex()
359361
mSpatialIndex->insertFeature( *it );
360362
}
361363
}
362-
return TRUE;
364+
return true;
363365
}
364366

365367
int QgsMemoryProvider::capabilities() const

‎src/providers/spatialite/qgsspatialiteprovider.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ bool QgsSpatiaLiteProvider::featureAtId( int featureId, QgsFeature & feature, bo
222222
{
223223
sqlite3_stmt *stmt = NULL;
224224

225+
feature.setValid( false );
226+
225227
QString sql = "SELECT ROWID";
226228
for ( QgsAttributeList::const_iterator it = fetchAttributes.constBegin(); it != fetchAttributes.constEnd(); ++it )
227229
{
@@ -347,6 +349,8 @@ bool QgsSpatiaLiteProvider::featureAtId( int featureId, QgsFeature & feature, bo
347349
}
348350
sqlite3_finalize( stmt );
349351

352+
feature.setValid( true );
353+
350354
return true;
351355
}
352356

@@ -1433,7 +1437,7 @@ QgsSpatiaLiteProvider::SqliteHandles * QgsSpatiaLiteProvider::SqliteHandles::ope
14331437
}
14341438

14351439
// checking the DB for sanity
1436-
if ( checkMetadata( sqlite_handle ) == false )
1440+
if ( !checkMetadata( sqlite_handle ) )
14371441
{
14381442
// failure
14391443
QgsDebugMsg( QString( "Failure while connecting to: %1\n\ninvalid metadata tables" ).arg( dbPath ) );

0 commit comments

Comments
 (0)
Please sign in to comment.