Skip to content

Commit a9f97fc

Browse files
committedJun 21, 2017
Port create attribute index alg to new api
1 parent c685ec2 commit a9f97fc

File tree

3 files changed

+16
-17
lines changed

3 files changed

+16
-17
lines changed
 

‎python/plugins/processing/algs/qgis/CreateAttributeIndex.py

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828
from qgis.core import (QgsVectorDataProvider,
2929
QgsFields,
3030
QgsApplication,
31-
QgsProcessingUtils)
31+
QgsProcessingParameterVectorLayer,
32+
QgsProcessingParameterField,
33+
QgsProcessingParameterDefinition,
34+
QgsProcessingOutputVectorLayer)
3235

3336
from processing.algs.qgis.QgisAlgorithm import QgisAlgorithm
34-
from processing.core.parameters import ParameterTable
35-
from processing.core.parameters import ParameterTableField
36-
from processing.core.outputs import OutputVector
3737

3838

3939
class CreateAttributeIndex(QgisAlgorithm):
@@ -53,12 +53,11 @@ def group(self):
5353

5454
def __init__(self):
5555
super().__init__()
56-
self.addParameter(ParameterTable(self.INPUT,
57-
self.tr('Input Layer')))
58-
self.addParameter(ParameterTableField(self.FIELD,
59-
self.tr('Attribute to index'), self.INPUT))
60-
self.addOutput(OutputVector(self.OUTPUT,
61-
self.tr('Indexed layer'), True))
56+
self.addParameter(QgsProcessingParameterVectorLayer(self.INPUT,
57+
self.tr('Input Layer')))
58+
self.addParameter(QgsProcessingParameterField(self.FIELD,
59+
self.tr('Attribute to index'), None, self.INPUT))
60+
self.addOutput(QgsProcessingOutputVectorLayer(self.OUTPUT, self.tr('Indexed layer')))
6261

6362
def name(self):
6463
return 'createattributeindex'
@@ -67,9 +66,8 @@ def displayName(self):
6766
return self.tr('Create attribute index')
6867

6968
def processAlgorithm(self, parameters, context, feedback):
70-
file_name = self.getParameterValue(self.INPUT)
71-
layer = QgsProcessingUtils.mapLayerFromString(file_name, context)
72-
field = self.getParameterValue(self.FIELD)
69+
layer = self.parameterAsVectorLayer(parameters, self.INPUT, context)
70+
field = self.parameterAsString(parameters, self.FIELD, context)
7371
provider = layer.dataProvider()
7472

7573
field_index = layer.fields().lookupField(field)
@@ -84,4 +82,4 @@ def processAlgorithm(self, parameters, context, feedback):
8482
feedback.pushInfo(self.tr("Layer's data provider does not support "
8583
"creating attribute indexes"))
8684

87-
self.setOutputValue(self.OUTPUT, file_name)
85+
return {self.OUTPUT: layer.id()}

‎python/plugins/processing/algs/qgis/QGISAlgorithmProvider.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@
168168
# from .SnapGeometries import SnapGeometriesToLayer
169169
# from .PoleOfInaccessibility import PoleOfInaccessibility
170170
# from .RasterCalculator import RasterCalculator
171-
# from .CreateAttributeIndex import CreateAttributeIndex
171+
from .CreateAttributeIndex import CreateAttributeIndex
172172
from .DropGeometry import DropGeometry
173173
from .BasicStatistics import BasicStatisticsForField
174174
# from .Heatmap import Heatmap
@@ -249,7 +249,7 @@ def getAlgs(self):
249249
# RemoveNullGeometry(),
250250
# ExtendLines(), ExtractSpecificNodes(),
251251
# GeometryByExpression(), SnapGeometriesToLayer(),
252-
# PoleOfInaccessibility(), CreateAttributeIndex(),
252+
# PoleOfInaccessibility(),
253253
#
254254
# RasterCalculator(), Heatmap(), Orthogonalize(),
255255
# ShortestPathPointToPoint(), ShortestPathPointToLayer(),
@@ -266,6 +266,7 @@ def getAlgs(self):
266266
BoundingBox(),
267267
CheckValidity(),
268268
Clip(),
269+
CreateAttributeIndex(),
269270
DeleteColumn(),
270271
DeleteHoles(),
271272
DensifyGeometries(),

‎python/plugins/processing/gui/wrappers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1303,7 +1303,7 @@ def create_wrapper_from_class(param, dialog, row=0, col=0):
13031303
wrapper = StringWidgetWrapper
13041304
elif param.type() == 'expression':
13051305
wrapper = ExpressionWidgetWrapper
1306-
elif param.type() == 'table':
1306+
elif param.type() == 'vector':
13071307
wrapper = TableWidgetWrapper
13081308
elif param.type() == 'field':
13091309
wrapper = TableFieldWidgetWrapper

0 commit comments

Comments
 (0)
Please sign in to comment.