Skip to content

Commit e1b0f78

Browse files
committed
Fix default layer sometimes inserted into multi layer parameter values
1 parent 48eccc3 commit e1b0f78

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

src/core/processing/qgsprocessingparameters.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -622,7 +622,7 @@ QList<QgsMapLayer *> QgsProcessingParameters::parameterAsLayerList( const QgsPro
622622
else
623623
resultStringList << val.toString();
624624

625-
if ( ( resultStringList.isEmpty() || resultStringList.at( 0 ).isEmpty() ) )
625+
if ( layers.isEmpty() && ( resultStringList.isEmpty() || resultStringList.at( 0 ).isEmpty() ) )
626626
{
627627
resultStringList.clear();
628628
// check default

tests/src/core/testqgsprocessing.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2310,6 +2310,9 @@ void TestQgsProcessing::parameterLayerList()
23102310
params.insert( "optional", QVariant() );
23112311
QCOMPARE( QgsProcessingParameters::parameterAsLayerList( def.get(), params, context ), QList< QgsMapLayer *>() << v1 );
23122312

2313+
params.insert( "optional", QVariantList() << QVariant::fromValue( r1 ) );
2314+
QCOMPARE( QgsProcessingParameters::parameterAsLayerList( def.get(), params, context ), QList< QgsMapLayer *>() << r1 );
2315+
23132316
code = def->asScriptCode();
23142317
QCOMPARE( code, QStringLiteral( "##optional=optional multiple vector " ) + v1->id() );
23152318
fromCode.reset( dynamic_cast< QgsProcessingParameterMultipleLayers * >( QgsProcessingParameters::parameterFromScriptCode( code ) ) );

0 commit comments

Comments
 (0)