59 Commits

Author SHA1 Message Date
Nyall Dawson
0d7773a0ee [processing] Allow setting the optional remapping definition for QgsProcessingOutputLayerDefinition
Provides a (currently non-functional) API for specifying optional remapping parameters
for vector outputs.
2020-04-07 17:05:44 +10:00
Nyall Dawson
a7610c5682 Give up on enum class
Python says no.
2020-04-02 19:20:40 +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
1915a16bf3 Port extent parameter to new c++ API widget wrapper 2020-03-25 19:25:40 +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
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
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
616504be59 Add missing parameter dependancies for QgsProcessingParameterCoordinateOperation 2020-03-05 18:55:20 +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
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
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
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
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
Matthias Kuhn
4771f802fc
Add QgsProcessingParameters::parameterAsBoolean for consistency 2019-04-15 14:08:41 +02: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
Harrissou Sant-anna
f998ec9bb4 Remove duplicate word 2019-03-22 12:44:27 +10:00
Nyall Dawson
719a225bca [processing] Port point widget wrapper to new API
And switch to a snapping canvas tool when selecting points from canvas
2019-03-17 16:19:40 +10:00
Nyall Dawson
32fbf0a92b [processing][FEATURE] New parameter type for map scales
This adds a new parameter type specifically for map scales,
QgsProcessingParameterScale. The values are evaluated using
self.parameterAsDouble, which returns the map scale
denominator (matching the standard in other parts of the
QGIS API).

Scale parameters are displayed to users using the standard
QgsScaleWidget, which includes the combo box of predefined
scales and a shortcut button to match the current map scale.
2019-03-13 16:52:29 +10:00
Nyall Dawson
0003e91f27 Add methods to resolve parameters to layouts/layout items 2019-03-12 08:16:52 +10:00
Nyall Dawson
ba82954ac5 [processing] Add new parameter type for layout item objects 2019-03-12 08:16:52 +10:00
Nyall Dawson
dd49720863 [processing] Add new parameter type for print layout names 2019-03-12 08:16:52 +10:00
Nyall Dawson
107b48a430 Add NULLPTR macro for use in doxygen comments
For the c++ api dox this expands to "\c nullptr" (the
\c directive indicates a code literal value), and for sipify/Python
it expands to ``None`` (`` is sphinx annotation for literal values)

Makes for nicer dox for both c++ and Python!
2019-02-27 09:41:11 +10:00
Nyall Dawson
b6d66becab Sipify 2019-02-27 09:41:11 +10:00
Nyall Dawson
ffa49df9fb Fix misleading dox 2019-02-01 17:54:28 +11:00
Nyall Dawson
63b6a77702 [processing] Add API to convert a parameter definition to an equivalent
Python constructor string
2019-01-29 18:15:40 +11:00
Nyall Dawson
5acd7ffaef [processing] Add API to set default unit to distance parameters
Otherwise the API forces use of a corresponding CRS parameter in
order to determine the relevant distance unit, but this is not
always desirable
2018-12-18 04:39:06 +10:00
Peter Petrik
e71660215c [processing] add QgsProcessingParameterMeshLayer parameter 2018-12-17 11:50:53 +01:00
Nyall Dawson
11ea28a5b3 [FEATURE][processing] Add a new parameter type for authentication config
This adds a new available parameter type for processing algorithms,
QgsProcessingParameterAuthConfig, allowing selection from available
authentication configurations (and creation of new ones).

It allows creation of processing algorithm which can fully take
advantage of QGIS' mature authentication handling, avoiding the
need to use insecure string parameters for users to input
sensitive logon credentials.

QgsProcessingParameterAuthConfig parameters are evaluated using
QgsProcessingAlgorithm.parameterAsString(), which returns the
selected authentication configuration ID.
2018-12-15 08:23:10 +10:00
Nyall Dawson
d72c4d001f [processing] Allow parameter metadata to set the number of decimal places
to show in numeric/distance widgets

E.g. to only show 2 decimal places:

  # only show two decimal places in parameter's widgets, not 6:
  param.setMetadata( {'widget_wrapper':
    { 'decimals': 2 }
  })
2018-11-30 05:02:59 +10:00
Matthias Kuhn
a4d4c55c82
Parameter name harmonization 2018-10-31 10:27:55 +01:00
Matthias Kuhn
50cf8b9e4e
Unify parameter names 2018-10-31 10:27:54 +01:00
Matthias Kuhn
229c617785
Ignore FID field when merging vector layers to geopackage 2018-10-31 10:27:54 +01:00