19 #ifndef QGSPROCESSINGWIDGETWRAPPERIMPL_H
20 #define QGSPROCESSINGWIDGETWRAPPERIMPL_H
27 #include "processing/models/qgsprocessingmodelchildparametersource.h"
29 #include <QAbstractButton>
41 class QgsProcessingMatrixParameterPanel;
63 class QgsProcessingEnumModelerWidget;
64 class QgsProcessingMatrixModelerWidget;
65 class QgsProcessingMapLayerComboBox;
67 class QgsProcessingLayerOutputDestinationWidget;
85 QCheckBox *mDefaultCheckBox =
nullptr;
99 QString parameterType()
const override;
114 QVariant widgetValue() const override;
116 QStringList compatibleParameterTypes() const override;
118 QStringList compatibleOutputTypes() const override;
122 QCheckBox *mCheckBox =
nullptr;
123 QComboBox *mComboBox =
nullptr;
125 friend class TestProcessingGui;
156 QString parameterType()
const override;
170 QVariant widgetValue() const override;
172 QStringList compatibleParameterTypes() const override;
173 QStringList compatibleOutputTypes() const override;
174 QString modelerExpressionFormatString() const override;
179 QCheckBox *mUseProjectCrsCheckBox =
nullptr;
181 friend class TestProcessingGui;
199 QLineEdit *mDefaultLineEdit =
nullptr;
200 QCheckBox *mMultiLineCheckBox =
nullptr;
214 QString parameterType()
const override;
228 QVariant widgetValue() const override;
230 QStringList compatibleParameterTypes() const override;
232 QStringList compatibleOutputTypes() const override;
235 QLineEdit *mLineEdit =
nullptr;
236 QPlainTextEdit *mPlainTextEdit =
nullptr;
238 friend class TestProcessingGui;
252 QString parameterType()
const override;
261 QVariant widgetValue() const override;
263 QStringList compatibleParameterTypes() const override;
265 QStringList compatibleOutputTypes() const override;
270 friend class TestProcessingGui;
287 QComboBox *mTypeComboBox =
nullptr;
288 QLineEdit *mMinLineEdit =
nullptr;
289 QLineEdit *mMaxLineEdit =
nullptr;
290 QLineEdit *mDefaultLineEdit =
nullptr;
305 QString parameterType()
const override;
319 QVariant widgetValue() const override;
321 QStringList compatibleParameterTypes() const override;
323 QStringList compatibleOutputTypes() const override;
332 static
double calculateStep(
double minimum,
double maximum );
334 bool mAllowingNull = false;
336 friend class TestProcessingGui;
353 QComboBox *mParentLayerComboBox =
nullptr;
354 QLineEdit *mMinLineEdit =
nullptr;
355 QLineEdit *mMaxLineEdit =
nullptr;
356 QLineEdit *mDefaultLineEdit =
nullptr;
360 class GUI_EXPORT QgsProcessingDistanceWidgetWrapper :
public QgsProcessingNumericWidgetWrapper
370 QString parameterType()
const override;
383 void setUnitParameterValue( const QVariant &value );
388 QVariant widgetValue() const override;
393 QLabel *mLabel =
nullptr;
394 QWidget *mWarningLabel =
nullptr;
395 QComboBox *mUnitsCombo =
nullptr;
397 friend class TestProcessingGui;
414 QLineEdit *mDefaultLineEdit =
nullptr;
418 class GUI_EXPORT QgsProcessingScaleWidgetWrapper :
public QgsProcessingNumericWidgetWrapper
428 QString parameterType()
const override;
441 QVariant widgetValue() const override;
448 friend class TestProcessingGui;
465 QComboBox *mTypeComboBox =
nullptr;
466 QLineEdit *mMinLineEdit =
nullptr;
467 QLineEdit *mMaxLineEdit =
nullptr;
481 QString parameterType()
const override;
495 QVariant widgetValue() const override;
496 QStringList compatibleParameterTypes() const override;
497 QStringList compatibleOutputTypes() const override;
498 QString modelerExpressionFormatString() const override;
507 int mBlockChangedSignal = 0;
508 bool mAllowingNull = false;
510 friend class TestProcessingGui;
526 QgsProcessingMatrixModelerWidget *mMatrixWidget =
nullptr;
540 QString parameterType()
const override;
554 QVariant widgetValue() const override;
556 QStringList compatibleParameterTypes() const override;
557 QStringList compatibleOutputTypes() const override;
558 QString modelerExpressionFormatString() const override;
562 QgsProcessingMatrixParameterPanel *mMatrixWidget =
nullptr;
564 friend class TestProcessingGui;
580 QComboBox *mTypeComboBox =
nullptr;
581 QComboBox *mFilterComboBox =
nullptr;
596 QString parameterType()
const override;
610 QVariant widgetValue() const override;
612 QStringList compatibleParameterTypes() const override;
614 QStringList compatibleOutputTypes() const override;
615 QString modelerExpressionFormatString() const override;
621 friend class TestProcessingGui;
639 QComboBox *mParentLayerComboBox =
nullptr;
654 QString parameterType()
const override;
672 QVariant widgetValue() const override;
674 QStringList compatibleParameterTypes() const override;
676 QStringList compatibleOutputTypes() const override;
678 QString modelerExpressionFormatString() const override;
687 friend class TestProcessingGui;
691 class GUI_EXPORT QgsProcessingEnumCheckboxPanelWidget : public QWidget
697 QgsProcessingEnumCheckboxPanelWidget( QWidget *parent =
nullptr,
const QgsProcessingParameterEnum *param =
nullptr,
int columns = 2 );
698 QVariant value()
const;
699 void setValue(
const QVariant &value );
707 void showPopupMenu();
714 QMap< QVariant, QAbstractButton * > mButtons;
715 QButtonGroup *mButtonGroup =
nullptr;
717 bool mBlockChangedSignal =
false;
719 friend class TestProcessingGui;
722 class GUI_EXPORT QgsProcessingEnumPanelWidget :
public QWidget
729 QVariant value()
const {
return mValue; }
730 void setValue(
const QVariant &value );
742 void updateSummaryText();
745 QLineEdit *mLineEdit =
nullptr;
746 QToolButton *mToolButton =
nullptr;
750 friend class TestProcessingGui;
766 QgsProcessingEnumModelerWidget *mEnumWidget =
nullptr;
780 QString parameterType()
const override;
794 QVariant widgetValue() const override;
796 QStringList compatibleParameterTypes() const override;
798 QStringList compatibleOutputTypes() const override;
800 QString modelerExpressionFormatString() const override;
803 QComboBox *mComboBox =
nullptr;
804 QgsProcessingEnumPanelWidget *mPanel =
nullptr;
805 QgsProcessingEnumCheckboxPanelWidget *mCheckboxPanel =
nullptr;
807 friend class TestProcessingGui;
822 QString parameterType()
const override;
831 QVariant widgetValue() const override;
834 QStringList compatibleParameterTypes() const override;
836 QStringList compatibleOutputTypes() const override;
838 QString modelerExpressionFormatString() const override;
842 QComboBox *mPlainComboBox =
nullptr;
844 friend class TestProcessingGui;
862 QComboBox *mParentLayoutComboBox =
nullptr;
876 QString parameterType()
const override;
890 void setLayoutParameterValue( const QVariant &value );
896 QVariant widgetValue() const override;
898 QStringList compatibleParameterTypes() const override;
900 QStringList compatibleOutputTypes() const override;
901 QString modelerExpressionFormatString() const override;
905 QLineEdit *mLineEdit =
nullptr;
907 friend class TestProcessingGui;
910 class GUI_EXPORT QgsProcessingPointMapTool : public
QgsMapTool
915 ~QgsProcessingPointMapTool()
override;
916 void deactivate()
override;
919 void keyPressEvent( QKeyEvent *e )
override;
928 std::unique_ptr<QgsSnapIndicator> mSnapIndicator;
929 friend class TestProcessingGui;
932 class GUI_EXPORT QgsProcessingPointPanel :
public QWidget
938 QgsProcessingPointPanel( QWidget *parent );
940 void setAllowNull(
bool allowNull );
942 QVariant value()
const;
948 void toggleDialogVisibility(
bool visible );
953 void selectOnCanvas();
960 QToolButton *mButton =
nullptr;
963 QPointer< QgsMapTool > mPrevTool;
964 std::unique_ptr< QgsProcessingPointMapTool > mTool;
965 friend class TestProcessingGui;
982 QLineEdit *mDefaultLineEdit =
nullptr;
996 QString parameterType()
const override;
1007 void setDialog( QDialog *dialog ) override;
1012 QVariant widgetValue() const override;
1014 QStringList compatibleParameterTypes() const override;
1016 QStringList compatibleOutputTypes() const override;
1017 QString modelerExpressionFormatString() const override;
1020 QgsProcessingPointPanel *mPanel =
nullptr;
1021 QLineEdit *mLineEdit =
nullptr;
1022 QDialog *mDialog =
nullptr;
1024 friend class TestProcessingGui;
1040 QLineEdit *mDefaultLineEdit =
nullptr;
1054 QString parameterType()
const override;
1068 QVariant widgetValue() const override;
1070 QStringList compatibleParameterTypes() const override;
1072 QStringList compatibleOutputTypes() const override;
1073 QString modelerExpressionFormatString() const override;
1076 QLineEdit *mLineEdit =
nullptr;
1078 friend class TestProcessingGui;
1108 QString parameterType()
const override;
1119 void setDialog( QDialog *dialog ) override;
1124 QVariant widgetValue() const override;
1126 QStringList compatibleParameterTypes() const override;
1128 QStringList compatibleOutputTypes() const override;
1129 QString modelerExpressionFormatString() const override;
1133 QDialog *mDialog =
nullptr;
1135 friend class TestProcessingGui;
1152 QCheckBox *mAllowOpacity =
nullptr;
1166 QString parameterType()
const override;
1180 QVariant widgetValue() const override;
1182 QStringList compatibleParameterTypes() const override;
1184 QStringList compatibleOutputTypes() const override;
1185 QString modelerExpressionFormatString() const override;
1189 friend class TestProcessingGui;
1207 QLineEdit *mDefaultLineEdit =
nullptr;
1209 QComboBox *mSourceParamComboBox =
nullptr;
1210 QComboBox *mDestParamComboBox =
nullptr;
1228 QString parameterType()
const override;
1243 QVariant widgetValue() const override;
1245 QStringList compatibleParameterTypes() const override;
1247 QStringList compatibleOutputTypes() const override;
1248 QString modelerExpressionFormatString() const override;
1251 void setSourceCrsParameterValue( const QVariant &value );
1252 void setDestinationCrsParameterValue( const QVariant &value );
1256 QLineEdit *mLineEdit =
nullptr;
1259 friend class TestProcessingGui;
1262 class GUI_EXPORT QgsProcessingFieldPanelWidget : public QWidget
1270 void setFields(
const QgsFields &fields );
1272 QgsFields fields()
const {
return mFields; }
1274 QVariant value()
const {
return mValue; }
1275 void setValue(
const QVariant &value );
1287 void updateSummaryText();
1292 QLineEdit *mLineEdit =
nullptr;
1293 QToolButton *mToolButton =
nullptr;
1295 QVariantList mValue;
1297 friend class TestProcessingGui;
1313 QComboBox *mParentLayerComboBox =
nullptr;
1314 QComboBox *mDataTypeComboBox =
nullptr;
1315 QLineEdit *mDefaultLineEdit =
nullptr;
1316 QCheckBox *mAllowMultipleCheckBox =
nullptr;
1317 QCheckBox *mDefaultToAllCheckBox =
nullptr;
1330 QString parameterType()
const override;
1348 QVariant widgetValue() const override;
1350 QStringList compatibleParameterTypes() const override;
1352 QStringList compatibleOutputTypes() const override;
1353 QString modelerExpressionFormatString() const override;
1359 QgsProcessingFieldPanelWidget *mPanel =
nullptr;
1360 QLineEdit *mLineEdit =
nullptr;
1366 friend class TestProcessingGui;
1383 QComboBox *mDefaultComboBox =
nullptr;
1397 QString parameterType()
const override;
1411 QVariant widgetValue() const override;
1413 QStringList compatibleParameterTypes() const override;
1415 QStringList compatibleOutputTypes() const override;
1416 QString modelerExpressionFormatString() const override;
1420 QComboBox *mComboBox =
nullptr;
1422 friend class TestProcessingGui;
1439 QComboBox *mTypeComboBox =
nullptr;
1453 QString parameterType()
const override;
1467 QVariant widgetValue() const override;
1469 QStringList compatibleParameterTypes() const override;
1470 QStringList compatibleOutputTypes() const override;
1471 QString modelerExpressionFormatString() const override;
1479 friend class TestProcessingGui;
1501 QComboBox *mProviderComboBox =
nullptr;
1502 QLineEdit *mDefaultEdit =
nullptr;
1516 QString parameterType()
const override;
1531 QVariant widgetValue() const override;
1533 QStringList compatibleParameterTypes() const override;
1535 QStringList compatibleOutputTypes() const override;
1536 QString modelerExpressionFormatString() const override;
1541 int mBlockSignals = 0;
1543 friend class TestProcessingGui;
1561 QComboBox *mConnectionParamComboBox =
nullptr;
1562 QLineEdit *mDefaultEdit =
nullptr;
1576 QString parameterType()
const override;
1578 void postInitialize(
const QList< QgsAbstractProcessingParameterWidgetWrapper * > &wrappers )
override;
1595 QVariant widgetValue() const override;
1597 QStringList compatibleParameterTypes() const override;
1599 QStringList compatibleOutputTypes() const override;
1600 QString modelerExpressionFormatString() const override;
1605 int mBlockSignals = 0;
1607 friend class TestProcessingGui;
1626 QComboBox *mConnectionParamComboBox =
nullptr;
1627 QComboBox *mSchemaParamComboBox =
nullptr;
1628 QLineEdit *mDefaultEdit =
nullptr;
1642 QString parameterType()
const override;
1644 void postInitialize(
const QList< QgsAbstractProcessingParameterWidgetWrapper * > &wrappers )
override;
1662 QVariant widgetValue() const override;
1664 QStringList compatibleParameterTypes() const override;
1666 QStringList compatibleOutputTypes() const override;
1667 QString modelerExpressionFormatString() const override;
1672 int mBlockSignals = 0;
1673 QString mConnection;
1677 friend class TestProcessingGui;
1706 QString parameterType()
const override;
1720 QVariant widgetValue() const override;
1722 QStringList compatibleParameterTypes() const override;
1724 QStringList compatibleOutputTypes() const override;
1725 QString modelerExpressionFormatString() const override;
1729 QPointer< QgsProcessingMapLayerComboBox > mComboBox;
1730 int mBlockSignals = 0;
1732 friend class TestProcessingGui;
1736 class GUI_EXPORT QgsProcessingRasterLayerWidgetWrapper : public QgsProcessingMapLayerWidgetWrapper
1746 QString parameterType()
const override;
1755 QStringList compatibleParameterTypes()
const override;
1757 QStringList compatibleOutputTypes()
const override;
1759 QString modelerExpressionFormatString()
const override;
1780 class GUI_EXPORT QgsProcessingVectorLayerWidgetWrapper :
public QgsProcessingMapLayerWidgetWrapper
1790 QString parameterType()
const override;
1799 QStringList compatibleParameterTypes()
const override;
1801 QStringList compatibleOutputTypes()
const override;
1803 QString modelerExpressionFormatString()
const override;
1824 class GUI_EXPORT QgsProcessingFeatureSourceWidgetWrapper :
public QgsProcessingMapLayerWidgetWrapper
1834 QString parameterType()
const override;
1843 QStringList compatibleParameterTypes()
const override;
1845 QStringList compatibleOutputTypes()
const override;
1847 QString modelerExpressionFormatString()
const override;
1852 class GUI_EXPORT QgsProcessingMeshLayerWidgetWrapper :
public QgsProcessingMapLayerWidgetWrapper
1862 QString parameterType()
const override;
1871 QStringList compatibleParameterTypes()
const override;
1873 QStringList compatibleOutputTypes()
const override;
1875 QString modelerExpressionFormatString()
const override;
1880 class GUI_EXPORT QgsProcessingRasterBandPanelWidget :
public QWidget
1888 void setBands(
const QList< int > &bands );
1889 void setBandNames(
const QHash<int, QString > &names );
1890 QList< int > bands()
const {
return mBands; }
1892 QVariant value()
const {
return mValue; }
1893 void setValue(
const QVariant &value );
1905 void updateSummaryText();
1907 QList< int > mBands;
1908 QHash<int, QString > mBandNames;
1911 QLineEdit *mLineEdit =
nullptr;
1912 QToolButton *mToolButton =
nullptr;
1914 QVariantList mValue;
1916 friend class TestProcessingGui;
1932 QComboBox *mParentLayerComboBox =
nullptr;
1933 QLineEdit *mDefaultLineEdit =
nullptr;
1934 QCheckBox *mAllowMultipleCheckBox =
nullptr;
1947 QString parameterType()
const override;
1965 QVariant widgetValue() const override;
1967 QStringList compatibleParameterTypes() const override;
1969 QStringList compatibleOutputTypes() const override;
1970 QString modelerExpressionFormatString() const override;
1975 QgsProcessingRasterBandPanelWidget *mPanel =
nullptr;
1976 QLineEdit *mLineEdit =
nullptr;
1980 friend class TestProcessingGui;
1985 class GUI_EXPORT QgsProcessingMultipleLayerPanelWidget : public QWidget
1993 QVariant value()
const {
return mValue; }
1994 void setValue(
const QVariant &value );
1997 void setModel( QgsProcessingModelAlgorithm *model,
const QString &modelChildAlgorithmID );
2009 void updateSummaryText();
2012 QLineEdit *mLineEdit =
nullptr;
2013 QToolButton *mToolButton =
nullptr;
2015 QVariantList mValue;
2016 QList< QgsProcessingModelChildParameterSource > mModelSources;
2017 QgsProcessingModelAlgorithm *mModel =
nullptr;
2021 friend class TestProcessingGui;
2037 QComboBox *mLayerTypeComboBox =
nullptr;
2050 QString parameterType()
const override;
2065 QVariant widgetValue() const override;
2067 QStringList compatibleParameterTypes() const override;
2069 QStringList compatibleOutputTypes() const override;
2070 QString modelerExpressionFormatString() const override;
2074 QgsProcessingMultipleLayerPanelWidget *mPanel =
nullptr;
2076 friend class TestProcessingGui;
2095 QVariant widgetValue() const override;
2096 QVariantMap customProperties() const override;
2098 QStringList compatibleParameterTypes() const override;
2100 QStringList compatibleOutputTypes() const override;
2104 QgsProcessingLayerOutputDestinationWidget *mOutputWidget =
nullptr;
2105 int mBlockSignals = 0;
2107 friend class TestProcessingGui;
2111 class GUI_EXPORT QgsProcessingFeatureSinkWidgetWrapper : public QgsProcessingOutputWidgetWrapper
2121 QString parameterType()
const override;
2125 QString modelerExpressionFormatString()
const override;
2132 class GUI_EXPORT QgsProcessingVectorDestinationWidgetWrapper :
public QgsProcessingOutputWidgetWrapper
2142 QString parameterType()
const override;
2146 QString modelerExpressionFormatString()
const override;
2150 class GUI_EXPORT QgsProcessingRasterDestinationWidgetWrapper :
public QgsProcessingOutputWidgetWrapper
2160 QString parameterType()
const override;
2164 QString modelerExpressionFormatString()
const override;
2168 class GUI_EXPORT QgsProcessingFileDestinationWidgetWrapper :
public QgsProcessingOutputWidgetWrapper
2178 QString parameterType()
const override;
2182 QString modelerExpressionFormatString()
const override;
2186 class GUI_EXPORT QgsProcessingFolderDestinationWidgetWrapper :
public QgsProcessingOutputWidgetWrapper
2196 QString parameterType()
const override;
2200 QString modelerExpressionFormatString()
const override;
Selector widget for authentication configs.
QComboBox subclass which allows selecting multiple items.
This class represents a coordinate reference system (CRS).
The QgsDatabaseSchemaComboBox class is a combo box which displays the list of schemas for a specific ...
The QgsDatabaseTableComboBox class is a combo box which displays the list of tables for a specific da...
The QgsDateEdit class is a QDateEdit widget with the capability of setting/reading null dates.
The QgsDateTimeEdit class is a QDateTimeEdit with the capability of setting/reading null date/times.
The QgsSpinBox is a spin box with a clear button that will set the value to the defined clear value.
The QgsExpressionLineEdit widget includes a line edit for entering expressions together with a button...
The QgsFieldComboBox is a combo box which displays the list of fields of a given layer.
Container of fields for a vector layer.
QLineEdit subclass with built in support for clearing the widget's value and handling custom null val...
The QgsLayoutComboBox class is a combo box which displays available layouts from a QgsLayoutManager.
The QgsLayoutItemComboBox class is a combo box which displays items of a matching type from a layout.
Map canvas is a class for displaying all GIS data types on a canvas.
A QgsMapMouseEvent is the result of a user interaction with the mouse on a QgsMapCanvas.
A class to represent a 2D point.
Print layout, a QgsLayout subclass for static or atlas-based layouts.
Abstract base class for processing algorithms.
An interface for objects which can create Processing contexts.
Contains information about the context in which a processing algorithm is executed.
WidgetType
Types of dialogs which Processing widgets can be created for.
@ Standard
Standard algorithm dialog.
A raster band parameter for Processing algorithms.
Base class for the definition of processing parameters.
An enum based parameter for processing algorithms, allowing for selection from predefined values.
A vector layer or feature source field parameter for processing algorithms.
A parameter for processing algorithms which accepts multiple map layers.
Contains settings which reflect the context in which a Processing parameter widget is shown,...
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
The QgsProviderConnectionComboBox class is a combo box which displays the list of connections registe...
A combobox widget which displays the bands present in a raster layer.
Represents a raster layer.
Class that shows snapping marker on map canvas for the current snapping match.
The QgsSpinBox is a spin box with a clear button that will set the value to the defined clear value.
The QgsTimeEdit class is a QTimeEdit widget with the capability of setting/reading null date/times.
Helper functions for various unit types.
Represents a vector layer which manages a vector based data sets.
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into allowing algorithms to be written in pure substantial changes are required in order to port existing x Processing algorithms for QGIS x The most significant changes are outlined not GeoAlgorithm For algorithms which operate on features one by consider subclassing the QgsProcessingFeatureBasedAlgorithm class This class allows much of the boilerplate code for looping over features from a vector layer to be bypassed and instead requires implementation of a processFeature method Ensure that your algorithm(or algorithm 's parent class) implements the new pure virtual createInstance(self) call
const QgsCoordinateReferenceSystem & crs