fix correct string list representation of QgsProcessingOutputLayerDefinition

This commit is contained in:
Luigi Pirelli 2018-09-18 14:23:29 +02:00 committed by Nyall Dawson
parent a2db44c383
commit 006553f9d3

View File

@ -1285,6 +1285,16 @@ QList<QgsMapLayer *> QgsProcessingParameters::parameterAsLayerList( const QgsPro
}
else if ( var.canConvert<QgsProperty>() )
resultStringList << var.value< QgsProperty >().valueAsString( context.expressionContext(), definition->defaultValue().toString() );
else if ( var.canConvert<QgsProcessingOutputLayerDefinition>() )
{
// input is a QgsProcessingOutputLayerDefinition - get extra properties from it
QgsProcessingOutputLayerDefinition fromVar = qvariant_cast<QgsProcessingOutputLayerDefinition>( var );
QVariant sink = fromVar.sink;
if ( sink.canConvert<QgsProperty>() )
{
resultStringList << sink.value< QgsProperty >().valueAsString( context.expressionContext(), definition->defaultValue().toString() );
}
}
else if ( QgsMapLayer *layer = qobject_cast< QgsMapLayer * >( qvariant_cast<QObject *>( var ) ) )
{
layers << layer;