456 Commits

Author SHA1 Message Date
Alexander Bruy
a9441218c1 [processing] fix parameters IDs (follow up #6535) 2018-03-08 11:10:20 +02:00
Matthias Kuhn
a337d2050b Make use of new processing parameter infrastructure 2018-03-07 09:00:33 +11:00
Matthias Kuhn
1fd74234b4 Add processing parameter type definitions 2018-03-07 09:00:33 +11:00
Matthias Kuhn
b67813bdc9 API doc update 2018-03-01 10:42:51 -05:00
Matthias Kuhn
0c730596fa Hide unsupported parameters in modeller 2018-03-01 10:42:51 -05:00
Matthias Kuhn
a0cda52269 Remove outdated comment block 2018-03-01 09:49:50 -05:00
Matthias Kuhn
eba96fb9cc Add a processing parameter registry
to manage parameter metadata in a single place.
2018-03-01 08:12:41 -05:00
arnaud.morvan@camptocamp.com
3718d4e65b [processing] Properly load basic providers
Processing module should only register it's own basic providers.
Note that when reloading a plugin, subclasses of ProcessingProvider remains and new ones are added,
so in such cases QgsProcessingProvider.__subclasses__() return same provider class many times.
2018-02-21 21:42:43 +00:00
nirvn
e5d7733bfc [processing] harmonize order of result panel (latest first) and add timestamp 2018-02-12 13:51:31 +07:00
Alexander Bruy
178509347a [processing] add enums support for fields and feature source parameters
(follow up 068d74d5)
2018-02-11 14:05:09 +02:00
Nyall Dawson
4bcc9df5b4 [processing] Add explicit output type for multiple layers
This was a missing capability in the processing API - while algorithms
could declare multiple layer input parameters, there was no corresponding
multi-layer output. This meant that algorithms (such as Package Layers,
Vector Split) which create a set of layers which cannot be determined
in advance had no way to pass these generated layers on for further model
processing steps.

It's also useful for algorithms which operate on a specified folder,
processing all layers found there, and allowing these generated
outputs to be utilised in other model steps (e.g. packaging
all of them, merging them, etc)
2018-02-11 10:57:44 +10:00
Alexander Bruy
068d74d51a [processing] allow enums values to be used in description files 2018-02-08 17:22:20 +02:00
Alexander Bruy
4f2a4644db [processing] remove obsolete code and disable exporting models as script
until we update it so support new scripts format
2018-02-05 08:50:44 +02:00
Alexander Bruy
422d804db1 [processing] update script provider to use QgsProcessingAlgorithm
subclasses instead of custom script code
2018-02-05 08:49:59 +02:00
Nyall Dawson
216821c0b1 [processing] Warn on duplicate output and provider registration
And fix associated memory leaks
2018-02-01 13:02:59 +11:00
Alexander Bruy
e67aaf9a26 [processing] rename QGISAlgorithmProvider to QgisAlgorithmProvider to be
consistent with our guidelines
2018-01-15 11:59:01 +02:00
Alexander Bruy
7ecb0536fd [processing] correctly retrieve icon for script collection (fix #17780) 2018-01-15 11:59:01 +02:00
Alexander Bruy
3f55bba535 [processing] don't close algorithm dialog after execution 2018-01-11 11:55:08 +02:00
Médéric RIBREUX
5b86407338 Fix parameters and support empty default values for Enums 2017-12-16 11:12:12 +01:00
Nyall Dawson
252f0802b1 Follow up 647bd25 2017-12-16 13:54:26 +10:00
Nyall Dawson
647bd256b1 [processing] Use a more unique separator for log file
Fixes #17704
2017-12-16 11:59:11 +10:00
volaya
1648c79dc2 [processing] fixed parsing of integer parameters 2017-12-13 14:39:11 +01:00
Alexander Bruy
79d83f2066 [processing] use core methods for raster and vector extensions handling 2017-12-11 09:38:14 +02:00
Nyall Dawson
db855029de Fix not-set defaults for numeric parameters were converted to 0 2017-12-01 20:42:38 +11:00
Alexander Bruy
3d4a59bb8b [processing] cleanup files from unused code and remove some files 2017-11-28 12:27:45 +02:00
Alexander Bruy
0059b2b692 [processing] remove Python 2 compatibility layer 2017-11-28 12:27:45 +02:00
Nyall Dawson
4b9986eb8c [processing] Add a generic map layer output type
For occasions when an algorithm creates a map layer, but the type
is not known in advance (i.e. could be raster OR vector)
2017-11-27 06:38:21 +11:00
Alexander Bruy
bd0b499810 add misssed import after rebase 2017-11-09 20:15:30 +02:00
Alexander Bruy
4b63975eaf [processing] tests for SAGA provider and related fixes 2017-11-09 18:56:44 +02:00
Nyall Dawson
d9ac3772fd Update SAGA ParameterTable parameters 2017-11-09 18:56:01 +02:00
Nyall Dawson
571a5ca5f8 Start bringing back saga algs - split RGB bands 2017-11-09 18:53:02 +02:00
Médéric RIBREUX
aa17df1a55 * Add new GRASS 7.2 algorithms.
* Fix ParameterRange GUI.
* Fix Multiple values Enum support.
2017-11-04 18:34:25 +01:00
Médéric RIBREUX
74826dc1ea Support directory output via QgsProcessingParameterFolderDestination 2017-11-04 15:31:21 +01:00
Médéric RIBREUX
4b8b6a09c8 Massive conversion 2017-11-04 15:31:21 +01:00
Médéric Ribreux
56b963e313 Improve ext scripts and support OutputFolder 2017-11-04 15:31:21 +01:00
Médéric Ribreux
f0da7b0186 Improve MultiLayers and FileDestination support 2017-11-04 15:31:21 +01:00
Médéric Ribreux
9eff16f431 Finish fixing description files (no more errors on startup) 2017-11-04 15:31:21 +01:00
Médéric Ribreux
be78153427 (WIP) Grass algorithms can be opened and inputs are treated 2017-11-04 15:31:21 +01:00
Médéric RIBREUX
a676db2c0f Handle parameters and update description files (WIP) 2017-11-04 15:31:21 +01:00
Médéric Ribreux
733218caca (WIP) enable Grass7 provider and start to work on QgsProcessing new framework 2017-11-04 15:31:21 +01:00
Alexander Bruy
c53ff66caf fix permissions 2017-10-11 17:06:11 +03:00
arnaud.morvan@camptocamp.com
534fe21f51 [processing] Add useCheckBoxes option to SelectionWidgetWrapper
This allow to show checkboxes or radioboxes intead of line edit with button.
This is configurable for each algorithm thought ParameterSelection metadata parameter.
It is also possible to choose the number of columns.
This is not applied in case of the BatchDialog.
2017-09-16 09:57:13 +10:00
Nyall Dawson
5c888c5830 Resurrect gdal warp algorithm 2017-08-14 04:56:24 +10:00
Nyall Dawson
f802c56573 Merge pull request #4996 from nyalldawson/spelling_and_stuff
Fix some spelling, add parameter names to tooltips in processing
2017-08-07 19:11:26 +10:00
Mario Baranzini
78af413dcc Remove python future compatibility layer 2017-08-07 10:27:15 +02:00
Nyall Dawson
7cebe7a343 Fix some grammar 2017-08-07 17:45:33 +10:00
Alexander Bruy
56208540f9 [processing] remove GeoAlgorithmExecutionException 2017-07-13 09:02:24 +03:00
Nyall Dawson
1e13d733c2 Move declaration of algorithm parameters/outputs to a new virtual
initAlgorithm() method

This allows 2 benefits:
- algorithms can be subclassed and have subclasses add additional
parameters/outputs to the algorithm. With the previous approach
of declaring parameters/outputs in the constructor, it's not
possible to call virtual methods to add additional parameters/
outputs (since you can't call virtual methods from a constructor).

- initAlgorithm takes a variant map argument, allowing the algorithm
to dynamically adjust its declared parameters and outputs according
to this configuration map. This potentially allows model algorithms which
can be configured to have variable numbers of parameters and
outputs at run time. E.g. a "router" algorithm which directs
features to one of any number of output sinks depending on some
user configured criteria.
2017-07-10 16:31:14 +10:00
Nyall Dawson
82ef7d2a89 Create specific expression context scope for child algorithms
Contains variables for model parameters, algorithm results for
other child algorithms which are not dependent on the
algorithm.

Allows removal of final pieces of ModelerAlgorithm code
2017-07-07 11:35:31 +10:00
Nyall Dawson
55ce31b371 When calling procesing.run(), map layer results are automatically
converted to QgsMapLayer objects with the ownership transferred
to the Python caller

This should make it super-easy for PyQGIS scripts to run processing
algorithms and immediately utilise the results, even if they
are memory layers. They call processing.run(), and get a dict of
results back which includes those layers ready for adding to the
current project or doing some other processing or operations
with, and if they don't transfer to ownership off then these
layers will be correctly garbaged collected by Python.
2017-07-07 09:28:20 +10:00