Skip to content
Permalink
Browse files
Fix default layer sometimes inserted into multi layer parameter values
  • Loading branch information
nyalldawson committed Aug 16, 2017
1 parent 48eccc3 commit e1b0f78
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
@@ -622,7 +622,7 @@ QList<QgsMapLayer *> QgsProcessingParameters::parameterAsLayerList( const QgsPro
else
resultStringList << val.toString();

if ( ( resultStringList.isEmpty() || resultStringList.at( 0 ).isEmpty() ) )
if ( layers.isEmpty() && ( resultStringList.isEmpty() || resultStringList.at( 0 ).isEmpty() ) )
{
resultStringList.clear();
// check default
@@ -2310,6 +2310,9 @@ void TestQgsProcessing::parameterLayerList()
params.insert( "optional", QVariant() );
QCOMPARE( QgsProcessingParameters::parameterAsLayerList( def.get(), params, context ), QList< QgsMapLayer *>() << v1 );

params.insert( "optional", QVariantList() << QVariant::fromValue( r1 ) );
QCOMPARE( QgsProcessingParameters::parameterAsLayerList( def.get(), params, context ), QList< QgsMapLayer *>() << r1 );

code = def->asScriptCode();
QCOMPARE( code, QStringLiteral( "##optional=optional multiple vector " ) + v1->id() );
fromCode.reset( dynamic_cast< QgsProcessingParameterMultipleLayers * >( QgsProcessingParameters::parameterFromScriptCode( code ) ) );

0 comments on commit e1b0f78

Please sign in to comment.