def postInitialize(self, wrappers):
        super().postInitialize(wrappers)
        # find wrapper of mesh layer parameter and register listener for changing its value
        mesh_layer_param = self.parameterDefinition().layer
        wrapper = next((w for w in wrappers if w.parameterDefinition().name() == mesh_layer_param), None)

        # if not wrapper or wrapper.parameterDefinition().type() != 'mesh':
        if not wrapper:
            raise InvalidParameterValue('Dataset parameter must be linked to QgsProcessingParameterMeshLayer')
        wrapper.widgetValueHasChanged.connect(self.on_change)
        self.on_change(wrapper)
 def value(self):
     if self.dialogType == DIALOG_STANDARD:
         if self.param.datatype == dataobjects.TYPE_FILE:
             return self.param.setValue(self.widget.selectedoptions)
         else:
             if self.param.datatype == dataobjects.TYPE_RASTER:
                 options = QgsProcessingUtils.compatibleRasterLayers(QgsProject.instance(), False)
             elif self.param.datatype == dataobjects.TYPE_VECTOR_ANY:
                 options = QgsProcessingUtils.compatibleVectorLayers(QgsProject.instance(), [], False)
             else:
                 options = QgsProcessingUtils.compatibleVectorLayers(QgsProject.instance(), [self.param.datatype], False)
             return [options[i] for i in self.widget.selectedoptions]
     elif self.dialogType == DIALOG_BATCH:
         return self.widget.getText()
     else:
         options = self._getOptions()
         values = [options[i] for i in self.widget.selectedoptions]
         if len(values) == 0 and not self.param.flags() & QgsProcessingParameterDefinition.FlagOptional:
             raise InvalidParameterValue()
         return values
示例#3
0
 def value(self):
     if self.dialogType == DIALOG_STANDARD:
         if self.param.datatype == dataobjects.TYPE_FILE:
             return self.param.setValue(self.widget.selectedoptions)
         else:
             if self.param.datatype == dataobjects.TYPE_RASTER:
                 options = dataobjects.getRasterLayers(sorting=False)
             elif self.param.datatype == dataobjects.TYPE_VECTOR_ANY:
                 options = dataobjects.getVectorLayers(sorting=False)
             else:
                 options = dataobjects.getVectorLayers(
                     [self.param.datatype], sorting=False)
             return [options[i] for i in self.widget.selectedoptions]
     elif self.dialogType == DIALOG_BATCH:
         return self.widget.getText()
     else:
         options = self._getOptions()
         values = [options[i] for i in self.widget.selectedoptions]
         if len(values) == 0 and not self.param.optional:
             raise InvalidParameterValue()
         return values