Expression parameters don't have to have parent layers

This commit is contained in:
Nyall Dawson 2016-11-11 12:03:33 +10:00
parent 132e76a596
commit 5625d6e9b6
2 changed files with 7 additions and 3 deletions

View File

@ -36,7 +36,7 @@ from functools import cmp_to_key
from qgis.core import QgsCoordinateReferenceSystem, QgsVectorLayer
from qgis.PyQt.QtWidgets import QCheckBox, QComboBox, QLineEdit, QPlainTextEdit
from qgis.gui import QgsFieldExpressionWidget
from qgis.gui import QgsFieldExpressionWidget, QgsExpressionLineEdit
from qgis.PyQt.QtCore import pyqtSignal, QObject, QVariant
from processing.gui.NumberInputPanel import NumberInputPanel
@ -714,7 +714,10 @@ class ExpressionWidgetWrapper(WidgetWrapper):
def createWidget(self):
if self.dialogType in (DIALOG_STANDARD, DIALOG_BATCH):
widget = QgsFieldExpressionWidget()
if self.param.parent_layer:
widget = QgsFieldExpressionWidget()
else:
widget = QgsExpressionLineEdit()
if self.param.default:
widget.setExpression(self.param.default)
else:

View File

@ -210,7 +210,8 @@ class ModelerParameterDefinitionDialog(QDialog):
self.verticalLayout.addWidget(QLabel(self.tr('Parent layer')))
self.parentCombo = QComboBox()
idx = 0
self.parentCombo.addItem(self.tr("None"), None)
idx = 1
for param in list(self.alg.inputs.values()):
if isinstance(param.param, (ParameterVector, ParameterTable)):
self.parentCombo.addItem(param.param.description, param.param.name)