Esempio n. 1
0
    def testModelerParametersDialogAvailableValuesOfType(self):
        # test getAvailableValuesOfType from ModelerParametersDialog

        m = QgsProcessingModelAlgorithm()

        string_param_1 = QgsProcessingModelAlgorithm.ModelParameter('string')
        m.addModelParameter(QgsProcessingParameterString('string'),
                            string_param_1)

        string_param_2 = QgsProcessingModelAlgorithm.ModelParameter('string2')
        m.addModelParameter(QgsProcessingParameterString('string2'),
                            string_param_2)

        num_param = QgsProcessingModelAlgorithm.ModelParameter('number')
        m.addModelParameter(QgsProcessingParameterNumber('number'), num_param)

        table_field_param = QgsProcessingModelAlgorithm.ModelParameter('field')
        m.addModelParameter(QgsProcessingParameterField('field'),
                            table_field_param)

        file_param = QgsProcessingModelAlgorithm.ModelParameter('file')
        m.addModelParameter(QgsProcessingParameterFile('file'), file_param)

        dlg = ModelerParametersDialog(m, m)
        # test single types
        self.assertEqual(
            set(p.parameterName() for p in dlg.getAvailableValuesOfType(
                QgsProcessingParameterNumber)), set(['number']))
        self.assertEqual(
            set(p.parameterName() for p in dlg.getAvailableValuesOfType(
                QgsProcessingParameterField)), set(['field']))
        self.assertEqual(
            set(p.parameterName() for p in dlg.getAvailableValuesOfType(
                QgsProcessingParameterFile)), set(['file']))

        # test multiple types
        self.assertEqual(
            set(p.parameterName() for p in dlg.getAvailableValuesOfType([
                QgsProcessingParameterString, QgsProcessingParameterNumber,
                QgsProcessingParameterFile
            ])), set(['string', 'string2', 'number', 'file']))
Esempio n. 2
0
 def addInputOfType(self, paramType, pos=None):
     if paramType in ModelerParameterDefinitionDialog.paramTypes:
         dlg = ModelerParameterDefinitionDialog(self.model, paramType)
         dlg.exec_()
         if dlg.param is not None:
             if pos is None:
                 pos = self.getPositionForParameterItem()
             if isinstance(pos, QPoint):
                 pos = QPointF(pos)
             component = QgsProcessingModelAlgorithm.ModelParameter(
                 dlg.param.name())
             component.setDescription(dlg.param.name())
             component.setPosition(pos)
             self.model.addModelParameter(dlg.param, component)
             self.repaintModel()
             # self.view.ensureVisible(self.scene.getLastParameterItem())
             self.hasChanged = True