def addLayerFields(self, layer_source): layer = layer_source.layer if layer.type() != QgsMapLayer.VectorLayer: return for i, field in enumerate(layer.fields()): row = self.rowCount() ews = layer.editorWidgetSetup(i) if ews.type() == 'ExternalResource': # for later: if ews.config().get('DocumentViewer', QgsExternalResourceWidget.NoContent) == QgsExternalResourceWidget.Image: self.insertRow(row) item = QTableWidgetItem(layer.name()) item.setData(Qt.UserRole, layer_source) self.setItem(row, 0, item) item = QTableWidgetItem(field.name()) self.setItem(row, 1, item) ew = QgsFieldExpressionWidget() ew.setLayer(layer) expression = layer_source.photo_naming(field.name()) ew.setExpression(expression) self.setCellWidget(row, 2, ew) self.resizeColumnsToContents()
def createWidget(self): if self.dialogType in (DIALOG_STANDARD, DIALOG_BATCH): if self.param.parent_layer: widget = QgsFieldExpressionWidget() else: widget = QgsExpressionLineEdit() if self.param.default: widget.setExpression(self.param.default) else: strings = self.dialog.getAvailableValuesOfType([ParameterExpression, ParameterString, ParameterNumber], OutputString) options = [(self.dialog.resolveValueDescription(s), s) for s in strings] widget = QComboBox() widget.setEditable(True) for desc, val in options: widget.addItem(desc, val) widget.setEditText(self.param.default or "") return widget
def createWidget(self): if self.dialogType in (DIALOG_STANDARD, DIALOG_BATCH): if self.param.parent_layer: widget = QgsFieldExpressionWidget() else: widget = QgsExpressionLineEdit() if self.param.default: widget.setExpression(self.param.default) else: strings = self.dialog.getAvailableValuesOfType([ParameterExpression, ParameterString, ParameterNumber], OutputString) options = [(self.dialog.resolveValueDescription(s), s) for s in strings] widget = QComboBox() widget.setEditable(True) for desc, val in options: widget.addItem(desc, val) widget.setEditText(self.param.default or "") return widget