28
28
from qgis .core import (QgsApplication )
29
29
from qgis .PyQt .QtCore import QVariant
30
30
from qgis .core import (QgsExpression ,
31
- QgsProcessingUtils )
31
+ QgsProcessingUtils ,
32
+ QgsProcessingParameterVectorLayer ,
33
+ QgsProcessingParameterField ,
34
+ QgsProcessingParameterEnum ,
35
+ QgsProcessingParameterString ,
36
+ QgsProcessingOutputVectorLayer )
32
37
from processing .algs .qgis .QgisAlgorithm import QgisAlgorithm
33
38
from processing .core .GeoAlgorithmExecutionException import GeoAlgorithmExecutionException
34
- from processing .core .parameters import ParameterVector
35
- from processing .core .parameters import ParameterTableField
36
- from processing .core .parameters import ParameterSelection
37
- from processing .core .parameters import ParameterString
38
- from processing .core .outputs import OutputVector
39
39
40
40
41
41
class SelectByAttribute (QgisAlgorithm ):
@@ -82,15 +82,15 @@ def __init__(self):
82
82
self .tr ('does not contain' )
83
83
]
84
84
85
- self .addParameter (ParameterVector (self .INPUT ,
86
- self .tr ('Input Layer' )))
87
- self .addParameter (ParameterTableField (self .FIELD ,
88
- self .tr ('Selection attribute' ), self .INPUT ))
89
- self .addParameter (ParameterSelection (self .OPERATOR ,
90
- self .tr ('Operator' ), self .i18n_operators ))
91
- self .addParameter (ParameterString (self .VALUE , self .tr ('Value' )))
85
+ self .addParameter (QgsProcessingParameterVectorLayer (self .INPUT , self .tr ('Input layer' )))
92
86
93
- self .addOutput (OutputVector (self .OUTPUT , self .tr ('Selected (attribute)' ), True ))
87
+ self .addParameter (QgsProcessingParameterField (self .FIELD ,
88
+ self .tr ('Selection attribute' ), parentLayerParameterName = self .INPUT ))
89
+ self .addParameter (QgsProcessingParameterEnum (self .OPERATOR ,
90
+ self .tr ('Operator' ), self .i18n_operators ))
91
+ self .addParameter (QgsProcessingParameterString (self .VALUE , self .tr ('Value' )))
92
+
93
+ self .addOutput (QgsProcessingOutputVectorLayer (self .OUTPUT , self .tr ('Selected (attribute)' )))
94
94
95
95
def name (self ):
96
96
return 'selectbyattribute'
@@ -99,11 +99,11 @@ def displayName(self):
99
99
return self .tr ('Select by attribute' )
100
100
101
101
def processAlgorithm (self , parameters , context , feedback ):
102
- fileName = self .getParameterValue ( self .INPUT )
103
- layer = QgsProcessingUtils . mapLayerFromString ( fileName , context )
104
- fieldName = self .getParameterValue ( self .FIELD )
105
- operator = self .OPERATORS [self .getParameterValue ( self .OPERATOR )]
106
- value = self .getParameterValue ( self .VALUE )
102
+ layer = self .parameterAsVectorLayer ( parameters , self .INPUT , context )
103
+
104
+ fieldName = self .parameterAsString ( parameters , self .FIELD , context )
105
+ operator = self .OPERATORS [self .parameterAsEnum ( parameters , self .OPERATOR , context )]
106
+ value = self .parameterAsString ( parameters , self .VALUE , context )
107
107
108
108
fields = layer .fields ()
109
109
@@ -135,4 +135,4 @@ def processAlgorithm(self, parameters, context, feedback):
135
135
raise GeoAlgorithmExecutionException (expression .parserErrorString ())
136
136
137
137
layer .selectByExpression (expression_string )
138
- self .setOutputValue ( self . OUTPUT , fileName )
138
+ return { self .OUTPUT : parameters [ self . INPUT ]}
0 commit comments