Skip to content

Commit 1b15e68

Browse files
committed
Add minimal smartness for QgsProcessingFeatureSource::hasFeatures
1 parent 715edb1 commit 1b15e68

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

python/core/auto_generated/processing/qgsprocessingutils.sip.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,9 @@ An optional ``request`` can be used to optimise the returned
260260
iterator, eg by restricting the returned attributes or geometry.
261261
%End
262262

263+
virtual QgsFeatureSource::FeatureAvailability hasFeatures() const;
264+
265+
263266
virtual QgsFeatureIterator getFeatures( const QgsFeatureRequest &request = QgsFeatureRequest() ) const;
264267

265268
virtual QgsCoordinateReferenceSystem sourceCrs() const;

src/core/processing/qgsprocessingutils.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -721,6 +721,14 @@ QgsFeatureIterator QgsProcessingFeatureSource::getFeatures( const QgsFeatureRequ
721721
return mSource->getFeatures( req );
722722
}
723723

724+
QgsFeatureSource::FeatureAvailability QgsProcessingFeatureSource::hasFeatures() const
725+
{
726+
if ( !mTransformErrorCallback && !mInvalidGeometryCallback && mInvalidGeometryCheck == QgsFeatureRequest::GeometryNoCheck )
727+
return mSource->hasFeatures();
728+
else
729+
return QgsFeatureSource::FeaturesMaybeAvailable;
730+
}
731+
724732
QgsFeatureIterator QgsProcessingFeatureSource::getFeatures( const QgsFeatureRequest &request ) const
725733
{
726734
QgsFeatureRequest req( request );

src/core/processing/qgsprocessingutils.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,8 @@ class CORE_EXPORT QgsProcessingFeatureSource : public QgsFeatureSource
317317
*/
318318
QgsFeatureIterator getFeatures( const QgsFeatureRequest &request, Flags flags ) const;
319319

320+
QgsFeatureSource::FeatureAvailability hasFeatures() const override;
321+
320322
QgsFeatureIterator getFeatures( const QgsFeatureRequest &request = QgsFeatureRequest() ) const override;
321323
QgsCoordinateReferenceSystem sourceCrs() const override;
322324
QgsFields fields() const override;

0 commit comments

Comments
 (0)