@@ -804,11 +804,11 @@ void TestQgsProcessing::features()
804804 return ids;
805805 };
806806
807- QgsProcessingParameterDefinition * def = new QgsProcessingParameterString ( QStringLiteral ( " layer" ) );
807+ std::unique_ptr< QgsProcessingParameterDefinition > def ( new QgsProcessingParameterString ( QStringLiteral ( " layer" ) ) );
808808 QVariantMap params;
809809 params.insert ( QStringLiteral ( " layer" ), layer->id () );
810810
811- std::unique_ptr< QgsFeatureSource > source ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
811+ std::unique_ptr< QgsFeatureSource > source ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
812812
813813 // test with all features
814814 QgsFeatureIds ids = getIds ( source->getFeatures () );
@@ -818,31 +818,31 @@ void TestQgsProcessing::features()
818818 // test with selected features
819819 params.insert ( QStringLiteral ( " layer" ), QVariant::fromValue ( QgsProcessingFeatureSourceDefinition ( layer->id (), true ) ) );
820820 layer->selectByIds ( QgsFeatureIds () << 2 << 4 );
821- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
821+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
822822 ids = getIds ( source->getFeatures () );
823823 QCOMPARE ( ids, QgsFeatureIds () << 2 << 4 );
824824 QCOMPARE ( source->featureCount (), 2L );
825825
826826 // selection, but not using selected features
827827 params.insert ( QStringLiteral ( " layer" ), QVariant::fromValue ( QgsProcessingFeatureSourceDefinition ( layer->id (), false ) ) );
828828 layer->selectByIds ( QgsFeatureIds () << 2 << 4 );
829- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
829+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
830830 ids = getIds ( source->getFeatures () );
831831 QCOMPARE ( ids, QgsFeatureIds () << 1 << 2 << 3 << 4 << 5 );
832832 QCOMPARE ( source->featureCount (), 5L );
833833
834834 // using selected features, but no selection
835835 params.insert ( QStringLiteral ( " layer" ), QVariant::fromValue ( QgsProcessingFeatureSourceDefinition ( layer->id (), true ) ) );
836836 layer->removeSelection ();
837- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
837+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
838838 ids = getIds ( source->getFeatures () );
839839 QVERIFY ( ids.isEmpty () );
840840 QCOMPARE ( source->featureCount (), 0L );
841841
842842
843843 // test that feature request is honored
844844 params.insert ( QStringLiteral ( " layer" ), QVariant::fromValue ( QgsProcessingFeatureSourceDefinition ( layer->id (), false ) ) );
845- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
845+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
846846 ids = getIds ( source->getFeatures ( QgsFeatureRequest ().setFilterFids ( QgsFeatureIds () << 1 << 3 << 5 ) ) );
847847 QCOMPARE ( ids, QgsFeatureIds () << 1 << 3 << 5 );
848848
@@ -852,7 +852,7 @@ void TestQgsProcessing::features()
852852 // test that feature request is honored when using selections
853853 params.insert ( QStringLiteral ( " layer" ), QVariant::fromValue ( QgsProcessingFeatureSourceDefinition ( layer->id (), true ) ) );
854854 layer->selectByIds ( QgsFeatureIds () << 2 << 4 );
855- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
855+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
856856 ids = getIds ( source->getFeatures ( QgsFeatureRequest ().setFlags ( QgsFeatureRequest::NoGeometry ) ) );
857857 QCOMPARE ( ids, QgsFeatureIds () << 2 << 4 );
858858
@@ -872,13 +872,13 @@ void TestQgsProcessing::features()
872872 p.addMapLayer ( polyLayer );
873873 params.insert ( QStringLiteral ( " layer" ), polyLayer->id () );
874874
875- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
875+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
876876 ids = getIds ( source->getFeatures () );
877877 QVERIFY ( encountered );
878878
879879 encountered = false ;
880880 context.setInvalidGeometryCheck ( QgsFeatureRequest::GeometryNoCheck );
881- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
881+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
882882 ids = getIds ( source->getFeatures () );
883883 QVERIFY ( !encountered );
884884
@@ -901,11 +901,11 @@ void TestQgsProcessing::uniqueValues()
901901 p.addMapLayer ( layer );
902902 context.setProject ( &p );
903903
904- QgsProcessingParameterDefinition * def = new QgsProcessingParameterString ( QStringLiteral ( " layer" ) );
904+ std::unique_ptr< QgsProcessingParameterDefinition > def ( new QgsProcessingParameterString ( QStringLiteral ( " layer" ) ) );
905905 QVariantMap params;
906906 params.insert ( QStringLiteral ( " layer" ), layer->id () );
907907
908- std::unique_ptr< QgsFeatureSource > source ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
908+ std::unique_ptr< QgsFeatureSource > source ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
909909
910910 // some bad checks
911911 QVERIFY ( source->uniqueValues ( -1 ).isEmpty () );
@@ -926,7 +926,7 @@ void TestQgsProcessing::uniqueValues()
926926 // using only selected features
927927 layer->selectByIds ( QgsFeatureIds () << 1 << 2 << 4 );
928928 // but not using selection yet...
929- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
929+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
930930 vals = source->uniqueValues ( 0 );
931931 QCOMPARE ( vals.count (), 3 );
932932 QVERIFY ( vals.contains ( 1 ) );
@@ -940,7 +940,7 @@ void TestQgsProcessing::uniqueValues()
940940
941941 // selection and using selection
942942 params.insert ( QStringLiteral ( " layer" ), QVariant::fromValue ( QgsProcessingFeatureSourceDefinition ( layer->id (), true ) ) );
943- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
943+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
944944 QVERIFY ( source->uniqueValues ( -1 ).isEmpty () );
945945 QVERIFY ( source->uniqueValues ( 10001 ).isEmpty () );
946946 vals = source->uniqueValues ( 0 );
@@ -968,20 +968,20 @@ void TestQgsProcessing::createIndex()
968968 p.addMapLayer ( layer );
969969 context.setProject ( &p );
970970
971- QgsProcessingParameterDefinition * def = new QgsProcessingParameterString ( QStringLiteral ( " layer" ) );
971+ std::unique_ptr< QgsProcessingParameterDefinition > def ( new QgsProcessingParameterString ( QStringLiteral ( " layer" ) ) );
972972 QVariantMap params;
973973 params.insert ( QStringLiteral ( " layer" ), layer->id () );
974974
975975 // disable selected features check
976- std::unique_ptr< QgsFeatureSource > source ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
976+ std::unique_ptr< QgsFeatureSource > source ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
977977 QVERIFY ( source.get () );
978978 QgsSpatialIndex index ( *source.get () );
979979 QList<QgsFeatureId> ids = index.nearestNeighbor ( QgsPointXY ( 2.1 , 2 ), 1 );
980980 QCOMPARE ( ids, QList<QgsFeatureId>() << 2 );
981981
982982 // selected features check, but none selected
983983 params.insert ( QStringLiteral ( " layer" ), QVariant::fromValue ( QgsProcessingFeatureSourceDefinition ( layer->id (), true ) ) );
984- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
984+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
985985 bool caught = false ;
986986 try
987987 {
@@ -996,14 +996,14 @@ void TestQgsProcessing::createIndex()
996996
997997 // create selection
998998 layer->selectByIds ( QgsFeatureIds () << 4 << 5 );
999- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
999+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
10001000 index = QgsSpatialIndex ( *source.get () );
10011001 ids = index.nearestNeighbor ( QgsPointXY ( 2.1 , 2 ), 1 );
10021002 QCOMPARE ( ids, QList<QgsFeatureId>() << 4 );
10031003
10041004 // selection but not using selection mode
10051005 params.insert ( QStringLiteral ( " layer" ), QVariant::fromValue ( QgsProcessingFeatureSourceDefinition ( layer->id (), false ) ) );
1006- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
1006+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
10071007 index = QgsSpatialIndex ( *source.get () );
10081008 ids = index.nearestNeighbor ( QgsPointXY ( 2.1 , 2 ), 1 );
10091009 QCOMPARE ( ids, QList<QgsFeatureId>() << 2 );
@@ -1121,7 +1121,7 @@ void TestQgsProcessing::parameters()
11211121{
11221122 // test parameter utilities
11231123
1124- QgsProcessingParameterDefinition *def = nullptr ;
1124+ std::unique_ptr< QgsProcessingParameterDefinition > def ;
11251125 QVariantMap params;
11261126 params.insert ( QStringLiteral ( " prop" ), QgsProperty::fromField ( " a_field" ) );
11271127 params.insert ( QStringLiteral ( " string" ), QStringLiteral ( " a string" ) );
@@ -1137,20 +1137,20 @@ void TestQgsProcessing::parameters()
11371137 QVERIFY ( !QgsProcessingParameters::isDynamic ( params, QStringLiteral ( " bad" ) ) );
11381138
11391139 // parameterAsString
1140- def = new QgsProcessingParameterString ( QStringLiteral ( " string" ), QStringLiteral ( " desc" ) );
1141- QCOMPARE ( QgsProcessingParameters::parameterAsString ( def, params, context ), QStringLiteral ( " a string" ) );
1140+ def. reset ( new QgsProcessingParameterString ( QStringLiteral ( " string" ), QStringLiteral ( " desc" ) ) );
1141+ QCOMPARE ( QgsProcessingParameters::parameterAsString ( def. get () , params, context ), QStringLiteral ( " a string" ) );
11421142 def->setName ( QStringLiteral ( " double" ) );
1143- QCOMPARE ( QgsProcessingParameters::parameterAsString ( def, params, context ).left ( 3 ), QStringLiteral ( " 5.2" ) );
1143+ QCOMPARE ( QgsProcessingParameters::parameterAsString ( def. get () , params, context ).left ( 3 ), QStringLiteral ( " 5.2" ) );
11441144 def->setName ( QStringLiteral ( " int" ) );
1145- QCOMPARE ( QgsProcessingParameters::parameterAsString ( def, params, context ), QStringLiteral ( " 15" ) );
1145+ QCOMPARE ( QgsProcessingParameters::parameterAsString ( def. get () , params, context ), QStringLiteral ( " 15" ) );
11461146 def->setName ( QStringLiteral ( " bool" ) );
1147- QCOMPARE ( QgsProcessingParameters::parameterAsString ( def, params, context ), QStringLiteral ( " true" ) );
1147+ QCOMPARE ( QgsProcessingParameters::parameterAsString ( def. get () , params, context ), QStringLiteral ( " true" ) );
11481148 def->setName ( QStringLiteral ( " bad" ) );
1149- QCOMPARE ( QgsProcessingParameters::parameterAsString ( def, params, context ), QString () );
1149+ QCOMPARE ( QgsProcessingParameters::parameterAsString ( def. get () , params, context ), QString () );
11501150
11511151 // string with dynamic property (feature not set)
11521152 def->setName ( QStringLiteral ( " prop" ) );
1153- QCOMPARE ( QgsProcessingParameters::parameterAsString ( def, params, context ), QString () );
1153+ QCOMPARE ( QgsProcessingParameters::parameterAsString ( def. get () , params, context ), QString () );
11541154
11551155 // correctly setup feature
11561156 QgsFields fields;
@@ -1160,56 +1160,56 @@ void TestQgsProcessing::parameters()
11601160 context.expressionContext ().setFeature ( f );
11611161 context.expressionContext ().setFields ( fields );
11621162 def->setName ( QStringLiteral ( " prop" ) );
1163- QCOMPARE ( QgsProcessingParameters::parameterAsString ( def, params, context ), QStringLiteral ( " field value" ) );
1163+ QCOMPARE ( QgsProcessingParameters::parameterAsString ( def. get () , params, context ), QStringLiteral ( " field value" ) );
11641164
11651165 // as double
11661166 def->setName ( QStringLiteral ( " double" ) );
1167- QCOMPARE ( QgsProcessingParameters::parameterAsDouble ( def, params, context ), 5.2 );
1167+ QCOMPARE ( QgsProcessingParameters::parameterAsDouble ( def. get () , params, context ), 5.2 );
11681168 def->setName ( QStringLiteral ( " int" ) );
1169- QCOMPARE ( QgsProcessingParameters::parameterAsDouble ( def, params, context ), 15.0 );
1169+ QCOMPARE ( QgsProcessingParameters::parameterAsDouble ( def. get () , params, context ), 15.0 );
11701170 f.setAttribute ( 0 , QStringLiteral ( " 6.2" ) );
11711171 context.expressionContext ().setFeature ( f );
11721172 def->setName ( QStringLiteral ( " prop" ) );
1173- QCOMPARE ( QgsProcessingParameters::parameterAsDouble ( def, params, context ), 6.2 );
1173+ QCOMPARE ( QgsProcessingParameters::parameterAsDouble ( def. get () , params, context ), 6.2 );
11741174
11751175 // as int
11761176 def->setName ( QStringLiteral ( " double" ) );
1177- QCOMPARE ( QgsProcessingParameters::parameterAsInt ( def, params, context ), 5 );
1177+ QCOMPARE ( QgsProcessingParameters::parameterAsInt ( def. get () , params, context ), 5 );
11781178 def->setName ( QStringLiteral ( " int" ) );
1179- QCOMPARE ( QgsProcessingParameters::parameterAsInt ( def, params, context ), 15 );
1179+ QCOMPARE ( QgsProcessingParameters::parameterAsInt ( def. get () , params, context ), 15 );
11801180 def->setName ( QStringLiteral ( " prop" ) );
1181- QCOMPARE ( QgsProcessingParameters::parameterAsInt ( def, params, context ), 6 );
1181+ QCOMPARE ( QgsProcessingParameters::parameterAsInt ( def. get () , params, context ), 6 );
11821182
11831183 // as bool
11841184 def->setName ( QStringLiteral ( " double" ) );
1185- QCOMPARE ( QgsProcessingParameters::parameterAsBool ( def, params, context ), true );
1185+ QCOMPARE ( QgsProcessingParameters::parameterAsBool ( def. get () , params, context ), true );
11861186 def->setName ( QStringLiteral ( " int" ) );
1187- QCOMPARE ( QgsProcessingParameters::parameterAsBool ( def, params, context ), true );
1187+ QCOMPARE ( QgsProcessingParameters::parameterAsBool ( def. get () , params, context ), true );
11881188 def->setName ( QStringLiteral ( " bool" ) );
1189- QCOMPARE ( QgsProcessingParameters::parameterAsBool ( def, params, context ), true );
1189+ QCOMPARE ( QgsProcessingParameters::parameterAsBool ( def. get () , params, context ), true );
11901190 def->setName ( QStringLiteral ( " prop" ) );
1191- QCOMPARE ( QgsProcessingParameters::parameterAsBool ( def, params, context ), true );
1191+ QCOMPARE ( QgsProcessingParameters::parameterAsBool ( def. get () , params, context ), true );
11921192 f.setAttribute ( 0 , false );
11931193 context.expressionContext ().setFeature ( f );
11941194 def->setName ( QStringLiteral ( " prop" ) );
1195- QCOMPARE ( QgsProcessingParameters::parameterAsBool ( def, params, context ), false );
1195+ QCOMPARE ( QgsProcessingParameters::parameterAsBool ( def. get () , params, context ), false );
11961196
11971197 // as layer
11981198 def->setName ( QStringLiteral ( " double" ) );
1199- QVERIFY ( !QgsProcessingParameters::parameterAsLayer ( def, params, context ) );
1199+ QVERIFY ( !QgsProcessingParameters::parameterAsLayer ( def. get () , params, context ) );
12001200 def->setName ( QStringLiteral ( " int" ) );
1201- QVERIFY ( !QgsProcessingParameters::parameterAsLayer ( def, params, context ) );
1201+ QVERIFY ( !QgsProcessingParameters::parameterAsLayer ( def. get () , params, context ) );
12021202 def->setName ( QStringLiteral ( " bool" ) );
1203- QVERIFY ( !QgsProcessingParameters::parameterAsLayer ( def, params, context ) );
1203+ QVERIFY ( !QgsProcessingParameters::parameterAsLayer ( def. get () , params, context ) );
12041204 def->setName ( QStringLiteral ( " prop" ) );
1205- QVERIFY ( !QgsProcessingParameters::parameterAsLayer ( def, params, context ) );
1205+ QVERIFY ( !QgsProcessingParameters::parameterAsLayer ( def. get () , params, context ) );
12061206
12071207 QVERIFY ( context.temporaryLayerStore ()->mapLayers ().isEmpty () );
12081208 QString testDataDir = QStringLiteral ( TEST_DATA_DIR ) + ' /' ; // defined in CmakeLists.txt
12091209 f.setAttribute ( 0 , testDataDir + " /raster/band1_float32_noct_epsg4326.tif" );
12101210 context.expressionContext ().setFeature ( f );
12111211 def->setName ( QStringLiteral ( " prop" ) );
1212- QVERIFY ( QgsProcessingParameters::parameterAsLayer ( def, params, context ) );
1212+ QVERIFY ( QgsProcessingParameters::parameterAsLayer ( def. get () , params, context ) );
12131213 // make sure layer was loaded
12141214 QVERIFY ( !context.temporaryLayerStore ()->mapLayers ().isEmpty () );
12151215
@@ -1221,7 +1221,7 @@ void TestQgsProcessing::parameters()
12211221 def->setName ( QStringLiteral ( " string" ) );
12221222 params.insert ( QStringLiteral ( " string" ), QStringLiteral ( " memory:mem" ) );
12231223 std::unique_ptr< QgsFeatureSink > sink;
1224- sink.reset ( QgsProcessingParameters::parameterAsSink ( def, params, fields, wkbType, crs, context, destId ) );
1224+ sink.reset ( QgsProcessingParameters::parameterAsSink ( def. get () , params, fields, wkbType, crs, context, destId ) );
12251225 QVERIFY ( sink.get () );
12261226 QgsVectorLayer *layer = qobject_cast< QgsVectorLayer *>( QgsProcessingUtils::mapLayerFromString ( destId, context ) );
12271227 QVERIFY ( layer );
@@ -1235,7 +1235,7 @@ void TestQgsProcessing::parameters()
12351235 params.insert ( QStringLiteral ( " prop" ), QgsProperty::fromExpression ( " 'memory:mem2'" ) );
12361236 def->setName ( QStringLiteral ( " prop" ) );
12371237 crs = QgsCoordinateReferenceSystem ( QStringLiteral ( " epsg:3113" ) );
1238- sink.reset ( QgsProcessingParameters::parameterAsSink ( def, params, fields, wkbType, crs, context, destId ) );
1238+ sink.reset ( QgsProcessingParameters::parameterAsSink ( def. get () , params, fields, wkbType, crs, context, destId ) );
12391239 QVERIFY ( sink.get () );
12401240 layer = qobject_cast< QgsVectorLayer *>( QgsProcessingUtils::mapLayerFromString ( destId, context ) );
12411241 QVERIFY ( layer );
@@ -1253,7 +1253,7 @@ void TestQgsProcessing::parameters()
12531253 params.insert ( QStringLiteral ( " fs" ), QVariant::fromValue ( fs ) );
12541254 def->setName ( QStringLiteral ( " fs" ) );
12551255 crs = QgsCoordinateReferenceSystem ( QStringLiteral ( " epsg:28356" ) );
1256- sink.reset ( QgsProcessingParameters::parameterAsSink ( def, params, fields, wkbType, crs, context, destId ) );
1256+ sink.reset ( QgsProcessingParameters::parameterAsSink ( def. get () , params, fields, wkbType, crs, context, destId ) );
12571257 QVERIFY ( sink.get () );
12581258 QgsVectorFileWriter *writer = dynamic_cast < QgsVectorFileWriter *>( sink.get () );
12591259 QVERIFY ( writer );
@@ -1267,8 +1267,6 @@ void TestQgsProcessing::parameters()
12671267 QCOMPARE ( context.layersToLoadOnCompletion ().size (), 1 );
12681268 QCOMPARE ( context.layersToLoadOnCompletion ().keys ().at ( 0 ), destId );
12691269 QCOMPARE ( context.layersToLoadOnCompletion ().values ().at ( 0 ).name , QStringLiteral ( " desc" ) );
1270-
1271- delete def;
12721270}
12731271
12741272void TestQgsProcessing::algorithmParameters ()
@@ -2720,10 +2718,10 @@ void TestQgsProcessing::processingFeatureSource()
27202718 context.setProject ( &p );
27212719
27222720 // first using static string definition
2723- QgsProcessingParameterDefinition * def = new QgsProcessingParameterString ( QStringLiteral ( " layer" ) );
2721+ std::unique_ptr< QgsProcessingParameterDefinition > def ( new QgsProcessingParameterString ( QStringLiteral ( " layer" ) ) );
27242722 QVariantMap params;
27252723 params.insert ( QStringLiteral ( " layer" ), QgsProcessingFeatureSourceDefinition ( layer->id (), false ) );
2726- std::unique_ptr< QgsFeatureSource > source ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
2724+ std::unique_ptr< QgsFeatureSource > source ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
27272725 // can't directly match it to layer, so instead just get the feature and test that it matches what we expect
27282726 QgsFeature f2;
27292727 QVERIFY ( source.get () );
@@ -2732,7 +2730,7 @@ void TestQgsProcessing::processingFeatureSource()
27322730
27332731 // next using property based definition
27342732 params.insert ( QStringLiteral ( " layer" ), QgsProcessingFeatureSourceDefinition ( QgsProperty::fromExpression ( QStringLiteral ( " trim('%1' + ' ')" ).arg ( layer->id () ) ), false ) );
2735- source.reset ( QgsProcessingParameters::parameterAsSource ( def, params, context ) );
2733+ source.reset ( QgsProcessingParameters::parameterAsSource ( def. get () , params, context ) );
27362734 // can't directly match it to layer, so instead just get the feature and test that it matches what we expect
27372735 QVERIFY ( source.get () );
27382736 QVERIFY ( source->getFeatures ().nextFeature ( f2 ) );
0 commit comments