@@ -2183,7 +2183,8 @@ void TestQgsProcessing::parameterLayerList()
2183
2183
QFileInfo fi1 ( raster1 );
2184
2184
QgsRasterLayer *r1 = new QgsRasterLayer ( fi1.filePath (), " R1" );
2185
2185
QgsVectorLayer *v1 = new QgsVectorLayer ( " Polygon?crs=EPSG:3111" , " V4" , " memory" );
2186
- p.addMapLayers ( QList<QgsMapLayer *>() << v1 << r1 );
2186
+ QgsVectorLayer *v2 = new QgsVectorLayer ( " Polygon?crs=EPSG:3111" , " V5" , " memory" );
2187
+ p.addMapLayers ( QList<QgsMapLayer *>() << v1 << v2 << r1 );
2187
2188
QgsProcessingContext context;
2188
2189
context.setProject ( &p );
2189
2190
@@ -2225,6 +2226,14 @@ void TestQgsProcessing::parameterLayerList()
2225
2226
params.insert ( " non_optional" , QVariantList () << QVariant::fromValue ( v1 ) << QVariant::fromValue ( r1 ) );
2226
2227
QCOMPARE ( QgsProcessingParameters::parameterAsLayerList ( def.get (), params, context ), QList< QgsMapLayer *>() << v1 << r1 );
2227
2228
2229
+ // mix of list and single layers (happens from models)
2230
+ params.insert ( " non_optional" , QVariantList () << QVariant ( QVariantList () << QVariant::fromValue ( v1 ) << QVariant::fromValue ( v2 ) ) << QVariant::fromValue ( r1 ) );
2231
+ QCOMPARE ( QgsProcessingParameters::parameterAsLayerList ( def.get (), params, context ), QList< QgsMapLayer *>() << v1 << v2 << r1 );
2232
+
2233
+ // mix of two lists (happens from models)
2234
+ params.insert ( " non_optional" , QVariantList () << QVariant ( QVariantList () << QVariant::fromValue ( v1 ) << QVariant::fromValue ( v2 ) ) << QVariant ( QVariantList () << QVariant::fromValue ( r1 ) ) );
2235
+ QCOMPARE ( QgsProcessingParameters::parameterAsLayerList ( def.get (), params, context ), QList< QgsMapLayer *>() << v1 << v2 << r1 );
2236
+
2228
2237
// mix of existing layers and non project layer string
2229
2238
params.insert ( " non_optional" , QVariantList () << v1->id () << raster2 );
2230
2239
QList< QgsMapLayer *> layers = QgsProcessingParameters::parameterAsLayerList ( def.get (), params, context );
0 commit comments