Skip to content

Commit b46f499

Browse files
committedDec 20, 2018
[labeling] When a layer is set to "blocking" label mode, correctly
handle data defined "is obstacle" and "priority" settings
1 parent 5cbf95a commit b46f499

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed
 

‎src/core/qgsvectorlayerlabelprovider.cpp

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -134,28 +134,31 @@ bool QgsVectorLayerLabelProvider::prepare( const QgsRenderContext &context, QSet
134134

135135
lyr.mCurFields = mFields;
136136

137-
if ( lyr.drawLabels )
137+
if ( lyr.drawLabels || lyr.obstacle )
138138
{
139-
// add field indices for label's text, from expression or field
140-
if ( lyr.isExpression )
139+
if ( lyr.drawLabels )
141140
{
142-
// prepare expression for use in QgsPalLayerSettings::registerFeature()
143-
QgsExpression *exp = lyr.getLabelExpression();
144-
exp->prepare( &context.expressionContext() );
145-
if ( exp->hasEvalError() )
141+
// add field indices for label's text, from expression or field
142+
if ( lyr.isExpression )
146143
{
147-
QgsDebugMsgLevel( "Prepare error:" + exp->evalErrorString(), 4 );
144+
// prepare expression for use in QgsPalLayerSettings::registerFeature()
145+
QgsExpression *exp = lyr.getLabelExpression();
146+
exp->prepare( &context.expressionContext() );
147+
if ( exp->hasEvalError() )
148+
{
149+
QgsDebugMsgLevel( "Prepare error:" + exp->evalErrorString(), 4 );
150+
}
151+
Q_FOREACH ( const QString &name, exp->referencedColumns() )
152+
{
153+
QgsDebugMsgLevel( "REFERENCED COLUMN = " + name, 4 );
154+
attributeNames.insert( name );
155+
}
148156
}
149-
Q_FOREACH ( const QString &name, exp->referencedColumns() )
157+
else
150158
{
151-
QgsDebugMsgLevel( "REFERENCED COLUMN = " + name, 4 );
152-
attributeNames.insert( name );
159+
attributeNames.insert( lyr.fieldName );
153160
}
154161
}
155-
else
156-
{
157-
attributeNames.insert( lyr.fieldName );
158-
}
159162

160163
lyr.dataDefinedProperties().prepare( context.expressionContext() );
161164
// add field indices of data defined expression or field

0 commit comments

Comments
 (0)
Please sign in to comment.