[processing] fixed issue in modeler with hidden params

This commit is contained in:
Victor Olaya 2014-05-21 16:33:20 +02:00
parent 28659b6164
commit 1e4d6a9a73
4 changed files with 112 additions and 105 deletions

View File

@ -176,6 +176,7 @@ class ModelerAlgorithm(GeoAlgorithm):
# parsing this
pass
for param in alg.parameters:
if not param.hidden:
line = lines.readline().strip('\n').strip('\r')
if line == str(None):
algParams[param.name] = None
@ -186,6 +187,7 @@ class ModelerAlgorithm(GeoAlgorithm):
tokens[1])
outputPos = {}
for out in alg.outputs:
if not out.hidden:
line = lines.readline().strip('\n').strip('\r')
if str(None) != line:
if '|' in line:
@ -467,12 +469,14 @@ class ModelerAlgorithm(GeoAlgorithm):
else:
s += str(None) + '\n'
for param in alg.parameters:
if not param.hidden:
value = self.algParameters[i][param.name]
if value:
s += value.serialize() + '\n'
else:
s += str(None) + '\n'
for out in alg.outputs:
if not out.hidden:
value = self.algOutputs[i][out.name]
s += unicode(value)
if value is not None:
@ -489,6 +493,7 @@ class ModelerAlgorithm(GeoAlgorithm):
def prepareAlgorithm(self, alg, iAlg):
for param in alg.parameters:
if not param.hidden:
aap = self.algParameters[iAlg][param.name]
if aap is None:
if isinstance(param, ParameterExtent):
@ -519,6 +524,7 @@ class ModelerAlgorithm(GeoAlgorithm):
raise GeoAlgorithmExecutionException('Wrong value: '
+ str(value))
for out in alg.outputs:
if not out.hidden:
val = self.algOutputs[iAlg][out.name]
if val:
name = self.getSafeNameForOutput(iAlg, out)

View File

@ -29,13 +29,13 @@ import codecs
import pickle
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from processing.core.ProcessingConfig import ProcessingConfig
from processing.core.GeoAlgorithm import GeoAlgorithm
from processing.gui.HelpEditionDialog import HelpEditionDialog
from processing.gui.ParametersDialog import ParametersDialog
from processing.gui.AlgorithmClassification import AlgorithmDecorator
from processing.modeler.ModelerParameterDefinitionDialog import \
ModelerParameterDefinitionDialog
from processing.modeler.ModelerParameterDefinitionDialog import ModelerParameterDefinitionDialog
from processing.modeler.ModelerAlgorithm import ModelerAlgorithm
from processing.modeler.ModelerParametersDialog import ModelerParametersDialog
from processing.modeler.ModelerUtils import ModelerUtils
@ -54,7 +54,6 @@ class ModelerDialog(QDialog, Ui_DlgModeler):
def __init__(self, alg=None):
QDialog.__init__(self)
self.hasChanged = False
self.setupUi(self)
self.setWindowFlags(Qt.WindowMinimizeButtonHint |
@ -162,6 +161,7 @@ class ModelerDialog(QDialog, Ui_DlgModeler):
self.textGroup.setText(alg.group)
self.textName.setText(alg.name)
self.repaintModel()
else:
self.alg = ModelerAlgorithm()
@ -172,6 +172,8 @@ class ModelerDialog(QDialog, Ui_DlgModeler):
# closing this dialog
self.update = False
self.hasChanged = False
def changeModel(self):
self.hasChanged = True

View File

@ -251,6 +251,7 @@ class ModelerGraphicItem(QtGui.QGraphicsItem):
i = 1
if not self.inputFolded:
for param in self.element.parameters:
if not param.hidden:
text = self.getAdjustedText(param.description)
h = -(fm.height() * 1.2) * (i + 1)
h = h - ModelerGraphicItem.BOX_HEIGHT / 2.0 + 5
@ -265,6 +266,7 @@ class ModelerGraphicItem(QtGui.QGraphicsItem):
painter.drawText(pt, 'Out')
if not self.outputFolded:
for out in self.element.outputs:
if not out.hidden:
text = self.getAdjustedText(out.description)
h = fm.height() * 1.2 * (i + 1)
h = h + ModelerGraphicItem.BOX_HEIGHT / 2.0
@ -295,7 +297,6 @@ class ModelerGraphicItem(QtGui.QGraphicsItem):
def getLinkPointForOutput(self, outputIndex):
if isinstance(self.element, GeoAlgorithm):
numParams = 0
outputIndex = (outputIndex if not self.outputFolded else -1)
text = self.getAdjustedText(
self.element.outputs[outputIndex].description)

View File

@ -138,15 +138,13 @@ class ModelerScene(QtGui.QGraphicsScene):
params = model.algParameters[iAlg]
idx = 0
for parameter in alg.parameters:
if not parameter.hidden:
param = params[parameter.name]
if param:
sourceItems = self.getItemsFromAAP(param,
isinstance(
alg.getParameterFromName(parameter.name),
ParameterMultipleInput))
isinstance(alg.getParameterFromName(parameter.name), ParameterMultipleInput))
for sourceItem in sourceItems:
arrow = ModelerArrowItem(sourceItem[0], sourceItem[1],
self.algItems[iAlg], idx)
arrow = ModelerArrowItem(sourceItem[0], sourceItem[1], self.algItems[iAlg], idx)
self.addItem(arrow)
idx += 1
for depend in model.dependencies[iAlg]: