124 Commits

Author SHA1 Message Date
Alexander Bruy
0181d10080 [feature][processing] data types support for map layer parameter.
Allow to define accepted layer types for map layer parameters, for
example vector points and rasters.
2020-03-14 08:51:02 +02:00
Denis Rouzaud
14b80de7ed
fix crash when a sink parameter definition is missing in a processing alg (#34978) 2020-03-14 01:03:13 +01:00
Denis Rouzaud
3ccc3b815a
add missing QgsProcessingAlgorithm::parameterAsDateTime (#35003) 2020-03-12 09:49:37 +01:00
Nyall Dawson
95ec307399 Fix see also links 2020-03-10 19:10:52 +10:00
Nyall Dawson
4f66115b9c [feature][processing] Add dedicated parameter type for database connections
Allows selection from the registered database connections for a specific
database provider type (the provider must implement the connections API)
2020-03-10 19:10:52 +10:00
Nyall Dawson
2a1bf56493 [FEATURE][processing] Remember parameter values between model designer runs
When designing a model, users typically will need to run the model
many times as they tweak its structure.

This change causes the parameters used when running the model from
the designer to be remembered and saved into the model, so that
each time you run the model from the designer you don't have to
re-set all the input parameter values to the desired test ones.

Makes iterative model design SO much easier!

Sponsored by Alta Ehf
2020-03-06 18:22:49 +10:00
Nyall Dawson
64868ce8f2 Bit more Python to c++ porting 2020-03-06 03:49:16 +10:00
Nyall Dawson
13fc85d740 [FEATURE][processsing] Add support for comments attached to components
This allows users to create comments attached to model components (inputs,
algorithms or outputs). Comments are shown linked to the associated component,
and can be freely moved around the model.
2020-03-06 03:49:16 +10:00
Nyall Dawson
616504be59 Add missing parameter dependancies for QgsProcessingParameterCoordinateOperation 2020-03-05 18:55:20 +10:00
Nyall Dawson
d6d1b858c9 Metatype 2020-03-05 18:55:20 +10:00
Nyall Dawson
873ad5f734 Clone should be const 2020-03-05 18:55:20 +10:00
Nyall Dawson
d8111e1025 Make link point collapsing handling more generic 2020-03-03 16:08:23 +10:00
Nyall Dawson
55a582d068 Make size a property of QgsProcessingModelComponent
API only for now, cannot be set by users
2020-03-02 18:53:31 +10:00
Nyall Dawson
d9cc2aedeb Add clone method to QgsProcessingModelComponent 2020-03-02 18:53:31 +10:00
Nyall Dawson
3921af8d51 Add missing cast for QgsProcessingParameterDateTime 2020-02-25 12:43:05 +10:00
Nyall Dawson
0efc6f531c [FEATURE][processing] New parameter type for datetime (or date, or time) values
Adds a new parameter type QgsProcessingParameterDateTime for handling
date/datetime/time values
2020-02-24 17:23:41 +10:00
Nyall Dawson
5f533e561c [FEATURE][processing] Add algorithms for raising warnings and exceptions from models
These algorithms raise either a custom warning in the processing log, OR raise
an exception which causes the model execution to terminate.

An optional condition expression can be specified to control whether or not
the warning/exception is raised, allowing logic like "if the output layer from
another algorithm contains more then 10 features, then abort the model execution"

Sponsored by Fisel + König
2020-02-22 06:47:17 +10:00
Nyall Dawson
05c3186324 Fix outdated reference to GeoAlgorithmExecutionException in dox 2020-02-05 12:54:45 +10:00
Nyall Dawson
54629b8f21 [FEATURE][processing][API] New parameter type QgsProcessingParameterMapTheme
Allows for selection from existing map themes
2020-01-05 20:50:05 +10:00
Nyall Dawson
1c4d691ad2 Dox++ 2020-01-04 23:06:03 +10:00
Nyall Dawson
1a74938ba8 [processing] Add option for multiple field parameters to default to
selecting all available fields

For some algorithms this is better UX then defaulting to an empty list
2020-01-04 23:06:03 +10:00
Nyall Dawson
3e9aaaa6ea Move variant to CRS resolution out to QgsProcessingUtils for wider
usability
2019-12-21 05:07:39 +10:00
Nyall Dawson
fe622dd24a [API][processing] New parameter type for coordinate operations
Allows selection of the proj coordinate operation to use when
reprojecting between two CRSes
2019-12-21 05:07:39 +10:00
Nyall Dawson
61454c67cd [processing] Add api to allow providers to report warnings which should
be shown to users when using that provider

This can be used to return a translated warning message which should be
shown to users of this provider. It's intended for use in cases such as
a provider which relies on a 3rd-party backend, where the version of the
backend software is not officially supported, or for alerting users to
providers in a "beta" or "untrustworthy" state.
2019-12-06 17:35:41 +10:00
Denis Rouzaud
456384e4b3 use QgsProcessingParameters::parameterAsBool
rather than re-implementing QVariant conversion in QgsClassificationMethod
2019-12-05 09:50:16 +01:00
Nyall Dawson
6ef3746bfb [processing] Fix exceptions when reporting errors during batch execution
Fixes #33105
2019-11-29 11:16:09 +10:00
Nyall Dawson
0b3b7123b9 [processing] Port "Count points in polygon" algorithm to c++ 2019-11-26 13:45:08 +10:00
Nyall Dawson
fe32fdfe40 Add API to QgsFeatureSource to determine whether a spatial index
exists on the source (or not, or unknown presence)
2019-11-17 04:54:41 +10:00
Nyall Dawson
6b82917715 [processing] Refine behavior of "Use filename as layer name" option to
always avoid using temporary file names, and then set this option as
enabled by default.

Also change the setting key so that existing users will also get the new
default value.

Fixes #32591
2019-11-09 20:07:55 +10:00
Denis Rouzaud
758d7cff4a run sipify to update deprecation annotations 2019-10-15 13:17:38 +02:00
Nyall Dawson
651c507180 [processing] Extend api for retrieving a layer in a compatible format
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.
2019-09-26 09:27:46 +10:00
Nyall Dawson
b9e223d802 Add methods to QgsProcessingContext to return the preferred vector and raster formats
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.
2019-09-24 16:50:22 +10:00
Nyall Dawson
cfcf580b61 [processing][needs-docs] Resurrect setting for default raster/vector
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.
2019-09-24 16:50:22 +10:00
Nyall Dawson
d4ce50c2b1 [processing] Add API support for algorithm aliases
Allows us to freely move algorithms between providers without
breaking existing scripts
2019-09-24 16:48:39 +10:00
Alexander Bruy
5709f84b2f [processing] add createByDefault argument to directory output
constructor
2019-07-15 08:51:01 +10:00
Nyall Dawson
e65acadc3a [processing][API] Add methods to retrieve lists of files from
QgsProcessingParameterMultipleInput

These need to be handled differently to map layers, and none of
the existing API works for this use case.
2019-07-09 11:22:36 +10:00
Nyall Dawson
e9a1eab694 [processsing][API] Add api to allow QgsProcessingParameterFile parameters
to have a file filter string defined

Previously only an extension was settable, which prevented use when
multiple extension types are possible. A file filter string allows
for flexible file selection instead.
2019-07-08 15:07:42 +10:00
Nyall Dawson
d96c7386b1 Allow creation of color parameters with no opacity control 2019-07-01 06:32:21 +10:00
Nyall Dawson
38bb5fb260 [FEATURE][processing] New parameter type for colors
Allows for algorithms which require a color value as an input
2019-07-01 06:32:21 +10:00
Mathieu Pellerin
a888986567
[needs-docs][processing] Avoid field collision via optional prefix in overlay algorithms (#10092)
Makes for a more predictable collision avoidance, which
can be neccessary for some models.
2019-05-24 19:00:28 +07:00
rldhont
943c7d5d90 [Processing] Define boolean output
In processing, if an algorithm has a boolean as an output, it cannot be defined as boolean but as a number.

To be more precise in algorithms description, the commit add QgsProcessingOutputBoolean.
2019-05-17 08:21:57 +10:00
Matthias Kuhn
8416e7588c
Merge pull request #9781 from m-kuhn/processing_parameter_as_boolean
Add QgsProcessingAlgorithm::parameterAsBoolean
2019-04-17 09:20:07 +02:00
Alessandro Pasotti
394a189682 Fix class documentation 2019-04-17 10:06:41 +10:00
Nyall Dawson
b6bc1ee2d4 Tweak QgsProcessingUtils::combineLayerExtents for future proofing, remove deprecated usage 2019-04-17 10:06:41 +10:00
Alessandro Pasotti
f8dfdc4aa0 Deprecate method without transformContext 2019-04-17 10:06:41 +10:00
Matthias Kuhn
4771f802fc
Add QgsProcessingParameters::parameterAsBoolean for consistency 2019-04-15 14:08:41 +02:00
Matthias Kuhn
d0e24e8bc4
Add QgsProcessingAlgorithm::parameterAsBoolean
For consistency

Alias to QgsProcessingAlgorithm::parameterAsBool(), because the parameter class is called
QgsProcessingParameterBoolean
2019-04-12 21:26:09 +02:00
Nyall Dawson
933559b655 [processing] Report provider version string alongside QGIS version in log
Helpful for debugging and reproducability of results
2019-04-08 16:59:15 +10:00
Nyall Dawson
708bf4425b [processing] Add version method to QgsProcessingProvider
Allows retrieving provider version
2019-04-08 16:59:15 +10:00
Nyall Dawson
d3016d73d4 [processing] Add method to specify additional expression context variables
which will be available to a parameter when it is evaluated.

Specifying variables via this method is for metadata purposes only.
It is the algorithm's responsibility to correctly set the value of
these additional variables in all expression context used when evaluating
the parameter, in whichever way is appropriate for that particular variable.
2019-04-08 07:07:12 +10:00