From cdbb57d65f95c67c227fd25cee98f5bd58be677c Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Wed, 23 Aug 2017 00:37:14 +1000 Subject: [PATCH] Don't throw python exception when modeler algorithm is missing inputs Instead use nicer messagebar for feedback. Also fix untranslatable strings. Refs #17028 --- .../processing/modeler/ModelerParametersDialog.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/python/plugins/processing/modeler/ModelerParametersDialog.py b/python/plugins/processing/modeler/ModelerParametersDialog.py index 536b20ac79c..0afb38d889d 100644 --- a/python/plugins/processing/modeler/ModelerParametersDialog.py +++ b/python/plugins/processing/modeler/ModelerParametersDialog.py @@ -303,7 +303,13 @@ class ModelerParametersDialog(QDialog): for param in self._alg.parameterDefinitions(): if param.isDestination() or param.flags() & QgsProcessingParameterDefinition.FlagHidden: continue - val = self.wrappers[param.name()].value() + try: + val = self.wrappers[param.name()].value() + except InvalidParameterValue: + self.bar.pushMessage(self.tr("Error"), self.tr("Wrong or missing value for parameter '{}'").format(param.description()), + level=QgsMessageBar.WARNING) + return None + if isinstance(val, QgsProcessingModelChildParameterSource): val = [val] elif not (isinstance(val, list) and all([isinstance(subval, QgsProcessingModelChildParameterSource) for subval in val])): @@ -313,7 +319,7 @@ class ModelerParametersDialog(QDialog): subval.source() == QgsProcessingModelChildParameterSource.StaticValue and not param.checkValueIsAcceptable(subval.staticValue())) \ or (subval is None and not param.flags() & QgsProcessingParameterDefinition.FlagOptional): - self.bar.pushMessage("Error", "Wrong or missing value for parameter '%s'" % param.description(), + self.bar.pushMessage(self.tr("Error"), self.tr("Wrong or missing value for parameter '{}'").format(param.description()), level=QgsMessageBar.WARNING) return None alg.addParameterSources(param.name(), val)