From 90bac82f124ccb53e43bb99f5d483105bea1c967 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Tue, 24 Sep 2019 10:46:44 +1000 Subject: [PATCH] [needs-docs][processing] Respect user set default vector output format in vector split algorithm The created outputs will now be created using the format specified from the Processing setting default vector format setting. --- python/plugins/processing/algs/qgis/VectorSplit.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/python/plugins/processing/algs/qgis/VectorSplit.py b/python/plugins/processing/algs/qgis/VectorSplit.py index 746c6c61f25..ba600fc2c7c 100644 --- a/python/plugins/processing/algs/qgis/VectorSplit.py +++ b/python/plugins/processing/algs/qgis/VectorSplit.py @@ -29,11 +29,11 @@ from qgis.core import (QgsApplication, QgsProcessingParameterFeatureSource, QgsProcessingParameterField, QgsProcessingParameterFolderDestination, - QgsProcessingOutputFolder, QgsProcessingException, QgsProcessingOutputMultipleLayers, QgsExpression, - QgsFeatureRequest) + QgsFeatureRequest, + QgsVectorFileWriter) from processing.algs.qgis.QgisAlgorithm import QgisAlgorithm from processing.tools.system import mkdir @@ -88,6 +88,11 @@ class VectorSplit(QgisAlgorithm): fieldName = self.parameterAsString(parameters, self.FIELD, context) directory = self.parameterAsString(parameters, self.OUTPUT, context) + output_format = context.preferredVectorFormat() + if not output_format in QgsVectorFileWriter.supportedFormatExtensions(): + # fallback to gpkg if preferred format is not available + output_format = 'gpkg' + mkdir(directory) fieldIndex = source.fields().lookupField(fieldName) @@ -104,7 +109,7 @@ class VectorSplit(QgisAlgorithm): for current, i in enumerate(uniqueValues): if feedback.isCanceled(): break - fName = '{0}_{1}.gpkg'.format(baseName, str(i).strip()) + fName = '{0}_{1}.{2}'.format(baseName, str(i).strip(), output_format) feedback.pushInfo(self.tr('Creating layer: {}').format(fName)) sink, dest = QgsProcessingUtils.createFeatureSink(fName, context, fields, geomType, crs)