From 95fe5cdc040aa02f8ad55bab775516013b69bd1b Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Mon, 14 Aug 2017 05:24:59 +1000 Subject: [PATCH] Fix errors calculating gdal command when dialog is being constructed --- .../processing/algs/gdal/GdalAlgorithmDialog.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py b/python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py index 8575ec8cb9a6..d902d0bc1f78 100644 --- a/python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py +++ b/python/plugins/processing/algs/gdal/GdalAlgorithmDialog.py @@ -37,7 +37,8 @@ QSizePolicy, QDialogButtonBox) -from qgis.core import QgsProcessingFeedback +from qgis.core import (QgsProcessingFeedback, + QgsProcessingParameterDefinition) from qgis.gui import QgsMessageBar from processing.gui.AlgorithmDialog import AlgorithmDialog @@ -111,6 +112,13 @@ def parametersHaveChanged(self): for output in self.alg.destinationParameterDefinitions(): if not output.name() in parameters or parameters[output.name()] is None: parameters[output.name()] = self.tr("[temporary file]") + for p in self.alg.parameterDefinitions(): + if ( not p.name() in parameters and not p.flags() & QgsProcessingParameterDefinition.FlagOptional) \ + or (not p.checkValueIsAcceptable(parameters[p.name()], context)): + # not ready yet + self.text.setPlainText('') + return + commands = self.alg.getConsoleCommands(parameters, context, feedback) commands = [c for c in commands if c not in ['cmd.exe', '/C ']] self.text.setPlainText(" ".join(commands))