@@ -134,28 +134,31 @@ bool QgsVectorLayerLabelProvider::prepare( const QgsRenderContext &context, QSet
134
134
135
135
lyr.mCurFields = mFields ;
136
136
137
- if ( lyr.drawLabels )
137
+ if ( lyr.drawLabels || lyr. obstacle )
138
138
{
139
- // add field indices for label's text, from expression or field
140
- if ( lyr.isExpression )
139
+ if ( lyr.drawLabels )
141
140
{
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 )
146
143
{
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
+ }
148
156
}
149
- Q_FOREACH ( const QString &name, exp-> referencedColumns () )
157
+ else
150
158
{
151
- QgsDebugMsgLevel ( " REFERENCED COLUMN = " + name, 4 );
152
- attributeNames.insert ( name );
159
+ attributeNames.insert ( lyr.fieldName );
153
160
}
154
161
}
155
- else
156
- {
157
- attributeNames.insert ( lyr.fieldName );
158
- }
159
162
160
163
lyr.dataDefinedProperties ().prepare ( context.expressionContext () );
161
164
// add field indices of data defined expression or field
0 commit comments