mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-12 00:02:25 -04:00
Advanced logic for QgsVectorLayer::hasFeatures()
This commit is contained in:
parent
6049e4074f
commit
8be4cc6079
@ -2767,7 +2767,18 @@ long QgsVectorLayer::featureCount() const
|
||||
|
||||
QgsFeatureSource::FeatureAvailability QgsVectorLayer::hasFeatures() const
|
||||
{
|
||||
if ( mDataProvider->empty() && ( !mEditBuffer || mEditBuffer->addedFeatures().empty() ) )
|
||||
const QgsFeatureIds deletedFeatures = mEditBuffer->deletedFeatureIds();
|
||||
const QgsFeatureMap addedFeatures = mEditBuffer->addedFeatures();
|
||||
|
||||
if ( mEditBuffer && !deletedFeatures.empty() )
|
||||
{
|
||||
if ( addedFeatures.size() > deletedFeatures.size() )
|
||||
return QgsFeatureSource::FeatureAvailability::FeaturesAvailable;
|
||||
else
|
||||
return QgsFeatureSource::FeatureAvailability::FeaturesMaybeAvailable;
|
||||
}
|
||||
|
||||
if ( ( !mEditBuffer || addedFeatures.empty() ) && mDataProvider->empty() )
|
||||
return QgsFeatureSource::FeatureAvailability::NoFeaturesAvailable;
|
||||
else
|
||||
return QgsFeatureSource::FeatureAvailability::FeaturesAvailable;
|
||||
|
Loading…
x
Reference in New Issue
Block a user