Skip to content

Commit d6f66ee

Browse files
committedOct 23, 2015
fix phantom labels for (actually not) rendered feature (refs #13631)
1 parent f7ce8b9 commit d6f66ee

File tree

2 files changed

+28
-21
lines changed

2 files changed

+28
-21
lines changed
 

‎src/core/qgsvectorlayerrenderer.cpp

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ bool QgsVectorLayerRenderer::render()
152152
.setFilterRect( requestExtent )
153153
.setSubsetOfAttributes( mAttrNames, mFields );
154154

155-
if ( !rendererFilter.isEmpty() )
155+
if ( !rendererFilter.isEmpty() && rendererFilter != "TRUE" )
156156
{
157157
featureRequest.setFilterExpression( rendererFilter );
158158
featureRequest.setExpressionContext( mContext.expressionContext() );
@@ -303,28 +303,30 @@ void QgsVectorLayerRenderer::drawRendererV2( QgsFeatureIterator& fit )
303303
bool rendered = mRendererV2->renderFeature( fet, mContext, -1, sel, drawMarker );
304304

305305
// labeling - register feature
306-
Q_UNUSED( rendered );
307-
if ( rendered && mContext.labelingEngine() )
306+
if ( rendered )
308307
{
309-
if ( mLabeling )
308+
if ( mContext.labelingEngine() )
310309
{
311-
mContext.labelingEngine()->registerFeature( mLayerID, fet, mContext );
312-
}
313-
if ( mDiagrams )
314-
{
315-
mContext.labelingEngine()->registerDiagramFeature( mLayerID, fet, mContext );
316-
}
317-
}
318-
// new labeling engine
319-
if ( rendered && mContext.labelingEngineV2() )
320-
{
321-
if ( mLabelProvider )
322-
{
323-
mLabelProvider->registerFeature( fet, mContext );
310+
if ( mLabeling )
311+
{
312+
mContext.labelingEngine()->registerFeature( mLayerID, fet, mContext );
313+
}
314+
if ( mDiagrams )
315+
{
316+
mContext.labelingEngine()->registerDiagramFeature( mLayerID, fet, mContext );
317+
}
324318
}
325-
if ( mDiagramProvider )
319+
// new labeling engine
320+
if ( mContext.labelingEngineV2() )
326321
{
327-
mDiagramProvider->registerFeature( fet, mContext );
322+
if ( mLabelProvider )
323+
{
324+
mLabelProvider->registerFeature( fet, mContext );
325+
}
326+
if ( mDiagramProvider )
327+
{
328+
mDiagramProvider->registerFeature( fet, mContext );
329+
}
328330
}
329331
}
330332
}

‎src/core/symbology-ng/qgsrulebasedrendererv2.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -435,7 +435,12 @@ bool QgsRuleBasedRendererV2::Rule::startRender( QgsRenderContext& context, const
435435
QString sf;
436436
// If there are subfilters present (and it's not a single empty one), group them and join them with OR
437437
if ( subfilters.length() > 1 || subfilters.value( 0 ).trimmed().length() > 0 )
438-
sf = subfilters.join( ") OR (" ).prepend( "(" ).append( ")" );
438+
{
439+
if ( subfilters.contains( "TRUE" ) )
440+
sf = "TRUE";
441+
else
442+
sf = subfilters.join( ") OR (" ).prepend( "(" ).append( ")" );
443+
}
439444

440445
// Now join the subfilters with their parent (this) based on if
441446
// * The parent is an else rule
@@ -521,8 +526,8 @@ QgsRuleBasedRendererV2::Rule::RenderResult QgsRuleBasedRendererV2::Rule::renderF
521526
{
522527
//QgsDebugMsg(QString("add job at level %1").arg(normZLevel));
523528
renderQueue[normZLevel].jobs.append( new RenderJob( featToRender, mSymbol ) );
529+
rendered = true;
524530
}
525-
rendered = true;
526531
}
527532

528533
bool willrendersomething = false;

0 commit comments

Comments
 (0)
Please sign in to comment.