Skip to content

Commit f8c3f39

Browse files
committedFeb 21, 2018
[processing] Fix dependency calculation for model child algs
1 parent 76c21ea commit f8c3f39

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed
 

‎src/core/processing/models/qgsprocessingmodelalgorithm.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1045,7 +1045,7 @@ void QgsProcessingModelAlgorithm::dependentChildAlgorithmsRecursive( const QStri
10451045
&& source.outputChildId() == childId )
10461046
{
10471047
depends.insert( childIt->childId() );
1048-
dependsOnChildAlgorithmsRecursive( childIt->childId(), depends );
1048+
dependentChildAlgorithmsRecursive( childIt->childId(), depends );
10491049
break;
10501050
}
10511051
}

‎tests/src/analysis/testqgsprocessing.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5095,6 +5095,34 @@ void TestQgsProcessing::modelerAlgorithm()
50955095
QVERIFY( alg3.dependsOnChildAlgorithms( "c9" ).contains( "c7" ) );
50965096
QVERIFY( alg3.dependsOnChildAlgorithms( "c9" ).contains( "c8" ) );
50975097

5098+
QgsProcessingModelChildAlgorithm c9b;
5099+
c9b.setChildId( "c9b" );
5100+
c9b.addParameterSources( "x", QgsProcessingModelChildParameterSources() << QgsProcessingModelChildParameterSource::fromChildOutput( "c9", "x" ) );
5101+
alg3.addChildAlgorithm( c9b );
5102+
5103+
QCOMPARE( alg3.dependentChildAlgorithms( "c9" ).count(), 1 );
5104+
QCOMPARE( alg3.dependentChildAlgorithms( "c8" ).count(), 2 );
5105+
QVERIFY( alg3.dependentChildAlgorithms( "c8" ).contains( "c9" ) );
5106+
QVERIFY( alg3.dependentChildAlgorithms( "c8" ).contains( "c9b" ) );
5107+
QCOMPARE( alg3.dependentChildAlgorithms( "c7" ).count(), 3 );
5108+
QVERIFY( alg3.dependentChildAlgorithms( "c7" ).contains( "c8" ) );
5109+
QVERIFY( alg3.dependentChildAlgorithms( "c7" ).contains( "c9" ) );
5110+
QVERIFY( alg3.dependentChildAlgorithms( "c7" ).contains( "c9b" ) );
5111+
5112+
QVERIFY( alg3.dependsOnChildAlgorithms( "c7" ).isEmpty() );
5113+
QCOMPARE( alg3.dependsOnChildAlgorithms( "c8" ).count(), 1 );
5114+
QVERIFY( alg3.dependsOnChildAlgorithms( "c8" ).contains( "c7" ) );
5115+
QCOMPARE( alg3.dependsOnChildAlgorithms( "c9" ).count(), 2 );
5116+
QVERIFY( alg3.dependsOnChildAlgorithms( "c9" ).contains( "c7" ) );
5117+
QVERIFY( alg3.dependsOnChildAlgorithms( "c9" ).contains( "c8" ) );
5118+
QCOMPARE( alg3.dependsOnChildAlgorithms( "c9b" ).count(), 3 );
5119+
QVERIFY( alg3.dependsOnChildAlgorithms( "c9b" ).contains( "c7" ) );
5120+
QVERIFY( alg3.dependsOnChildAlgorithms( "c9b" ).contains( "c8" ) );
5121+
QVERIFY( alg3.dependsOnChildAlgorithms( "c9b" ).contains( "c9" ) );
5122+
5123+
alg3.removeChildAlgorithm( "c9b" );
5124+
5125+
50985126
// (de)activate child algorithm
50995127
alg3.deactivateChildAlgorithm( "c9" );
51005128
QVERIFY( !alg3.childAlgorithm( "c9" ).isActive() );

0 commit comments

Comments
 (0)
Please sign in to comment.