Apply featureFilterProvider in QgsVectorLayerDiagramProvider

This commit is contained in:
arnaud.morvan@camptocamp.com 2019-01-08 14:18:02 +01:00
parent 948048cd4d
commit a222906fcf
2 changed files with 6 additions and 1 deletions

View File

@ -358,6 +358,7 @@ LabelRenderJob QgsMapRendererJob::prepareLabelingJob( QPainter *painter, QgsLabe
job.context.setPainter( painter );
job.context.setLabelingEngine( labelingEngine2 );
job.context.setExtent( mSettings.visibleExtent() );
job.context.setFeatureFilterProvider( mFeatureFilterProvider );
// if we can use the cache, let's do it and avoid rendering!
bool hasCache = canUseLabelCache && mCache && mCache->hasCacheImage( LABEL_CACHE_ID );

View File

@ -78,9 +78,13 @@ QList<QgsLabelFeature *> QgsVectorLayerDiagramProvider::labelFeatures( QgsRender
QgsFeatureRequest request;
request.setFilterRect( layerExtent );
request.setSubsetOfAttributes( attributeNames, mFields );
const QgsFeatureFilterProvider *featureFilterProvider = context.featureFilterProvider();
if ( featureFilterProvider )
{
featureFilterProvider->filterFeatures( qobject_cast<QgsVectorLayer *>( mLayer ), request );
}
QgsFeatureIterator fit = mSource->getFeatures( request );
QgsFeature fet;
while ( fit.nextFeature( fet ) )
{