diff --git a/src/core/processing/qgsprocessingparameters.cpp b/src/core/processing/qgsprocessingparameters.cpp index 3b71018e471..537133cc314 100644 --- a/src/core/processing/qgsprocessingparameters.cpp +++ b/src/core/processing/qgsprocessingparameters.cpp @@ -1285,6 +1285,16 @@ QList QgsProcessingParameters::parameterAsLayerList( const QgsPro } else if ( var.canConvert() ) resultStringList << var.value< QgsProperty >().valueAsString( context.expressionContext(), definition->defaultValue().toString() ); + else if ( var.canConvert() ) + { + // input is a QgsProcessingOutputLayerDefinition - get extra properties from it + QgsProcessingOutputLayerDefinition fromVar = qvariant_cast( var ); + QVariant sink = fromVar.sink; + if ( sink.canConvert() ) + { + resultStringList << sink.value< QgsProperty >().valueAsString( context.expressionContext(), definition->defaultValue().toString() ); + } + } else if ( QgsMapLayer *layer = qobject_cast< QgsMapLayer * >( qvariant_cast( var ) ) ) { layers << layer;