|
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 |
|
@@ -180,30 +180,39 @@ def load(self):
|
180 | 180 | if filename:
|
181 | 181 | with open(filename) as f:
|
182 | 182 | values = json.load(f)
|
| 183 | + else: |
| 184 | + # If the user clicked on the cancel button. |
| 185 | + return |
183 | 186 |
|
184 | 187 | 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.')) |
207 | 216 |
|
208 | 217 | def setValueInWidget(self, widget, value):
|
209 | 218 | if isinstance(widget, (BatchInputSelectionPanel, QLineEdit, FileSelectionPanel)):
|
|
0 commit comments