168 Commits

Author SHA1 Message Date
Nyall Dawson
6a4d9c9bd4 [processing] Ensure feature source wrapper always returns direct
layer id/source whenever 'use selected features' is unchecked,
instead of always returning a QgsProcessingFeatureSourceDefinition
2018-07-25 08:20:07 +10:00
Nyall Dawson
c65afbdd97 [processing] Correctly handle layer type parameter values when
creating an algorithm dialog using processing.execAlgorithmDialog()
2018-07-19 07:22:06 +10:00
Salvatore Larosa
f993ec05be Fixes #19417 - AttributeError: 'BatchInputSelectionPanel' object has no attribute 'getText' 2018-07-16 09:00:10 +10:00
Rudi von Staden
57fb4ef27c Add 'not selected' option for optional layer parameters in processing model view
Fixes #19329 (https://issues.qgis.org/issues/19329)

Optional layer parameters in processing algorithms used in the graphical modeler
add an empty string as the default parameter value, which can raise an exception
during algorithm execution. This update replaces the default empty string with a
default 'Not selected' option.
2018-07-04 13:45:46 +02:00
Nyall Dawson
950d042e72 [processing] Fix errors when filling parameters in batch panel
Fixes #18408
2018-06-01 15:55:11 +10:00
Nyall Dawson
c5ff6b9c99 [processing] Ensure parameters linked to layer parameters
(e.g. field choices) are correctly updated when a layer
is selected which doesn't belong to the project
2018-05-22 06:03:18 +10:00
Blottiere Paul
42199d1ad0 [processing] Declare NOT_SELECTED 2018-05-21 19:06:27 +10:00
Blottiere Paul
dcc79fcfbf [processing] Fix invalid attribute's name 2018-05-21 19:06:27 +10:00
Nyall Dawson
6b5e5b6ed5 [processing] Fix models cannot correctly set enum parameters
to a static choice
2018-05-21 16:07:14 +10:00
Alexander Bruy
c985092a6d fix typo 2018-05-14 18:47:14 +03:00
Alexander Bruy
1ba34dcbea [processing] add matrix and enum parameters to wrappers and handle them
in the modeler dialogs
2018-05-11 15:49:06 +10:00
Nyall Dawson
c68262da7f [processing] Correctly set default value for matrix parameters
Fixes #18871
2018-05-02 04:55:41 +10:00
Nyall Dawson
0dfb3c2d8c [processing] Use distance parameter for more algorithms 2018-04-20 18:27:00 +10:00
Nyall Dawson
6a2625664e [processing] Add dedicated "distance" parameter
This is a subclass of QgsProcessingParameterNumber, but specifically
for numeric parameters which represent distances. It is linked
to a parent parameter, from which the distance unit will
be determined, and is shown using a dedicated distance widget
within the processing parameters panel. This widget shows
the distance unit.

This avoids the confusion when running algorithms which
use distances where the unit depends on a layer or CRS parameter -
e.g. the distance parameter in the buffer algorithm gives
the distance in layer units... so now we can show those units
directly within the dialog. Hopefully this leads to less
user confusion and accidental "1000 degree buffers"!

Additionally - if the unit is in degrees, a small warning
icon is shown next to the parameter. The tooltip for this
icon advises users to reproject data into a suitable
projected local coordinate system.

Initially implemented for the native buffer and single
sided buffer algorithm only - but more will be added.

Fixes #16290
2018-04-20 18:27:00 +10:00
Rashad Kanavath
3408e02c46 [processing] create and manage label in WidgetWrapper
ModelerParametersDialog and ParametersPanel have to keep list of
wrappers only. widget and label( if needed) are created through
WidgetWrapper.createLabel()
2018-04-03 06:09:44 +10:00
Nyall Dawson
f06b3691c5 More spelling fixes 2018-03-12 14:32:17 +11:00
Nyall Dawson
4e182be4ec [processing] Fix 'selected features' checkbox is incorrectly disabled
Fixes #18278
2018-03-01 15:29:06 +10:00
Nyall Dawson
835cca7cae [processing] More string HIG fixes 2018-02-22 06:44:17 +11:00
nirvn
6573eb30e7 [processing] small fix in the MultipleLayerWidgetWrapper wrapper 2018-02-21 12:00:32 +07:00
Nyall Dawson
fdebddd13a [processing] Fix raster layers shown as inputs for certain vector algs
Fixes #18148, #18149
2018-02-20 10:03:27 +11:00
nirvn
4aef3b719f [processing] fix python error with OSM vector layers 2018-02-15 15:56:53 +07:00
Nyall Dawson
46dc2f6e5b [processing] Avoid losing static, user-entered parameter values
in model child algorithms

Prior to this change if you edited an algorithm in a model and
tried to enter a preset string for certain parameter types, this
string would get silently discarded on closing the dialog. E.g.
with a dissolve algorithm it was not possible to have a fixed
field name within the model to dissolve by.

This was caused by WidgetWrapper.comboValue  returning the customData
for these manually entered values in the parameters combo box,
yet manually entered values never have custom data.

To work around this we only return the custom data if its
set for the selected item - otherwise we return the text unchanged.
In order to handle the "[not set]" options, a new static custom
data value of WidgetWrapper.NOT_SET_OPTION is added to that
comboValue can detect this and return the appropriate None value.
2018-02-15 17:45:19 +11:00
Nyall Dawson
414c3a4bfe Fix unavailable layer inputs for multi-layer inputs set to any map layer type 2018-02-11 11:00:49 +10: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
23a5dd3197 [processing] fix file permissions 2018-02-06 19:25:48 +02:00
Salvatore Larosa
ebb725ec04 [processing] create widget correctly from wrapper when in batch mode 2018-01-28 22:11:51 +01:00
Salvatore Larosa
550c74e106 [processing] fix wrong getter 2018-01-28 21:31:18 +01:00
Salvatore Larosa
f4f89bbcbe [processing] resurrects matrix parameter 2018-01-25 21:54:22 +01:00
Nyall Dawson
2013725793 Fix gui handling of NULL/None default values in processing script algorithms 2018-01-24 17:54:47 +11:00
Nyall Dawson
e7e37efed7
Merge pull request #5926 from nyalldawson/proc_dialog
[processing] Add api to show algorithm dialog, use dialog for history
2017-12-27 22:34:13 +11:00
Mathieu Pellerin
3b8905209e
[processing] harmonize and improve UI spacing 2017-12-27 10:50:52 +07:00
Nyall Dawson
595b9812ce [processing] Implement a todo (set layer param's wrapper values) 2017-12-21 10:04:54 +10:00
Nyall Dawson
bbf00279ad [processing] Don't sort field names in multi-field input dialog
Field names should always be listed in the order that the layer
defines them
2017-12-15 08:58:54 +11:00
volaya
ea49c8276c [processing] Set value of unused optional layer parameters to None instead of empty string 2017-12-13 14:39:12 +01:00
Nyall Dawson
901dae1110 [processing] Expose data defined button for dynamic numeric parameters
When running algorithms through the toolbox, which have dynamic
numeric parameters, add a data defined property override button
next to the widget so that users can set the overrides for these
parameters.

Previously this was available only in the backend, but not
exposed anywhere in the GUI.

Note that currently no algorithms support dynamic parameters,
so don't expect to see this everywhere. It's also only available
in toolbox/batch processing modes, not in models.
2017-12-02 11:17:18 +10:00
Nyall Dawson
8303b94685 [processing] Fix optional layer parameters are filled by default
Refs #17471

Not a full fix for 17471 - that requires handling of optional
numeric values too
2017-12-01 20:42:38 +11:00
Alexander Bruy
d65c036781 [processing] remove old params from wrappers 2017-11-28 12:27:45 +02:00
Alexander Bruy
3d4a59bb8b [processing] cleanup files from unused code and remove some files 2017-11-28 12:27:45 +02:00
Nyall Dawson
bb63a83e04 Add missing output from package algorithm 2017-11-27 06:38:21 +11: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
Nyall Dawson
7451422069 Fix package layers algorithm can't take the outputs from models
Fixes #17544
2017-11-26 12:01:41 +10:00
Mathieu Pellerin
97f749e6b4
[processing] fix error when adding refactor fields alg in empty model
(fixes #17421)
2017-11-24 18:04:50 +07:00
Nyall Dawson
612f51601a [processing] Remove expression buttons from parameters outside modeler
Since these expressions were only evaluated immediately, it led to
confusing behavior for users who were expecting that the expression
would be applied per-feature.

Given that expressions can be directly entered into spin boxes, we already
have a way of users evaluating simple calculations for numeric
parameters at least.

I don't think there's a strong enough use case for needing to
calculate string results to leave the confusing expression builder
option in place.

This should be re-evaluated when we add UI support for dynamic
parameters (which are already supported in the backend), where
expressions are evaluated per-feature.

Fixes #17267
2017-11-10 10:42:25 +10:00
Médéric RIBREUX
d10aaf4bd4 Support multiple output file raster formats:
* A new createopt textbox has been added to the parameters dialog for algorithms which exports to raster files.
* A new metaopt textbox has also been added to the Algorithm parameters dialog.
* Raster file format is detected from output filename extension.
* GdalUtils has been improved to correctly detect raster formats supported for creation.
* QFileDialog for output rasters now display only file filters for supported output raster file formats.
2017-11-05 13:18:24 +01: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
Etienne Trimaille
386eef2e6c new string concatenation algorithm in processing 2017-10-25 08:17:59 +11:00
Nyall Dawson
5b1afd86bc "Loosen" up acceptable parameter for model child inputs
Previously we took a harsher approach to filtering which inputs
were acceptable for child algorithm parameters. E.g. a child algorithm
with a vector layer input would only show outputs from other algorithms
which generated a vector layer output.

But this can needlessly restrict what's possible in models. E.g.
an algorithm which outputs a QgsProcessingOutputFile or
QgsProcessingOutputString could potentially be a valid source
to a vector layer. So we should allow these as possible
inputs for vector layer parameters too.

This commit adds many extra acceptable input types for
child parameters. It will probably expose "corner cases" where
algorithms may get unexpected input types, but these will
not affect existing model stability and can be fixed when
identified.

The payoff is a much more flexible modeler.
2017-10-17 08:55:27 +10:00
Nyall Dawson
b39459b8ff Matching default multiple fields should also be case-insensitive 2017-09-22 12:02:48 +10:00
Nyall Dawson
c5b9fa23cd Formatting 2017-09-22 10:56:32 +10:00
Nyall Dawson
94530a9efc Allow setting default value for field parameters in models 2017-09-22 10:50:46 +10:00