Skip to content

Commit 83f3a58

Browse files
committed
[processing] added check to ensure input layers are valid
1 parent 247c2f0 commit 83f3a58

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

python/plugins/processing/core/GeoAlgorithm.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,21 @@ def execute(self, progress=None, model=None):
246246
raise GeoAlgorithmExecutionException(
247247
str(e) + self.tr('\nSee log for more details'))
248248

249+
def _checkParameterValuesBeforeExecuting(self):
250+
for param in self.parameters:
251+
if isinstance(param, (ParameterRaster, ParameterVector,
252+
ParameterMultipleInput)):
253+
if param.value:
254+
if isinstance(param, ParameterMultipleInput):
255+
inputlayers = param.value.split(';')
256+
else:
257+
inputlayers = [param.value]
258+
for inputlayer in inputlayers:
259+
obj = dataobjects.getObjectFromUri(inputlayer)
260+
if obj is None:
261+
return "Wrong parameter value: " + param.value
262+
return self.checkParameterValuesBeforeExecuting()
263+
249264
def runPostExecutionScript(self, progress):
250265
scriptFile = ProcessingConfig.getSetting(
251266
ProcessingConfig.POST_EXECUTION_SCRIPT)

python/plugins/processing/core/Processing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ def runAlgorithm(algOrName, onFinish, *args):
327327
return
328328
i = i + 1
329329

330-
msg = alg.checkParameterValuesBeforeExecuting()
330+
msg = alg._checkParameterValuesBeforeExecuting()
331331
if msg:
332332
print 'Unable to execute algorithm\n' + msg
333333
return

python/plugins/processing/gui/AlgorithmDialog.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ def accept(self):
156156
QMessageBox.No)
157157
if reply == QMessageBox.No:
158158
return
159-
msg = self.alg.checkParameterValuesBeforeExecuting()
159+
msg = self.alg._checkParameterValuesBeforeExecuting()
160160
if msg:
161161
QMessageBox.warning(
162162
self, self.tr('Unable to execute algorithm'), msg)

0 commit comments

Comments
 (0)