diff --git a/src/gui/processing/qgsprocessingguiregistry.cpp b/src/gui/processing/qgsprocessingguiregistry.cpp index 92add382a24..17c41b98e27 100644 --- a/src/gui/processing/qgsprocessingguiregistry.cpp +++ b/src/gui/processing/qgsprocessingguiregistry.cpp @@ -66,7 +66,10 @@ QgsProcessingAlgorithmConfigurationWidget *QgsProcessingGuiRegistry::algorithmCo { if ( factory->canCreateFor( algorithm ) ) { - return factory->create( algorithm ); + std::unique_ptr< QgsProcessingAlgorithmConfigurationWidget > widget( factory->create( algorithm ) ); + if ( widget ) + widget->setAlgorithm( algorithm ); + return widget.release(); } } diff --git a/tests/src/gui/testprocessinggui.cpp b/tests/src/gui/testprocessinggui.cpp index 00b0070afb8..827136ac37e 100644 --- a/tests/src/gui/testprocessinggui.cpp +++ b/tests/src/gui/testprocessinggui.cpp @@ -254,9 +254,9 @@ void TestProcessingGui::testSetGetConfig() for ( const QgsProcessingAlgorithm *algorithm : algorithms ) { std::unique_ptr configWidget( QgsGui::instance()->processingGuiRegistry()->algorithmConfigurationWidget( algorithm ) ); - if ( configWidget ) { + QCOMPARE( configWidget->algorithm(), algorithm ); const QVariantMap defaultConfig = configWidget->configuration(); configWidget->setConfiguration( defaultConfig ); const QVariantMap defaultControlConfig = configWidget->configuration();