If the active layer is not editable, the executor will
try to switch editing on.
If there are no selected features, the executor will
select all features before running.
Remove a bunch of manual "max" values for numeric parameters
where the maximum just represents a 'large number' and not a real
constraint, and let the default parameter max value handling kick in instead.
In the case of random selection the max value exceeded the possible
range for integers in spin boxes and broke the widget.
Fixes#20015
selection parameter button, instead of requiring opening the
'select layer/canvas extent' and choosing 'canvas extent'
It's only one extra click, but I don't think there's any reason
against saving this click!
We need to still create the parameter wrappers when in in-place mode
for the input/output parameters, as some other wrappers may rely
on these for various interactions (e.g. getting the crs/fields
from the input layer)
Fixes#19990
..and make progress bar more accurate.
Use a spatial index to avoid comparing every feature to every other
feature, and only compare against features with intersecting bounding
boxes instead. Also optimise feature requests and loop logic.
Benchmarks:
Point layer, 6000k features
Before: 30 seconds
After: 0.15 seconds
Point layer, 45k features
Before: > 10 minutes
After: 7 seconds
Fixes#19973
And require that showing help is opt-in. Apart from a handful
of built-in providers, most providers will not have help pages
available within the QGIS documentation (including model and
script algorithms). Accordingly, we should hide the help button
by default and only show it for these selected providers.
Note that 3rd party algorithms can still specify custom helpUrl
urls, in which case the button WILL be shown.
Also:
Thanks to @agiudiceandrea:
Fixes#19900
Statistics were erroneously computed on the dissolve field, rather than on the statistic attribute field as it should be.
Fixes#19307
Handle filenames with white spaces (in the same way as Buffer, OffsetCurve, OneSideBuffer, PintsAlongLines algs).
processing options are changed
Make sure the algorithm dialogs use their own copy of algorithms,
instead of the copies owned by the processing registry. Opening
processing options triggers a full reload of providers, deleting
all existing algorithm instances from the registry first.
data defined buttons for model child algorithms
The context was not previously exposed, so users would not have
been aware that they can utilise all the variables and functions
available to parameters within child algorithms.
the original layer's feature
Otherwise python processFeature implementations may return a
modified shallow copy of this feature, which means that the
test for modifications fails, since we're comparing against
the same feature which was modified.
Fixes some python algorithms do not modify features when used
in-place mode.