82 Commits

Author SHA1 Message Date
Nyall Dawson
ec44e60308 [processing] Allow encoding crs into text definitions of points 2017-09-24 12:46:32 +10:00
Nyall Dawson
e1eef7ed19 Allow use of QgsPointXY/QgsReferencedPointXY for point parameter values 2017-09-24 12:09:38 +10:00
Alexander Bruy
f60d8885c9 [processing] more fixes for tests creation 2017-09-24 07:49:55 +10:00
Nyall Dawson
92e481e7c3 Fix creation of SAGA tests 2017-09-24 07:48:46 +10:00
Nyall Dawson
dd441f6154 [processing] A non-optional multiple enum parameter must have at
least one choice selected to be valid
2017-09-16 09:59:13 +10:00
Nyall Dawson
9b112284c7 Add method to recover extent parameter CRS 2017-09-15 14:09:27 +10:00
Nyall Dawson
cfdc3c71e7 Use geometry of reproject extent parameters for more accurate clipping 2017-09-15 08:35:42 +10:00
Nyall Dawson
74565e22de Nicer display of rectangle parameter values 2017-09-15 08:34:13 +10:00
Nyall Dawson
ae8bc04b6c Allow use of Qgs(Referenced)Rectangle for processing extent parameter values
And add a new target CRS argument to parameterAsExtent. If set, and
the source CRS of the rectangle parameter can be determined, then
the returned value will be the rectangle automatically reprojected
to the desired target CRS.
2017-09-15 08:33:45 +10:00
Nyall Dawson
b468ab3ee5 Simplify boolean expressions
By applying clang-tidy readability-simplify-boolean-expr fixit
2017-09-11 17:11:50 +10:00
Nyall Dawson
2612c39578 [processing] A non optional, multiple field input must have at least
one selected field to be considered valid
2017-09-08 09:10:17 +10:00
Nyall Dawson
ce4ac074cd Don't use .lower() to perform case-insensitive string operations
Use the faster versions with Qt::CaseInsensitive instead. These
don't require a string copy and conversion to lowercase.

Thanks to Clazy
2017-08-29 18:04:30 +10:00
Nyall Dawson
4b009f96ec Use std::round instead of qRound
Now that our minimum VS studio version allowed supports std::round,
we should use that in place of Qt's qRound method.

Because:
- it doesn't truncate to int, resulting in unpredictable
behaviour (refs #16925)
- better to stick to standard c++ methods wherever possible,
since they're likely better supported and optimised by the
compilers
- it's a tiny reduction to the barrier for entry to QGIS
development (I'm sick of pointing out the need to use
qRound during PR reviews!)
2017-08-25 02:35:27 +10:00
Nyall Dawson
cb70aad7a3 Fix restricting model algorithm input types to valid types for alg (refs #17030) 2017-08-23 17:34:08 +10:00
Nyall Dawson
d2a90f40e3 Fix conversion of direct vector layer parameters to python strings 2017-08-20 18:21:02 +10:00
Nyall Dawson
ebda2fd212 Rename some enum values for clarity 2017-08-19 02:46:22 +10:00
Nyall Dawson
7879c0a20b Fix processing rendering styles for output dialog, functionality 2017-08-19 00:47:21 +10:00
Nyall Dawson
37b899fb99 Add a pure virtual clone method to processing parameter definitions
And use it when we need to clone parameters (instead of more fragile
conversion to and from variants)

This fixes model loading which use algorithms which create python
subclasses of parameter definitions
2017-08-18 01:22:07 +10:00
Nyall Dawson
c54667c3b1 Handle mixed lists of values and lists when evaluating multilayer
parameters

This can happen when running models with mixed input types
for multilayer parameters
2017-08-17 05:00:47 +10:00
Nyall Dawson
e1b0f78619 Fix default layer sometimes inserted into multi layer parameter values 2017-08-17 04:38:36 +10:00
Nyall Dawson
479106ad80 An empty string parameter should not fallback to default value
Since we need to allow empty strings to override defaults in
some circumstances
2017-08-14 04:56:24 +10:00
Nyall Dawson
5177972806 Improve conversion of processing parameters to Python code
- Use layer paths instead of layer ids where possible, since they are persistent
- Don't wrap in QgsProcessingFeatureSourceDefinition/QgsProcessingOutputLayerDefinition
if we can avoid it
2017-08-13 16:56:58 +10:00
Mario Baranzini
558b8d3395 Protect processing parameters from segfault 2017-08-06 21:40:12 +02:00
Alexander Bruy
9fe326dee2 [processing] more consistent naming for class members, setters and
getters
2017-08-04 13:21:26 +03:00
Alexander Bruy
49bfe69823 [processing] add parameter representing raster band 2017-08-04 11:27:35 +03:00
Nyall Dawson
f7b25a17b1 Allow setting layer type filter for QgsProcessingParameterVectorLayer
Turns out this is required for some algorithms
2017-07-27 14:30:04 +10:00
Nyall Dawson
1342f4d9ac Add API to set optional destination parameters as not created by default
This allows optional outputs (such as null geometry features detected
by the Remove Null Geometries algorithm) to be skipped by default
when desirable.
2017-07-16 18:19:24 +10:00
Nyall Dawson
b7ae44fb30 Move method to evaluate a variant to a feature source to QgsProcessingUtils 2017-07-13 20:51:47 +10:00
Nyall Dawson
f49b603443 Split QgsProcessingModelAlgorithm into separate components
The cpp/h file was getting too large, so split off the individual
subcomponents into their own h/cpp files to keep code
maintainable.
2017-07-08 20:49:17 +10:00
Nyall Dawson
9d04f87249 Rename "output" style parameters for clarity
The previous naming was too easily confused with processing outputs.
Rename them to QgsProcessingParameterFileDestination, etc... to
make it clearer what they are used for.
2017-07-08 20:49:17 +10:00
Nyall Dawson
f82b41e001 Move an enum to new QgsProcessing class 2017-07-08 20:49:17 +10:00
Nyall Dawson
febf0a0e6e Rename method to more generic name - it's usable by vector layer outputs too 2017-07-08 20:49:17 +10:00
Nyall Dawson
9e184feaed Add method to evaluate parameters to compatible vector layers
of a specified type
2017-07-08 20:49:17 +10:00
Nyall Dawson
d8086e549d Use c++ method for available sources 2017-07-07 11:35:31 +10:00
Nyall Dawson
bdaba00a01 Fix incorrect layer names used when loading result layers from models 2017-07-03 17:08:52 +10:00
Nyall Dawson
a259d9fff1 Fix silly logic error identified by Coverity 2017-07-03 12:22:59 +10:00
Nyall Dawson
6483984d0b Add method to retrieve dependent parameters for a parameter 2017-07-03 10:45:15 +10:00
Nyall Dawson
d2b9652d4b Fix use of direct map layers as inputs for source parameters 2017-06-29 08:00:47 +10:00
Nyall Dawson
aeecda3707 Fix crash when no options are selected in a multiple-enum parameter 2017-06-27 21:27:59 +10:00
Nyall Dawson
46b4f2468c Allow storing multiple status in field script code 2017-06-27 08:33:13 +10:00
Nyall Dawson
d16f117b6c Port conversion to/from script code to c++ 2017-06-27 08:33:13 +10:00
Nyall Dawson
178a415c9f Port parameter conversion to script code to c++ 2017-06-27 08:33:13 +10:00
Nyall Dawson
3fb1b4809d Export QgsProcessingFeatureSource to Python 2017-06-26 12:44:26 +10:00
Nyall Dawson
76a9844949 Add folder output type 2017-06-22 18:21:33 +10:00
Nyall Dawson
f304828f59 Allow storing arbitrary metadata in parameter definitions 2017-06-22 18:18:51 +10:00
Nyall Dawson
1d69939dde Fix build 2017-06-22 06:58:31 +10:00
Nyall Dawson
780f4331cc Add method to generate temporary destination parameter value 2017-06-22 06:49:09 +10:00
Nyall Dawson
e8a03b918b Move default file extension code to c++ 2017-06-22 06:48:25 +10:00
Nyall Dawson
b1879df34b Destination parameters track whether they support non-file based outputs 2017-06-22 06:48:19 +10:00
Nyall Dawson
47f2cc895c Fix generation of outputs for models 2017-06-22 06:47:11 +10:00