62 Commits

Author SHA1 Message Date
Bas Couwenberg
371176357b Fix spelling errors.
* cancelation -> cancellation
 * overal      -> overall
2019-02-24 22:39:40 +01:00
Víctor Olaya
13bff9620c [processing] do not allow using unsupported file formats
Show warning message if user selects incompatible output file format

fixes #21089
2019-02-23 05:24:56 +10:00
Nyall Dawson
cdc622ef4c Freackin Amurican sppelling 2019-02-23 05:23:23 +10:00
Nyall Dawson
e31fb920e7 [processing] Add API to allow custom expression variables to be set
for a model
2019-02-23 05:23:23 +10:00
Nyall Dawson
979adbbabf Indicate exception types to sip
Exposes the full Python exception when an error occurs in createInstance()
2019-02-20 13:05:09 +10:00
Nyall Dawson
7418c189d0 [processing] Also generate friendly names for outputs when converting models to scripts 2019-02-14 15:36:55 +10:00
Nyall Dawson
d342ce939b [processing] When converting models to Python, use friendlier (more
descriptive) names when storing child algorithm results

Makes for much easier to understand scripts
2019-02-14 15:36:55 +10:00
Nyall Dawson
493aed58fb API tweak 2019-02-13 07:59:30 +10:00
Nyall Dawson
9b2e60130f [processing] Update QgsProcessingModelAlgorithm::asPythonCode for 3.x API 2019-02-01 17:54:28 +11:00
Nyall Dawson
fb519ead46 Update QgsProcessingModelChildAlgorithm::asPythonCode for 3.x API 2019-02-01 17:54:28 +11:00
Nyall Dawson
946687c87b Update QgsProcessingModelChildParameterSource::asPythonCode 2019-02-01 17:54:28 +11:00
Nyall Dawson
37774f9aa9 [processing] Add util to convert QVariant value to Python literal 2019-02-01 17:54:28 +11: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
d4b262cdb0 Add method to convert QgsProcessing::SourceType to string representation 2019-01-29 18:15:40 +11:00
Nyall Dawson
431861a468 [processing] Add a better API for specifying that outputs are temporary
Instead of requiring clients to generate temporary file names themselves,
(or use the cryptic "memory:" string!), this PR adds a static constant

    QgsProcessing.TEMPORARY_OUTPUT

If a layer/sink output parameter is set to QgsProcessing.TEMPORARY_OUTPUT,
then the temporary output filename will be generated automatically at
algorithm run time. This means callers don't need to mess around with
finding appropriate temporary folders and paths.

Another benefit is that TEMPORARY_OUTPUT is stored in the processing
history, so if you re-run a previous algorithm which was set to
output to a temporary file, it no longer tries to use that same
previous temporary path and instead generates a new one.
2019-01-25 23:27:08 +11:00
Nyall Dawson
3cb6a40ef2 [processing] Add API to get an import statement and classname for a parameter type 2019-01-25 18:12:11 +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
4bca7838bf [processing] Add method for providers to specify a different list
of supported output formats when an output has no geometry
2018-12-03 18:11:24 +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
c55b4eb4c8
Make sip a bit happier 2018-10-31 12:15:43 +01:00
Matthias Kuhn
87c126323c
Regenerate fids for "multipart to singlepart algorithm" 2018-10-31 10:27:56 +01: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
Harrissou Sant-anna
0816a29962 Fix typo in generated file 2018-10-13 12:30:52 +10:00
Nyall Dawson
d26f25cf94 Deprecate unused QgsProcessingAlgorithm::helpString method 2018-09-26 04:26:49 +10:00
Nyall Dawson
95d68e9172 [processing] Default to hiding help button for algorithms
And require that showing help is opt-in. Apart from a handful
of built-in providers, most providers will not have help pages
available within the QGIS documentation (including model and
script algorithms). Accordingly, we should hide the help button
by default and only show it for these selected providers.

Note that 3rd party algorithms can still specify custom helpUrl
urls, in which case the button WILL be shown.
2018-09-26 04:26:49 +10:00
Nyall Dawson
e2082a0935 [processing] Fix modeler help/description generation, allow setting
of model short description text

Fixes #18767
2018-09-26 04:26:49 +10:00
Nyall Dawson
4b24552097 Change QgsProcessingAlgorithm::supportInPlaceEdit to use QgsMapLayer, not QgsVectorLayer
Because at some stage in the future we may allow in-place edits to raster layers,
and we don't want to have to break API for this.
2018-09-21 18:15:46 +10:00
Nyall Dawson
17326541cd [processing] Add method to attempt to reattach model children to linked algorithms
Refs #19857
2018-09-19 05:04:09 +10:00
Alessandro Pasotti
0380c06003 Add prepareSource method 2018-09-14 18:23:03 +10:00
Alessandro Pasotti
4549ee5fff In-place moved check logic into QgsAlgorithm
+ new tests
+ fixed fixer function
+ drop z/m
2018-09-14 18:23:03 +10:00
Alessandro Pasotti
f35e37613b Expose processFeature to public API 2018-09-14 18:23:03 +10:00
Nyall Dawson
681d44f11f Messy mockup of feature 2018-09-14 18:23:03 +10:00
Denis Rouzaud
4b7da692d6 run sipify all 2018-09-10 11:41:57 -04:00
Nyall Dawson
a717b85e2e [FEATURE][processing] New modeler parameter widget
A new widget which handles parameter values for child algorithms
within a model. Instead of the previous approach of requiring
individual widget wrappers to handle creation of a suitable
model widget, we do all this automatically for them.

This widget uses a stacked widget with a toolbutton to select
the parameter's source, instead of the previous combo box approach
(which didn't scale well for large models). I.e. users select
first whether the value is taken from a static value, a
model input, or an output from a different child algorithm. The
widget then changes appearance and behavior based on this
choice.

Additionally, a new option is present for all parameters
of using a "precalculated expression". This expression is
evaluated once before the child algorithm is executed
and used during the execution of that algorithm.
2018-09-04 19:06:07 +10:00
nirvn
48b18d4c6c [processing] add parameterAsInts function 2018-09-04 10:07:07 +07:00
nirvn
13ecaa4190 [needs-docs][processing] Add a multiple selection mode to the band parameter 2018-09-04 10:07:07 +07:00
Nyall Dawson
4930061b21 [processing] Fix incorrect OGR warnings when loading raster layer results
Fixes #19597
2018-08-16 06:37:18 +10:00
Nyall Dawson
bef88f30df Minor processing parameter evaluation refactoring 2018-08-14 18:56:14 +10:00
Nyall Dawson
1fea03fec7 [processing] Make model to/from variant methods public 2018-08-01 07:32:52 +10:00
Matthias Kuhn
d7b85c69f8
Merge pull request #7016 from m-kuhn/featureSourceEmpty
QgsFeatureSource::empty() method
2018-06-26 13:01:08 +02:00
Matthias Kuhn
1b15e68f64
Add minimal smartness for QgsProcessingFeatureSource::hasFeatures 2018-06-22 14:41:42 +02:00
Nyall Dawson
a4c8386e88 [sipify] Replace std::numeric_limits with old style DBL_MAX/etc 2018-06-17 09:24:37 +10:00
Nyall Dawson
ac17d300ca DBL_MAX -> std::numeric_limits 2018-06-17 09:24:37 +10:00
Nyall Dawson
e91aed6617 [processing] Force model outputs to respect constraints set by
their underlying algorithm's provider

E.g. for model outputs generated by a saga algorithm, only
sdat and shp files are valid outputs. So only give users choices
of these instead of all formats.

Also fixes temporary file names generated as part of model
execution may use formats which are not compatible with the
algorithm's provider.

Fixes #18908
2018-06-05 10:05:32 +10:00
Nyall Dawson
f6416a1990 [processing] Fix missing vector inputs when run in batch mode
Fix incorrect definition of compatibleVectorLayers, which was
using layer WKB type values instead of processing source types.
2018-06-01 15:55:11 +10:00