diff --git a/src/analysis/processing/qgsalgorithmalignrasters.cpp b/src/analysis/processing/qgsalgorithmalignrasters.cpp index b83641d3a823..8e33dc597d42 100644 --- a/src/analysis/processing/qgsalgorithmalignrasters.cpp +++ b/src/analysis/processing/qgsalgorithmalignrasters.cpp @@ -62,6 +62,27 @@ QgsAlignRastersAlgorithm *QgsAlignRastersAlgorithm::createInstance() const return new QgsAlignRastersAlgorithm(); } +bool QgsAlignRastersAlgorithm::checkParameterValues( const QVariantMap ¶meters, QgsProcessingContext &context, QString *message ) const +{ + const QVariant layersVariant = parameters.value( parameterDefinition( QStringLiteral( "LAYERS" ) )->name() ); + const QList items = QgsProcessingParameterAlignRasterLayers::parameterAsItems( layersVariant, context ); + bool unconfiguredLayers = false; + for ( const QgsAlignRasterData::RasterItem &item : items ) + { + if ( item.outputFilename.isEmpty() ) + { + unconfiguredLayers = true; + break; + } + } + if ( unconfiguredLayers ) + { + *message = QObject::tr( "An output file is not configured for one or more input layers. Configure output files via 'Configure Raster…' under Input layers parameter." ); + return false; + } + return QgsProcessingAlgorithm::checkParameterValues( parameters, context ); +} + void QgsAlignRastersAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterAlignRasterLayers( QStringLiteral( "LAYERS" ), QObject::tr( "Input layers" ) ) ); diff --git a/src/analysis/processing/qgsalgorithmalignrasters.h b/src/analysis/processing/qgsalgorithmalignrasters.h index 4ea21b5eae47..d32b284a6b78 100644 --- a/src/analysis/processing/qgsalgorithmalignrasters.h +++ b/src/analysis/processing/qgsalgorithmalignrasters.h @@ -44,6 +44,7 @@ class QgsAlignRastersAlgorithm : public QgsProcessingAlgorithm QString groupId() const override; QString shortHelpString() const override; QgsAlignRastersAlgorithm *createInstance() const override SIP_FACTORY; + bool checkParameterValues( const QVariantMap ¶meters, QgsProcessingContext &context, QString *message ) const override; protected: