16 Commits

Author SHA1 Message Date
Nyall Dawson
cccf974211 [processing] Port enum widget wrapper to new API
Fixes:
- enum parameters set to "allow multiple" only allow a single
value selection when used in modeler
- optional enum parameters cannot be set to no value when
used outside of modeler

Fixes #20406
2019-03-08 15:46:59 +10:00
Nyall Dawson
2729af65c3 [processing] Port expression widget wrapper to new API
Fixes confusing expression parameter definitions in modeler
child algorithms (there's no direction as to what the
widget should be) and ensures that the correct expression
context is revealed to the widget when in all modes.
2019-02-12 07:18:02 +10:00
Nyall Dawson
061882d9f7 [processing] Port file widget wrapper to new c++ API 2019-02-09 06:23:47 +10:00
Nyall Dawson
eeff02fc14 [processing] Port matrix widget wrapper to newer c++ API
Allows matrix parameters to be correctly set for model child algorithms

Fixes #20914
2019-02-05 16:57:21 +11: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
1ec365445b [processing] Port Range parameter widget to new API
Fixes use of range parameters inside models, allowing range
inputs to be used for range parameter values.

Fixes #19785
2018-09-22 05:26:29 +10:00
Nyall Dawson
33eb295b1e Distance parameter unit tests 2018-09-22 05:26:29 +10:00
Nyall Dawson
11667683b4 Distance 2018-09-22 05:26:29 +10:00
Nyall Dawson
c406ec3be2 Start on numeric wrapper 2018-09-22 05:26:29 +10:00
Nyall Dawson
f83b3ecc84 Show helper text in expression builder for CRS values in modeler 2018-09-06 18:11:24 +10:00
Nyall Dawson
06d37fced4 [processing] Port CRS widget wrapper to c++ classes 2018-09-06 18:11:24 +10:00
Nyall Dawson
f79d86edab [processing] Port string widget wrapper to new c++ class 2018-09-05 13:14:50 +10:00
Nyall Dawson
918be1f2a9 Fix some warnings 2018-09-04 19:06:07 +10:00
Nyall Dawson
70c1680754 Automatically handle adding data defined button for dynamic properties
Also exposes this capability to modeler - so that model algorithms
can use data defined parameters within their child algorithms.

TODO:
- tests
- setting the associated vector layer
2018-09-04 19:06:07 +10: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
Nyall Dawson
644ef6a752 [processing] Initial work on porting base GUI classes to c++
- Add abstract base class for Processing widget wrappers to c++
- Add wrapper factory interface to c++
- Make QgsProcessingGuiRegistry also register widget wrapper
factories, and be responsible for creation of new c++
processing widget wrapper instances
- Start on private c++ implementation of boolean widget wrapper,
including unit tests
2018-09-04 19:06:07 +10:00