Instead of forcing all steps in the batch processing dialog to execute
in the main thread, we now run each step as a separate task whenever
possible. This keeps the UI nice and responsive, and permits
responsive cancelation and progress reporting.
Individual steps are still run sequentially, not in parallel (yet!)
No user visible changes, but we gain the flexibility for better
history storage, including the ability to store the outputs
calculated by the algorithm execution...!
line, not processing.execAlgorithmDialog
We want this line to be copy/pastable into a script which executes
the algorithm without user interaction, same as QGIS <= 3.18
Followup https://github.com/qgis/QGIS/pull/42541
filter, ensure the progress bar is removed when the algorithm
finishes
Otherwise it hangs around in the message bar until it's manually
dismissed, unlike the behavior when you run an in-place operation
through the toolbox.
This button isn't a cancel button - it just closes the dialog, and
doesn't abort any changes which have already been made as a result
of running the algorithm through the dialog.
```
File "/home/mkuhn/.local/share/QGIS/QGIS3/profiles/default/python/plugins/autocurve/plugin.py", line 127, in curvify
AlgorithmExecutor.execute_in_place(alg, {})
File "/usr/share/qgis/python/plugins/processing/gui/AlgorithmExecutor.py", line 305, in execute_in_place
ok, results = execute_in_place_run(alg, parameters, context=context, feedback=feedback)
File "/usr/share/qgis/python/plugins/processing/gui/AlgorithmExecutor.py", line 214, in execute_in_place_run
results, ok = {'__count': current + 1}, True
UnboundLocalError: local variable 'current' referenced before assignment
```
add an explicit log level getter/setter to QgsProcessingContext which
algorithms can use to determine an appropriate level of feedback
to push to users.
Initially the verbose log only triggers the full verbose output
of model executions (which is also used when running models through
the model designer), but the intention is that more algorithms
will fine tune their output based on the logging level.
qgis_process also gains a new --verbose switch to enable verbose
log output.