mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
[labeling] When a layer is set to "blocking" label mode, correctly
handle data defined "is obstacle" and "priority" settings
This commit is contained in:
parent
5cbf95a9bc
commit
b46f49996e
@ -134,28 +134,31 @@ bool QgsVectorLayerLabelProvider::prepare( const QgsRenderContext &context, QSet
|
||||
|
||||
lyr.mCurFields = mFields;
|
||||
|
||||
if ( lyr.drawLabels )
|
||||
if ( lyr.drawLabels || lyr.obstacle )
|
||||
{
|
||||
// add field indices for label's text, from expression or field
|
||||
if ( lyr.isExpression )
|
||||
if ( lyr.drawLabels )
|
||||
{
|
||||
// prepare expression for use in QgsPalLayerSettings::registerFeature()
|
||||
QgsExpression *exp = lyr.getLabelExpression();
|
||||
exp->prepare( &context.expressionContext() );
|
||||
if ( exp->hasEvalError() )
|
||||
// add field indices for label's text, from expression or field
|
||||
if ( lyr.isExpression )
|
||||
{
|
||||
QgsDebugMsgLevel( "Prepare error:" + exp->evalErrorString(), 4 );
|
||||
// prepare expression for use in QgsPalLayerSettings::registerFeature()
|
||||
QgsExpression *exp = lyr.getLabelExpression();
|
||||
exp->prepare( &context.expressionContext() );
|
||||
if ( exp->hasEvalError() )
|
||||
{
|
||||
QgsDebugMsgLevel( "Prepare error:" + exp->evalErrorString(), 4 );
|
||||
}
|
||||
Q_FOREACH ( const QString &name, exp->referencedColumns() )
|
||||
{
|
||||
QgsDebugMsgLevel( "REFERENCED COLUMN = " + name, 4 );
|
||||
attributeNames.insert( name );
|
||||
}
|
||||
}
|
||||
Q_FOREACH ( const QString &name, exp->referencedColumns() )
|
||||
else
|
||||
{
|
||||
QgsDebugMsgLevel( "REFERENCED COLUMN = " + name, 4 );
|
||||
attributeNames.insert( name );
|
||||
attributeNames.insert( lyr.fieldName );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
attributeNames.insert( lyr.fieldName );
|
||||
}
|
||||
|
||||
lyr.dataDefinedProperties().prepare( context.expressionContext() );
|
||||
// add field indices of data defined expression or field
|
||||
|
Loading…
x
Reference in New Issue
Block a user