diff --git a/src/gui/qgsidentifymenu.cpp b/src/gui/qgsidentifymenu.cpp index af561ead1c7..c458b0a0067 100644 --- a/src/gui/qgsidentifymenu.cpp +++ b/src/gui/qgsidentifymenu.cpp @@ -25,6 +25,7 @@ #include "qgslogger.h" #include "qgssettings.h" #include "qgsgui.h" +#include "qgsexpressioncontextutils.h" //TODO 4.0 add explicitly qobject parent to constructor QgsIdentifyMenu::QgsIdentifyMenu( QgsMapCanvas *canvas ) @@ -282,7 +283,12 @@ void QgsIdentifyMenu::addVectorLayer( QgsVectorLayer *layer, const QListdisplayField() ).toString(); + + QgsExpressionContext context( QgsExpressionContextUtils::globalProjectLayerScopes( layer ) ); + QgsExpression exp( layer->displayExpression() ); + exp.prepare( &context ); + context.setFeature( results[0].mFeature ); + QString featureTitle = exp.evaluate( &context ).toString(); if ( featureTitle.isEmpty() ) featureTitle = QStringLiteral( "%1" ).arg( results[0].mFeature.id() ); layerAction = new QAction( QStringLiteral( "%1 (%2)" ).arg( layer->name(), featureTitle ), this ); @@ -304,7 +310,11 @@ void QgsIdentifyMenu::addVectorLayer( QgsVectorLayer *layer, const QListdisplayField() ).toString(); + QgsExpressionContext context( QgsExpressionContextUtils::globalProjectLayerScopes( layer ) ); + QgsExpression exp( layer->displayExpression() ); + exp.prepare( &context ); + context.setFeature( results[0].mFeature ); + QString featureTitle = exp.evaluate( &context ).toString(); if ( featureTitle.isEmpty() ) featureTitle = QStringLiteral( "%1" ).arg( results[0].mFeature.id() ); layerMenu = new QMenu( QStringLiteral( "%1 (%2)" ).arg( layer->name(), featureTitle ), this ); @@ -364,7 +374,11 @@ void QgsIdentifyMenu::addVectorLayer( QgsVectorLayer *layer, const QListdisplayField() ).toString(); + QgsExpressionContext context( QgsExpressionContextUtils::globalProjectLayerScopes( layer ) ); + QgsExpression exp( layer->displayExpression() ); + exp.prepare( &context ); + context.setFeature( result.mFeature ); + QString featureTitle = exp.evaluate( &context ).toString(); if ( featureTitle.isEmpty() ) featureTitle = QStringLiteral( "%1" ).arg( result.mFeature.id() );