Beispiel #1
0
    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()
Beispiel #2
0
 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
Beispiel #3
0
 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