Adds an optimised c++ method for generating random points inside
a polygon geometry, using a tessellation based approach to
avoid the inefficiencies of the brute force filtered-random-points-within-extent
approach.
Speeds up project read time when these aren't needed, and also potentially
avoids issues caused by non-thread-safety in layouts (since some items rely
on classes which can only be used in the main thread e.g. QWebPage)
The UI for this setting was sitting under the page properties panel,
which led users to believe it was a per-page setting (rather than
applying to ALL pages in the layout).
Instead, move this property to sit within individual layout item pages
so that the behavior matches what the UI suggests.
Fixes#25695
Fixes#32023 Raster calculator change sign does not work when OpenCL is on
Fixes#32025 QGIS Raster Calculator outputs nodata only rasters
Bonus: three new operators with full test coverage
- ABS
- MIN
- MAX
A few releases ago a bug fix was implemented which forced conversions
of multi-layer sources. This was a valid bug fix, but the consequence
was that any algorithm using this api with a source file containing
multiple layers (e.g. gpkg) performed a complete copy of the target
layer to a new file, severely impacting performance.
This commit adds new API to retrieve a compatible layer path in the
case when an algorithm CAN correctly handle specific target layer names.
In this case, the forced copy of the source layer is avoided when
using multi-layer inputs like geopackage.
in QgsConditionalStyle
Otherwise we can't differentiate a "not set" value from a "set but
transparent" value. And this use case is exactly why invalid QColor
states exist.
These methods return a file extension to use when creating vector/raster outputs (e.g. "tif"). Generally,
it is preferable to use the extension associated with a particular parameter, which can be retrieved through
QgsProcessingDestinationParameter::defaultFileExtension(). However, in some cases, a specific parameter
may not be available to call this method on (e.g. for an algorithm which has only an output folder parameter
and which creates multiple output layers in that folder). In this case, the format returned by this
function should be used when creating these outputs.
It is the algorithm's responsibility to check whether the returned format is acceptable for the algorithm,
and to provide an appropriate fallback when the returned format is not usable.
output format
This setting is still used and required in some circumstances, e.g.
it is used as the default selection in outputs file pickers when
the previously used format is not valid.