QGIS/python/gui/auto_generated/processing/qgsprocessingguiregistry.sip.in
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

164 lines
6.3 KiB
Plaintext

/************************************************************************
* This file has been generated automatically from *
* *
* src/gui/processing/qgsprocessingguiregistry.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
class QgsProcessingGuiRegistry
{
%Docstring
The QgsProcessingGuiRegistry is a home for widgets for processing
configuration widgets.
QgsProcessingGuiRegistry is not usually directly created, but rather accessed through
:py:func:`QgsGui.processingGuiRegistry()`
.. versionadded:: 3.2
%End
%TypeHeaderCode
#include "qgsprocessingguiregistry.h"
%End
public:
QgsProcessingGuiRegistry();
%Docstring
Constructor. Should never be called manually, is already
created by :py:class:`QgsGui`.
%End
~QgsProcessingGuiRegistry();
void addAlgorithmConfigurationWidgetFactory( QgsProcessingAlgorithmConfigurationWidgetFactory *factory /Transfer/ );
%Docstring
Add a new configuration widget factory for customized algorithm configuration
widgets. Ownership is taken.
.. versionadded:: 3.2
%End
void removeAlgorithmConfigurationWidgetFactory( QgsProcessingAlgorithmConfigurationWidgetFactory *factory );
%Docstring
Remove a configuration widget factory for customized algorithm configuration
widgets.
.. versionadded:: 3.2
%End
QgsProcessingAlgorithmConfigurationWidget *algorithmConfigurationWidget( const QgsProcessingAlgorithm *algorithm ) const;
%Docstring
Gets the configuration widget for an ``algorithm``. This widget will be shown
next to parameter widgets. Most algorithms do not have a configuration widget
and in this case, ``None`` will be returned.
.. versionadded:: 3.2
%End
bool addParameterWidgetFactory( QgsProcessingParameterWidgetFactoryInterface *factory /Transfer/ );
%Docstring
Adds a parameter widget ``factory`` to the registry, allowing widget creation for parameters of the matching
type via createParameterWidgetWrapper() and createModelerParameterWidget().
Ownership of ``factory`` is transferred to the registry.
Returns ``True`` if the factory was successfully added, or ``False`` if the factory could not be added. Each
factory must return a unique value for QgsProcessingParameterWidgetFactoryInterface.parameterType(),
and attempting to add a new factory with a duplicate type will result in failure.
.. seealso:: :py:func:`removeParameterWidgetFactory`
.. seealso:: :py:func:`createParameterWidgetWrapper`
.. seealso:: :py:func:`createModelerParameterWidget`
.. versionadded:: 3.4
%End
void removeParameterWidgetFactory( QgsProcessingParameterWidgetFactoryInterface *factory );
%Docstring
Removes a parameter widget ``factory`` from the registry. The factory will be deleted.
.. seealso:: :py:func:`addParameterWidgetFactory`
.. versionadded:: 3.4
%End
QgsAbstractProcessingParameterWidgetWrapper *createParameterWidgetWrapper( const QgsProcessingParameterDefinition *parameter, QgsProcessingGui::WidgetType type ) /Factory/;
%Docstring
Creates a new parameter widget wrapper for the given ``parameter``. The ``type`` argument
dictates the type of dialog the wrapper should be created for. The caller takes ownership
of the returned wrapper.
If no factory is registered which handles the given ``parameter``, ``None`` will be returned.
.. seealso:: :py:func:`createModelerParameterWidget`
.. seealso:: :py:func:`addParameterWidgetFactory`
.. versionadded:: 3.4
%End
QgsProcessingModelerParameterWidget *createModelerParameterWidget( QgsProcessingModelAlgorithm *model,
const QString &childId,
const QgsProcessingParameterDefinition *parameter, QgsProcessingContext &context ) /Factory/;
%Docstring
Creates a new modeler parameter widget for the given ``parameter``. This widget allows
configuration of the parameter's value when used inside a Processing ``model``.
The ID of the child algorithm within the model must be specified via the ``childId``
argument. This value corresponds to the :py:func:`QgsProcessingModelChildAlgorithm.childId()`
string, which uniquely identifies which child algorithm the parameter is associated
with inside the given ``model``.
The caller takes ownership of the returned widget. If no factory is registered which
handles the given ``parameter``, ``None`` will be returned.
.. seealso:: :py:func:`createParameterWidgetWrapper`
.. seealso:: :py:func:`addParameterWidgetFactory`
.. versionadded:: 3.4
%End
QgsProcessingAbstractParameterDefinitionWidget *createParameterDefinitionWidget( const QString &type,
QgsProcessingContext &context,
const QgsProcessingParameterWidgetContext &widgetContext,
const QgsProcessingParameterDefinition *definition = 0,
const QgsProcessingAlgorithm *algorithm = 0 ) /Factory/;
%Docstring
Creates a new parameter definition widget allowing for configuration of an instance of
a specific parameter ``type``.
The ``context`` argument must specify a Processing context, which will be used
by the widget to evaluate existing ``definition`` properties such as default values. Similarly,
the ``widgetContext`` argument specifies the wider GUI context in which the widget
will be used.
The optional ``definition`` argument may specify an existing parameter definition which
will be reflected in the initial state of the returned widget. If ``definition`` is ``None``,
then the returned widget will use default settings instead.
Additionally, the optional ``algorithm`` parameter may be used to specify the algorithm or model
associated with the parameter.
If ``None`` is returned for a particular parameter ``type``,
it indicates that the parameter type cannot be configured via GUI.
.. versionadded:: 3.10
%End
};
/************************************************************************
* This file has been generated automatically from *
* *
* src/gui/processing/qgsprocessingguiregistry.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/