Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #1965 from radosuav/processing_models
[Processing]  Improve the robustness of models...
  • Loading branch information
volaya committed May 6, 2015
2 parents 79c0d5b + d1985b3 commit 6fbb2d6
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 3 deletions.
10 changes: 9 additions & 1 deletion python/plugins/processing/modeler/ModelerAlgorithm.py
Expand Up @@ -35,6 +35,8 @@
from PyQt4.QtCore import QCoreApplication, QPointF
from PyQt4.QtGui import QIcon
from qgis.core import QgsRasterLayer, QgsVectorLayer
from qgis.gui import QgsMessageBar
from qgis.utils import iface
from processing.core.GeoAlgorithm import GeoAlgorithm
from processing.modeler.WrongModelException import WrongModelException
from processing.core.GeoAlgorithmExecutionException import GeoAlgorithmExecutionException
Expand Down Expand Up @@ -332,7 +334,13 @@ def prepareAlgorithm(self, alg):
algInstance = alg.algorithm
for param in algInstance.parameters:
if not param.hidden:
value = self.resolveValue(alg.params[param.name])
if param.name in alg.params:
value = self.resolveValue(alg.params[param.name])
else:
iface.messageBar().pushMessage(self.tr("Warning"),
self.tr("Parameter %s in algorithm %s in the model is run with default value! Edit the model to make sure that this is correct." % (param.name, alg.name)),
QgsMessageBar.WARNING, 4)
value = None
if value is None and isinstance(param, ParameterExtent):
value = self.getMinCoveringExtent()
# We allow unexistent filepaths, since that allows
Expand Down
5 changes: 4 additions & 1 deletion python/plugins/processing/modeler/ModelerParametersDialog.py
Expand Up @@ -410,7 +410,10 @@ def setPreviousValues(self):
if param.hidden:
continue
widget = self.valueItems[param.name]
value = alg.params[param.name]
if param.name in alg.params:
value = alg.params[param.name]
else:
value = None
if isinstance(param, (
ParameterRaster,
ParameterVector,
Expand Down
5 changes: 4 additions & 1 deletion python/plugins/processing/modeler/ModelerScene.py
Expand Up @@ -98,7 +98,10 @@ def paintModel(self, model):
idx = 0
for parameter in alg.algorithm.parameters:
if not parameter.hidden:
value = alg.params[parameter.name]
if parameter.name in alg.params:
value = alg.params[parameter.name]
else:
value = None
sourceItems = self.getItemsFromParamValue(value)
for sourceItem, sourceIdx in sourceItems:
arrow = ModelerArrowItem(sourceItem, sourceIdx, self.algItems[alg.name], idx)
Expand Down

0 comments on commit 6fbb2d6

Please sign in to comment.