This is a subclass of QgsProcessingParameterNumber, but specifically
for numeric parameters which represent distances. It is linked
to a parent parameter, from which the distance unit will
be determined, and is shown using a dedicated distance widget
within the processing parameters panel. This widget shows
the distance unit.
This avoids the confusion when running algorithms which
use distances where the unit depends on a layer or CRS parameter -
e.g. the distance parameter in the buffer algorithm gives
the distance in layer units... so now we can show those units
directly within the dialog. Hopefully this leads to less
user confusion and accidental "1000 degree buffers"!
Additionally - if the unit is in degrees, a small warning
icon is shown next to the parameter. The tooltip for this
icon advises users to reproject data into a suitable
projected local coordinate system.
Initially implemented for the native buffer and single
sided buffer algorithm only - but more will be added.
Fixes#16290
This allows creation of models with child algorithms which do
things like merge a selected layer with a predefined static
layer, or create a vrt with a mix of static and user selected
layers.
And selecting/deselecting only these items. Otherwise it can be quite
cumbersome to manually select complex sets of items (e.g. try needing
to select ~50% of the layers in a large project - there's currently
no quick way to do this.) With this change you can at least
ctrl/shift click to create selections quicker.
parameters which accept lists of multiple layers
E.g. build vrt alg, merge vector layers alg
Otherwise you may need to load 100's of layers temporarily into
a project to perform algs on them