Skip to content

Commit da65e54

Browse files
committed
catch some python error in batch processing
1 parent d2679d6 commit da65e54

File tree

1 file changed

+32
-23
lines changed

1 file changed

+32
-23
lines changed

python/plugins/processing/gui/BatchPanel.py

+32-23
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
from PyQt4 import uic
3232
from PyQt4.QtGui import (QWidget, QIcon, QTableWidgetItem, QComboBox, QLineEdit,
33-
QHeaderView, QFileDialog)
33+
QHeaderView, QFileDialog, QMessageBox)
3434

3535
from qgis.core import QgsApplication
3636

@@ -180,30 +180,39 @@ def load(self):
180180
if filename:
181181
with open(filename) as f:
182182
values = json.load(f)
183+
else:
184+
# If the user clicked on the cancel button.
185+
return
183186

184187
self.tblParameters.setRowCount(0)
185-
for row, alg in enumerate(values):
186-
self.addRow()
187-
params = alg[self.PARAMETERS]
188-
outputs = alg[self.OUTPUTS]
189-
column = 0
190-
for param in self.alg.parameters:
191-
if param.hidden:
192-
continue
193-
widget = self.tblParameters.cellWidget(row, column)
194-
if param.name in params:
195-
value = params[param.name]
196-
self.setValueInWidget(widget, value)
197-
column += 1
198-
199-
for out in self.alg.outputs:
200-
if out.hidden:
201-
continue
202-
widget = self.tblParameters.cellWidget(row, column)
203-
if out.name in outputs:
204-
value = outputs[out.name]
205-
self.setValueInWidget(widget, value)
206-
column += 1
188+
try:
189+
for row, alg in enumerate(values):
190+
self.addRow()
191+
params = alg[self.PARAMETERS]
192+
outputs = alg[self.OUTPUTS]
193+
column = 0
194+
for param in self.alg.parameters:
195+
if param.hidden:
196+
continue
197+
widget = self.tblParameters.cellWidget(row, column)
198+
if param.name in params:
199+
value = params[param.name]
200+
self.setValueInWidget(widget, value)
201+
column += 1
202+
203+
for out in self.alg.outputs:
204+
if out.hidden:
205+
continue
206+
widget = self.tblParameters.cellWidget(row, column)
207+
if out.name in outputs:
208+
value = outputs[out.name]
209+
self.setValueInWidget(widget, value)
210+
column += 1
211+
except TypeError:
212+
QMessageBox.critical(
213+
self,
214+
self.tr('Error'),
215+
self.tr('An error occured while reading your file.'))
207216

208217
def setValueInWidget(self, widget, value):
209218
if isinstance(widget, (BatchInputSelectionPanel, QLineEdit, FileSelectionPanel)):

0 commit comments

Comments
 (0)