146 Commits

Author SHA1 Message Date
Nyall Dawson
f31af07235 Fix windows build 2020-04-01 18:20:09 +10:00
Nyall Dawson
4fa9083cf6 [FEATURE][processing] Allow creation of group boxes in models
These are a visual guide, allowing designers to create logical groups
of algorithms relating to a single task ("eg 'Prepare data')

The title and color of the group boxes can be customized
2020-04-01 18:20:09 +10:00
Nyall Dawson
a7a64d40e0 Add API for storing group boxes in processing models 2020-04-01 18:20:09 +10:00
Nyall Dawson
e788be93fa [processing][FEATURE] Add api for setting model component colors, and expose
the option to set manual colors for individual model comments
2020-04-01 18:20:09 +10:00
Nyall Dawson
60af337c3c [processing][FEATURE] Add "Save Log to File" algorithm for models
This algorithm saves the contents of the execution log (right up to
the point in the model at which the 'save log' algorithm executes)
to a file.

It can be used to automatically store the debugging log when running
models for later reference and transparency.
2020-03-31 19:35:28 +10:00
Nyall Dawson
0684d41fe1 Make QgsProcessingFeedback remember logged messages for later recall 2020-03-31 19:35:28 +10:00
Nyall Dawson
e386573c0c [FEATURE][processing] Port multi-layer input parameter widget to new API
Allows
- expression based inputs
- rearrangement of inputs for multi-layer parameters in models, to set
specific layer orders
2020-03-31 01:06:48 +10:00
Nyall Dawson
c85f62a968 Make more use of layer type hints to avoid trying to open raster/mesh
layers using the ogr provider
2020-03-31 01:06:48 +10:00
Nyall Dawson
320fecce00 [processing] Add method to encode and decode a combined provider key and uri
to a single string

We need this to allow processing inputs to load non gdal/ogr/mdal sources, such
as being able to directly read postgis layers without loading them into a project first
2020-03-26 11:55:45 +10:00
Nyall Dawson
1915a16bf3 Port extent parameter to new c++ API widget wrapper 2020-03-25 19:25:40 +10:00
Nyall Dawson
488c8c739a Fix loss of callback when invalid geometry handling method is set through
source definition
2020-03-25 09:42:17 +10:00
Nyall Dawson
afbe727c1a Allow serialization of QgsProcessingFeatureSourceDefinition through QgsXmlUtils 2020-03-25 09:42:17 +10:00
Nyall Dawson
6e2c21eb55 [processing] Cleanup handling of "iterate over source" buttons, move
creation completely to widget wrapper
2020-03-25 09:42:17 +10:00
Nyall Dawson
28467f2ad0 Sipify 2020-03-24 10:53:50 +10:00
Nyall Dawson
b0474d7fd3 [processing] Hookup backend API allowing features sources to be
limited to a specific maximum number of features, and allowing
per-source overriding of the default "invalid geometry" handling behavior
2020-03-24 10:53:50 +10:00
Nyall Dawson
dee6f3f30d Add flag to allow a child algorithm's results to prune back the remaining model branches
When an algorithm returns this flag, and after executing it in a model it doesn't set a
certain output which remaining model algorithms depend on, then these branches are
pruned back and don't get executed for the model run.

Allows for creation of algorithms which impact the overall model flow.
2020-03-18 02:52:37 +10:00
Nyall Dawson
517aa9667b [processing] Port DestinationSelectionPanel to c++
This is basically a 1:1 port (+some fixes relating to incorrect signal
emissions and many more tests)
2020-03-17 07:24:40 +10:00
Nyall Dawson
edd0635fe3 [processing] Move responsiblity for creation of file filter strings from python to c++ 2020-03-16 10:08:46 +10:00
Alexander Bruy
47070a7d7b
Merge pull request #35076 from alexbruy/maplayer-datatype
Data type support for QgsProcessingParameterMapLayer
2020-03-15 16:14:20 +02:00
Nyall Dawson
7b1975ba83 Optionally allow entry of new table names in table name parameter 2020-03-14 16:57:14 +10:00
Nyall Dawson
513966ca80 [feature][processing] Add dedicated parameter type for database tables
Allows selection of an existing database table for a specific
database provider connection (the provider must implement the connections API)
2020-03-14 16:57:14 +10:00
Nyall Dawson
93c917f7b6 [feature][processing] Add dedicated parameter type for database schemas
Allows selection from the existing database schema for a specific
database provider connection (the provider must implement the connections API)
2020-03-14 16:57:14 +10:00
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