More responsive feedback when using iterate mode

This commit is contained in:
Nyall Dawson 2017-06-12 13:39:33 +10:00
parent b9e0b46f9f
commit 4b81630aa6

View File

@ -79,7 +79,11 @@ def executeIterating(alg, parameters, paramToIter, context, feedback):
iter_source = QgsProcessingParameters.parameterAsSource(parameter_definition, parameters, context)
sink_list = []
for feat in iter_source.getFeatures():
if iter_source.featureCount() == 0:
return False
total = 100.0 / iter_source.featureCount()
for current, feat in enumerate(iter_source.getFeatures()):
if feedback.isCanceled():
return False
@ -88,6 +92,8 @@ def executeIterating(alg, parameters, paramToIter, context, feedback):
sink.addFeature(feat)
del sink
feedback.setProgress(int(current * total))
# store output values to use them later as basenames for all outputs
outputs = {}
for out in alg.destinationParameterDefinitions():