Also exposes this capability to modeler - so that model algorithms
can use data defined parameters within their child algorithms.
TODO:
- tests
- setting the associated vector layer
A new widget which handles parameter values for child algorithms
within a model. Instead of the previous approach of requiring
individual widget wrappers to handle creation of a suitable
model widget, we do all this automatically for them.
This widget uses a stacked widget with a toolbutton to select
the parameter's source, instead of the previous combo box approach
(which didn't scale well for large models). I.e. users select
first whether the value is taken from a static value, a
model input, or an output from a different child algorithm. The
widget then changes appearance and behavior based on this
choice.
Additionally, a new option is present for all parameters
of using a "precalculated expression". This expression is
evaluated once before the child algorithm is executed
and used during the execution of that algorithm.
- Add abstract base class for Processing widget wrappers to c++
- Add wrapper factory interface to c++
- Make QgsProcessingGuiRegistry also register widget wrapper
factories, and be responsible for creation of new c++
processing widget wrapper instances
- Start on private c++ implementation of boolean widget wrapper,
including unit tests
Renames the existing algorithms for clarity and consistency
to the format 'Export to PostgreSQL...'. Add tags so that they
still show when searching for the old names, and add descriptions
to make their use more obvious from the toolbox.
Fixes#19658
and reports counts of matched/unmatched features
This gives an explicit warning to users when features were not matched,
and optionally allows them to save non-matching features to a layer.
Because:
- Exactly follows curves and doesn't require segmentizing input geometry
- Also interpolates z/m values if they are present in input geometry
- Is faster
This algorithm returns the portion of a line (or curve) which falls
between the specified start and end distances (measured from the
beginning of the line).
Z and M values are linearly interpolated from existing values.
Algorithm appears to freeze without progress while `extent_engine.intersects(geom.constGet())` returns false.
This keeps the progress bar continuous and smooth, even if the feature ends up not being added.
(noticed this because the algo hangs for 2 mins while processing a large dataset which I think is outside the extent somehow. None of the points going in. No apparent progress.)