mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-28 00:17:30 -05:00
Fix setting number parameters to expressions
This commit is contained in:
parent
82ef7d2a89
commit
3f9cfe0ce7
@ -89,30 +89,20 @@ class ModellerNumberInputPanel(BASE, WIDGET):
|
||||
|
||||
def getValue(self):
|
||||
value = self.leText.text()
|
||||
values = []
|
||||
#for param in self.modelParametersDialog.model.parameterDefinitions():
|
||||
# if isinstance(param, QgsProcessingParameterNumber):
|
||||
# if "@" + param.name() in value:
|
||||
# values.append(ValueFromInput(param.name()))
|
||||
#for alg in list(self.modelParametersDialog.model.algs.values()):
|
||||
# for out in alg.algorithm.outputDefinitions():
|
||||
# if isinstance(out, QgsProcessingOutputNumber) and "@%s_%s" % (alg.modeler_name, out.name) in value:
|
||||
# values.append(ValueFromOutput(alg.modeler_name, out.name()))
|
||||
|
||||
for param in self.modelParametersDialog.model.parameterDefinitions():
|
||||
if isinstance(param, QgsProcessingParameterNumber):
|
||||
if "@" + param.name() == value:
|
||||
if "@" + param.name() == value.strip():
|
||||
return QgsProcessingModelAlgorithm.ChildParameterSource.fromModelParameter(param.name())
|
||||
|
||||
for alg in list(self.modelParametersDialog.model.childAlgorithms().values()):
|
||||
for out in alg.algorithm().outputDefinitions():
|
||||
if isinstance(out, QgsProcessingOutputNumber) and "@%s_%s" % (alg.childId(), out.name()) == value:
|
||||
if isinstance(out, QgsProcessingOutputNumber) and "@%s_%s" % (alg.childId(), out.name()) == value.strip():
|
||||
return QgsProcessingModelAlgorithm.ChildParameterSource.fromChildOutput(alg.childId(), out.outputName())
|
||||
|
||||
if values:
|
||||
return CompoundValue(values, value)
|
||||
else:
|
||||
return value
|
||||
try:
|
||||
return float(value.strip())
|
||||
except:
|
||||
return QgsProcessingModelAlgorithm.ChildParameterSource.fromExpression(self.leText.text())
|
||||
|
||||
def setValue(self, value):
|
||||
if isinstance(value, QgsProcessingModelAlgorithm.ChildParameterSource):
|
||||
@ -121,6 +111,8 @@ class ModellerNumberInputPanel(BASE, WIDGET):
|
||||
elif value.source() == QgsProcessingModelAlgorithm.ChildParameterSource.ChildOutput:
|
||||
name = "%s_%s" % (value.outputChildId(), value.outputName())
|
||||
self.leText.setText(name)
|
||||
elif value.source() == QgsProcessingModelAlgorithm.ChildParameterSource.Expression:
|
||||
self.leText.setText(value.expression())
|
||||
else:
|
||||
self.leText.setText(str(value.staticValue()))
|
||||
else:
|
||||
|
@ -29,7 +29,8 @@ __revision__ = '$Format:%H$'
|
||||
from qgis.PyQt.QtCore import QPointF, Qt
|
||||
from qgis.PyQt.QtWidgets import QGraphicsItem, QGraphicsScene
|
||||
from qgis.core import (QgsProcessingParameterDefinition,
|
||||
QgsProcessingModelAlgorithm)
|
||||
QgsProcessingModelAlgorithm,
|
||||
QgsExpression)
|
||||
from processing.modeler.ModelerGraphicItem import ModelerGraphicItem
|
||||
from processing.modeler.ModelerArrowItem import ModelerArrowItem
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user