From a9f97fc478d2c6f3da218057ebe78a721af94e82 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Wed, 21 Jun 2017 22:14:39 +1000 Subject: [PATCH] Port create attribute index alg to new api --- .../algs/qgis/CreateAttributeIndex.py | 26 +++++++++---------- .../algs/qgis/QGISAlgorithmProvider.py | 5 ++-- python/plugins/processing/gui/wrappers.py | 2 +- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/python/plugins/processing/algs/qgis/CreateAttributeIndex.py b/python/plugins/processing/algs/qgis/CreateAttributeIndex.py index 80b9dfffaba..4f7d320ddcd 100644 --- a/python/plugins/processing/algs/qgis/CreateAttributeIndex.py +++ b/python/plugins/processing/algs/qgis/CreateAttributeIndex.py @@ -28,12 +28,12 @@ __revision__ = '$Format:%H$' from qgis.core import (QgsVectorDataProvider, QgsFields, QgsApplication, - QgsProcessingUtils) + QgsProcessingParameterVectorLayer, + QgsProcessingParameterField, + QgsProcessingParameterDefinition, + QgsProcessingOutputVectorLayer) from processing.algs.qgis.QgisAlgorithm import QgisAlgorithm -from processing.core.parameters import ParameterTable -from processing.core.parameters import ParameterTableField -from processing.core.outputs import OutputVector class CreateAttributeIndex(QgisAlgorithm): @@ -53,12 +53,11 @@ class CreateAttributeIndex(QgisAlgorithm): def __init__(self): super().__init__() - self.addParameter(ParameterTable(self.INPUT, - self.tr('Input Layer'))) - self.addParameter(ParameterTableField(self.FIELD, - self.tr('Attribute to index'), self.INPUT)) - self.addOutput(OutputVector(self.OUTPUT, - self.tr('Indexed layer'), True)) + self.addParameter(QgsProcessingParameterVectorLayer(self.INPUT, + self.tr('Input Layer'))) + self.addParameter(QgsProcessingParameterField(self.FIELD, + self.tr('Attribute to index'), None, self.INPUT)) + self.addOutput(QgsProcessingOutputVectorLayer(self.OUTPUT, self.tr('Indexed layer'))) def name(self): return 'createattributeindex' @@ -67,9 +66,8 @@ class CreateAttributeIndex(QgisAlgorithm): return self.tr('Create attribute index') def processAlgorithm(self, parameters, context, feedback): - file_name = self.getParameterValue(self.INPUT) - layer = QgsProcessingUtils.mapLayerFromString(file_name, context) - field = self.getParameterValue(self.FIELD) + layer = self.parameterAsVectorLayer(parameters, self.INPUT, context) + field = self.parameterAsString(parameters, self.FIELD, context) provider = layer.dataProvider() field_index = layer.fields().lookupField(field) @@ -84,4 +82,4 @@ class CreateAttributeIndex(QgisAlgorithm): feedback.pushInfo(self.tr("Layer's data provider does not support " "creating attribute indexes")) - self.setOutputValue(self.OUTPUT, file_name) + return {self.OUTPUT: layer.id()} diff --git a/python/plugins/processing/algs/qgis/QGISAlgorithmProvider.py b/python/plugins/processing/algs/qgis/QGISAlgorithmProvider.py index 8e2a97b0e7c..2fe26a26bc5 100755 --- a/python/plugins/processing/algs/qgis/QGISAlgorithmProvider.py +++ b/python/plugins/processing/algs/qgis/QGISAlgorithmProvider.py @@ -168,7 +168,7 @@ from .Aspect import Aspect # from .SnapGeometries import SnapGeometriesToLayer # from .PoleOfInaccessibility import PoleOfInaccessibility # from .RasterCalculator import RasterCalculator -# from .CreateAttributeIndex import CreateAttributeIndex +from .CreateAttributeIndex import CreateAttributeIndex from .DropGeometry import DropGeometry from .BasicStatistics import BasicStatisticsForField # from .Heatmap import Heatmap @@ -249,7 +249,7 @@ class QGISAlgorithmProvider(QgsProcessingProvider): # RemoveNullGeometry(), # ExtendLines(), ExtractSpecificNodes(), # GeometryByExpression(), SnapGeometriesToLayer(), - # PoleOfInaccessibility(), CreateAttributeIndex(), + # PoleOfInaccessibility(), # # RasterCalculator(), Heatmap(), Orthogonalize(), # ShortestPathPointToPoint(), ShortestPathPointToLayer(), @@ -266,6 +266,7 @@ class QGISAlgorithmProvider(QgsProcessingProvider): BoundingBox(), CheckValidity(), Clip(), + CreateAttributeIndex(), DeleteColumn(), DeleteHoles(), DensifyGeometries(), diff --git a/python/plugins/processing/gui/wrappers.py b/python/plugins/processing/gui/wrappers.py index 72a2a58416e..9efb9ab4058 100644 --- a/python/plugins/processing/gui/wrappers.py +++ b/python/plugins/processing/gui/wrappers.py @@ -1303,7 +1303,7 @@ class WidgetWrapperFactory: wrapper = StringWidgetWrapper elif param.type() == 'expression': wrapper = ExpressionWidgetWrapper - elif param.type() == 'table': + elif param.type() == 'vector': wrapper = TableWidgetWrapper elif param.type() == 'field': wrapper = TableFieldWidgetWrapper