Skip to content

Commit ae6bffd

Browse files
committed
Update to QgsProcessingFeatureSource::hasFeatures
1 parent 1b15e68 commit ae6bffd

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/core/processing/qgsprocessingutils.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -723,10 +723,14 @@ QgsFeatureIterator QgsProcessingFeatureSource::getFeatures( const QgsFeatureRequ
723723

724724
QgsFeatureSource::FeatureAvailability QgsProcessingFeatureSource::hasFeatures() const
725725
{
726-
if ( !mTransformErrorCallback && !mInvalidGeometryCallback && mInvalidGeometryCheck == QgsFeatureRequest::GeometryNoCheck )
727-
return mSource->hasFeatures();
726+
FeatureAvailability sourceAvailability = mSource->hasFeatures();
727+
if ( sourceAvailability == NoFeaturesAvailable )
728+
return NoFeaturesAvailable; // never going to be features if underlying source has no features
729+
else if ( mInvalidGeometryCheck == QgsFeatureRequest::GeometryNoCheck )
730+
return sourceAvailability;
728731
else
729-
return QgsFeatureSource::FeaturesMaybeAvailable;
732+
// we don't know... source has features, but these may be filtered out by invalid geometry check
733+
return FeaturesMaybeAvailable;
730734
}
731735

732736
QgsFeatureIterator QgsProcessingFeatureSource::getFeatures( const QgsFeatureRequest &request ) const

0 commit comments

Comments
 (0)