Aside from the performance benefits, the Python version of this
algorithm occasionally fails on Travis with odd errors. Hopefully
by porting to c++ it will fix these, or at least give useful
debug information in the event of a fail.
Also add support for curved input geometries.
Used for new-style Qt connects to overloaded signals,
avoiding the usual horrible connect syntax required in
these circumstances.
Example usage:
connect( mSpinBox, qgis::overload< int >::of( &QSpinBox::valueChanged ),
this, &MyClass::mySlot );
This is an alternative to qOverload, which was implemented in Qt 5.7.
See https://stackoverflow.com/a/16795664/1861260
- Output interpolated points when travel cost falls mid-way along
an edge
- Output all intermediate reachable points also
- Make outputting upper/lower bound points optional, and non-default.
Now by default we just output all definitely reachable points and
the interpolated points along edges which correspond to the travel cost.
This allows the output to be used to correctly generate service areas
e.g. by concave/convex polygons and all reachable nodes will be
included in the area.
- Allow algorithm to optionally output a line layer (and make the
point layer optional too, and default to just the line layer output)
containing all reachable line segments (including interpolated
segments of lines when the travel cost sits midway along that
edge). This output is more easily understandably for users.
Type "bored" into the coordinates box (best results with a map loaded in canvas)
Click on tiles to move them to the empty space.
Click on the empty tile to toggle tile numbers.
Returns a copy of the geometry with the x and y coordinates
swapped. Useful for repairing geometries which have had their
latitude and longitude values reversed.
This algorithm swaps the X and Y coordinate values in input
geometries. It can be used to repair geometries which have
accidentally had their latitude and longitude values reversed.
create expression context scopes
Allows algorithms which require the underlying layer scope
to operate correctly when running in selected features only
mode.
Fixes#17170
in a feature-based algorithm, don't try to continue processing
remaining features
Avoids multiple error dialogs appearing for every feature
in a layer...
Because Python code cannot catch and rethrow c++ exceptions
without losing context, we end up getting unknown exceptions
caught by c++ from python code (phew!).
So if we catch a python exception from processing, throw it
into the log so at least there's the full debugging detail
available on the console.
(Not ideal. Would love to see a PR allowing the full error
message to be passed correctly between c++/python/back again)
values/default value clauses present, then use these as the
initial value for the merged feature
Otherwise the dialog defaulted to skipping these attributes
or taking a value from an existing feature, which meant
that it could violate constraints on the backend.
Users can still easily overwrite these values if desired.
Fixes#18397
This was originally done to allow the table to show mapped values
such as value maps/relations. But it creates the false impression
that these values are editable, since the editor widgets are
not read only.
Instead, use the field formatter to create a value representation
string and make the body of the table read-only instead.
Allows algorithms to pre-processes a set of parameters, allowing the
algorithm to clean their values.
This method is automatically called after users enter parameters, e.g.
via the algorithm dialog. This method should NOT be called manually
by algorithms.