# 1: Replaced time-consuming call on all attributes by a more specific request - responsible for about 90% of running time in my tests.
# 2: Minor speedup by calling items() before the for loop (1s in a large layer).
The previous name is unclear, as the option can expand as well
as crop the raster extent. We also don't refer anywhere else in this
dialog to the cutline, so that has no meaning to users
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
..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).
- Based colours and sizes on mAlgorithmDelaunay.svg
- Renamed from mAlgorithmKNearestConcaveHull.svg to mAlgorithmConcaveHull.svg to be more general
- Applied to ConcaveHull.py also to indicate similarity between algorithms
This block was swallowing all exceptions within the voronoi method.
Removing the block causes exceptions throw in the method to propagate up
the stack and eventually become visible in log files.