37 Commits

Author SHA1 Message Date
Nyall Dawson
132294b3c9 Spelling 2021-12-16 11:15:34 +10:00
Nyall Dawson
86794dabdc Fix interface for QgsProcessingParametersGenerator was modified for
the python subclasses only and no longer correctly overrides the
base class method
2021-12-16 11:15:34 +10:00
Juergen E. Fischer
c6008b7ee1 fix MSVC build: reverts fee62e4, dff05dd and e3a77b9484c effectivly
reverting 3fb0f66 (followup #45348)

Using --no-public-is-protected (default on Windows) also works on Linux
and fixes #45331 too
2021-10-21 23:03:48 +02:00
nirvn
ef84e48a09 Run sipify_all.sh 2021-10-12 16:34:05 +10:00
Denis Rouzaud
ec16736306 run sipify 2021-10-12 16:34:05 +10:00
Nyall Dawson
615b63e76d [processing] When configurating a field calculator algorithm in a model,
ensure that the correct expression context is set for the widget

Otherwise we don't see any of the available variables ready for
use in the calculation.

We need to do this manually after creating the widget, because the
context generator isn't set till after the widget is created, and
this particular widget configuration doesn't fetch the expression
context on demand.
2021-04-02 06:30:27 +10:00
Denis Rouzaud
ba8a445850 run sipify 2021-03-22 21:13:52 +01:00
Alessandro Pasotti
7b2fc4c1f8 More doxy nonsense, pt 2 2021-02-19 08:15:29 +10:00
Nyall Dawson
50b9beaad6 [sipify] Catch more class references and insert :py:class: annotations 2021-01-31 05:41:22 +10:00
Nyall Dawson
1219f55378 [processing] Fix and improve how in place algorithm parameter widget
handles the input layer by creating a new QgsProcessingHiddenWidgetWrapper
wrapper subclass

Fixes #37424
2020-07-10 04:44:30 +10:00
Nyall Dawson
81a9db9f57 [sipify] Fix creation of cross references 2020-06-15 13:43:58 +10:00
Nyall Dawson
f0bb647c61 [processing] Add a stable way to get processing widgets to stretch vertically 2020-06-02 08:43:54 +10:00
Nyall Dawson
a80bdc47e5 [processing] Add API and interfaces so that widget wrappers can retrieve the
current set of parameters for other parameters when required
2020-04-04 17:58:55 +10:00
Nyall Dawson
c98cd8d1a8 Partial port of destination wrappers to c++ API 2020-04-02 02:29:54 +10:00
Nyall Dawson
ef4344b674 Default to current layer when appropriate 2020-03-29 05:56:23 +10:00
Nyall Dawson
d40990e155 [feature][processing] Port Feature Source, Raster, Vector and Mesh Layer parameters to new API 2020-03-29 05:56:23 +10:00
Nyall Dawson
517aa9667b [processing] Port DestinationSelectionPanel to c++
This is basically a 1:1 port (+some fixes relating to incorrect signal
emissions and many more tests)
2020-03-17 07:24:40 +10:00
Nyall Dawson
70ee385f4a [processing] Add message bar to widget context 2020-01-05 08:59:38 +10:00
Nyall Dawson
164f6aec6b Spelling 2019-07-01 17:01:34 +10:00
Nyall Dawson
10d6a8a122 [processing][API] Add API to QgsProcessingGuiRegistry and QgsProcessingParameterWidgetFactoryInterface
to handle creation of parameter definition widgets

Previously, these configuration widgets were all hardcoded into the Python modeler
dialog. This prevented 3rd party, plugin provided, parameters from ever being full
first class citizens in QGIS, as there was no way to allow their use as inputs to
user created models to be customised.

Now, the registry is responsible for creating the configuration widget, allowing
for 3rd party parameter types to provide their own customised configuration
widgets.

Refs #26493
2019-07-01 17:01:34 +10:00
Nyall Dawson
719a225bca [processing] Port point widget wrapper to new API
And switch to a snapping canvas tool when selecting points from canvas
2019-03-17 16:19:40 +10:00
Nyall Dawson
5ec43cfdc1 [processing] Add project to QgsProcessingParameterWidgetContext 2019-03-12 08:16:52 +10:00
Nyall Dawson
107b48a430 Add NULLPTR macro for use in doxygen comments
For the c++ api dox this expands to "\c nullptr" (the
\c directive indicates a code literal value), and for sipify/Python
it expands to ``None`` (`` is sphinx annotation for literal values)

Makes for nicer dox for both c++ and Python!
2019-02-27 09:41:11 +10:00
Nyall Dawson
24529b1963 [processing] Add API to set contexts for QgsProcessingAlgorithmConfigurationWidgets 2019-02-20 05:39:04 +10:00
Nyall Dawson
9a75976ca4 API tweaks 2019-02-12 07:18:02 +10:00
Nyall Dawson
eb24bdb484 Dox 2018-09-22 05:26:29 +10:00
Nyall Dawson
4a0a48fe47 [processing] Also expose complete expression context inside
data defined buttons for model child algorithms

The context was not previously exposed, so users would not have
been aware that they can utilise all the variables and functions
available to parameters within child algorithms.
2018-09-22 05:26:29 +10:00
Nyall Dawson
55e22b9de9 Allow setting the context for widget wrappers
The context contains settings which reflect the context ini
which a Processing parameter widget is shown, e.g., the
parent model algorithm, a linked map canvas, and other relevant
information which allows the widget to fine-tune its behavior.
2018-09-22 05:26:29 +10:00
Nyall Dawson
11667683b4 Distance 2018-09-22 05:26:29 +10:00
Nyall Dawson
6935027ead [processing] Fix API break in widget wrapper
Fixes #19820
2018-09-13 05:40:39 +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
d563034583 Address review comments 2018-09-04 19:06:07 +10:00
Nyall Dawson
e76b761dd0 Correctly associate layer with dynamic properties 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