layout picture: prepare expressions on refresh

This commit is contained in:
Juergen E. Fischer 2019-08-27 09:51:50 +02:00
parent 6608bb2917
commit a817a8e247
2 changed files with 4 additions and 2 deletions

View File

@ -267,7 +267,7 @@ void QgsRelationAddDlg::checkDefinitionValid()
for ( int i = 0; i < mFieldPairWidgets.count(); i++ )
{
valid &= mFieldPairWidgets.at( i )->isPairEnabled() || !mFieldPairWidgets.at( i )->referencingField().isNull();
valid &= mFieldPairWidgets.at( i )->isPairEnabled() || !mFieldPairWidgets.at( i )->referencedField().isNull();
valid &= mFieldPairWidgets.at( i )->isPairEnabled() || !mFieldPairWidgets.at( i )->referencedField().isNull();
}
mButtonBox->button( QDialogButtonBox::Ok )->setEnabled( valid );
}

View File

@ -336,6 +336,8 @@ void QgsLayoutItemPicture::refreshPicture( const QgsExpressionContext *context )
QgsExpressionContext scopedContext = createExpressionContext();
const QgsExpressionContext *evalContext = context ? context : &scopedContext;
mDataDefinedProperties.prepare( *evalContext );
QVariant source( mSourcePath );
//data defined source set?
@ -344,7 +346,7 @@ void QgsLayoutItemPicture::refreshPicture( const QgsExpressionContext *context )
{
bool ok = false;
const QgsProperty &sourceProperty = mDataDefinedProperties.property( QgsLayoutObject::PictureSource );
source = sourceProperty.value( *evalContext, QVariant( source ), &ok );
source = sourceProperty.value( *evalContext, source, &ok );
if ( !ok || !source.canConvert( QMetaType::QString ) )
{
mHasExpressionError = true;