|
30 | 30 |
|
31 | 31 | from PyQt4 import uic
|
32 | 32 | from PyQt4.QtGui import (QWidget, QIcon, QTableWidgetItem, QComboBox, QLineEdit,
|
33 |
| - QHeaderView, QFileDialog) |
| 33 | + QHeaderView, QFileDialog, QMessageBox) |
34 | 34 |
|
35 | 35 | from qgis.core import QgsApplication
|
36 | 36 |
|
@@ -184,30 +184,39 @@ def load(self):
|
184 | 184 | if filename:
|
185 | 185 | with open(filename) as f:
|
186 | 186 | values = json.load(f)
|
| 187 | + else: |
| 188 | + # If the user clicked on the cancel button. |
| 189 | + return |
187 | 190 |
|
188 | 191 | self.tblParameters.setRowCount(0)
|
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 |
| 192 | + try: |
| 193 | + for row, alg in enumerate(values): |
| 194 | + self.addRow() |
| 195 | + params = alg[self.PARAMETERS] |
| 196 | + outputs = alg[self.OUTPUTS] |
| 197 | + column = 0 |
| 198 | + for param in self.alg.parameters: |
| 199 | + if param.hidden: |
| 200 | + continue |
| 201 | + widget = self.tblParameters.cellWidget(row, column) |
| 202 | + if param.name in params: |
| 203 | + value = params[param.name] |
| 204 | + self.setValueInWidget(widget, value) |
| 205 | + column += 1 |
| 206 | + |
| 207 | + for out in self.alg.outputs: |
| 208 | + if out.hidden: |
| 209 | + continue |
| 210 | + widget = self.tblParameters.cellWidget(row, column) |
| 211 | + if out.name in outputs: |
| 212 | + value = outputs[out.name] |
| 213 | + self.setValueInWidget(widget, value) |
| 214 | + column += 1 |
| 215 | + except TypeError: |
| 216 | + QMessageBox.critical( |
| 217 | + self, |
| 218 | + self.tr('Error'), |
| 219 | + self.tr('An error occured while reading your file.')) |
211 | 220 |
|
212 | 221 | def setValueInWidget(self, widget, value):
|
213 | 222 | if isinstance(widget, (BatchInputSelectionPanel, QLineEdit, FileSelectionPanel)):
|
|
0 commit comments