From 057ab170da7c88dc946ae80b307853582e653f0a Mon Sep 17 00:00:00 2001 From: Alexander Bruy Date: Tue, 7 Nov 2017 11:23:25 +0200 Subject: [PATCH] [processing] fix input rasters check --- .../processing/algs/saga/SagaAlgorithm.py | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/python/plugins/processing/algs/saga/SagaAlgorithm.py b/python/plugins/processing/algs/saga/SagaAlgorithm.py index 1d72db8f1f7b..2b9739af4b5e 100644 --- a/python/plugins/processing/algs/saga/SagaAlgorithm.py +++ b/python/plugins/processing/algs/saga/SagaAlgorithm.py @@ -381,25 +381,26 @@ def checkParameterValues(self, parameters, context): supported by SAGA, and that raster layers have the same grid extent """ extent = None + layers = [] for param in self.parameterDefinitions(): - layers = [] if isinstance(param, QgsProcessingParameterRasterLayer): layers.append(parameters[param.name()]) elif (isinstance(param, QgsProcessingParameterMultipleLayers) and - param.datatype == QgsProcessing.TypeRaster): - if parameters[param.name()] is not None: - layers.append(parameters[param.name()]) - for layer in layers: - if layer is None: - continue - if layer.bandCount() > 1: - return False, self.tr('Input layer {0} has more than one band.\n' - 'Multiband layers are not supported by SAGA').format(layer.name()) - if not self.allow_nonmatching_grid_extents: - if extent is None: - extent = (layer.extent(), layer.height(), layer.width()) - else: - extent2 = (layer.extent(), layer.height(), layer.width()) - if extent != extent2: - return False, self.tr("Input layers do not have the same grid extent.") + param.layerType() == QgsProcessing.TypeRaster): + if parameters[param.name()]: + layers.extend(parameters[param.name()]) + + for layer in layers: + if layer is None or layer == '': + continue + if layer.bandCount() > 1: + return False, self.tr('Input layer {0} has more than one band.\n' + 'Multiband layers are not supported by SAGA').format(layer.name()) + if not self.allow_nonmatching_grid_extents: + if extent is None: + extent = (layer.extent(), layer.height(), layer.width()) + else: + extent2 = (layer.extent(), layer.height(), layer.width()) + if extent != extent2: + return False, self.tr("Input layers do not have the same grid extent.") return super(SagaAlgorithm, self).checkParameterValues(parameters, context)