18 #ifndef QGSPROCESSINGPARAMETERS_H
19 #define QGSPROCESSINGPARAMETERS_H
21 #include "qgis_core.h"
65 FlagOverrideDefaultGeometryCheck = 1 << 0,
66 FlagCreateIndividualOutputPerInputFeature = 1 << 1,
68 Q_DECLARE_FLAGS( Flags, Flag )
86 , selectedFeaturesOnly( selectedFeaturesOnly )
87 , featureLimit( featureLimit )
89 , geometryCheck( geometryCheck )
108 , selectedFeaturesOnly( selectedFeaturesOnly )
109 , featureLimit( featureLimit )
111 , geometryCheck( geometryCheck )
130 long long featureLimit = -1;
137 Flags flags = Flags();
155 QVariant toVariant()
const;
163 bool loadVariant(
const QVariantMap &map );
167 return source == other.
source
170 && flags == other.
flags
176 return !( *
this == other );
180 operator QVariant()
const
182 return QVariant::fromValue( *
this );
210 , destinationProject( destinationProject )
220 , destinationProject( destinationProject )
283 QVariant toVariant()
const;
291 bool loadVariant(
const QVariantMap &map );
294 operator QVariant()
const
296 return QVariant::fromValue( *
this );
304 bool mUseRemapping =
false;
336 sipType = sipType_QgsProcessingParameterBoolean;
338 sipType = sipType_QgsProcessingParameterCrs;
340 sipType = sipType_QgsProcessingParameterMapLayer;
342 sipType = sipType_QgsProcessingParameterExtent;
344 sipType = sipType_QgsProcessingParameterPoint;
346 sipType = sipType_QgsProcessingParameterGeometry;
348 sipType = sipType_QgsProcessingParameterFile;
350 sipType = sipType_QgsProcessingParameterMatrix;
352 sipType = sipType_QgsProcessingParameterMultipleLayers;
354 sipType = sipType_QgsProcessingParameterNumber;
356 sipType = sipType_QgsProcessingParameterDistance;
358 sipType = sipType_QgsProcessingParameterScale;
360 sipType = sipType_QgsProcessingParameterRange;
362 sipType = sipType_QgsProcessingParameterRasterLayer;
364 sipType = sipType_QgsProcessingParameterMeshLayer;
366 sipType = sipType_QgsProcessingParameterEnum;
368 sipType = sipType_QgsProcessingParameterString;
370 sipType = sipType_QgsProcessingParameterExpression;
372 sipType = sipType_QgsProcessingParameterAuthConfig;
374 sipType = sipType_QgsProcessingParameterVectorLayer;
376 sipType = sipType_QgsProcessingParameterField;
378 sipType = sipType_QgsProcessingParameterFeatureSource;
380 sipType = sipType_QgsProcessingParameterFeatureSink;
382 sipType = sipType_QgsProcessingParameterVectorDestination;
384 sipType = sipType_QgsProcessingParameterRasterDestination;
386 sipType = sipType_QgsProcessingParameterFileDestination;
388 sipType = sipType_QgsProcessingParameterFolderDestination;
390 sipType = sipType_QgsProcessingParameterBand;
392 sipType = sipType_QgsProcessingParameterLayout;
394 sipType = sipType_QgsProcessingParameterLayoutItem;
396 sipType = sipType_QgsProcessingParameterColor;
398 sipType = sipType_QgsProcessingParameterCoordinateOperation;
400 sipType = sipType_QgsProcessingParameterMapTheme;
402 sipType = sipType_QgsProcessingParameterDateTime;
404 sipType = sipType_QgsProcessingParameterProviderConnection;
406 sipType = sipType_QgsProcessingParameterDatabaseSchema;
408 sipType = sipType_QgsProcessingParameterDatabaseTable;
410 sipType = sipType_QgsProcessingParameterFieldMapping;
412 sipType = sipType_QgsProcessingParameterTinInputLayers;
423 FlagAdvanced = 1 << 1,
425 FlagOptional = 1 << 3,
426 FlagIsModelOutput = 1 << 4,
428 Q_DECLARE_FLAGS( Flags, Flag )
434 bool optional =
false,
const QString &help = QString() );
446 virtual QString
type()
const = 0;
460 QString
name()
const {
return mName; }
467 void setName(
const QString &name ) { mName = name; }
481 void setDescription(
const QString &description ) { mDescription = description; }
492 QString
help()
const {
return mHelp; }
503 void setHelp(
const QString &help ) { mHelp = help; }
522 Flags
flags()
const {
return mFlags; }
537 virtual bool checkValueIsAcceptable(
const QVariant &input,
QgsProcessingContext *context =
nullptr )
const;
543 virtual QString valueAsPythonString(
const QVariant &value,
QgsProcessingContext &context )
const;
549 virtual QString asScriptCode()
const;
567 virtual QVariantMap toVariantMap()
const;
574 virtual bool fromVariantMap(
const QVariantMap &map );
596 void setMetadata(
const QVariantMap &metadata ) { mMetadata = metadata; }
622 virtual QString toolTip()
const;
742 bool mIsDynamic =
false;
790 static bool isDynamic(
const QVariantMap ¶meters,
const QString &name );
973 QgsProcessingContext &context, QString &destinationIdentifier
SIP_OUT, QgsFeatureSink::SinkFlags sinkFlags = QgsFeatureSink::SinkFlags(),
const QVariantMap &createOptions = QVariantMap(),
const QStringList &datasourceOptions = QStringList(),
const QStringList &layerOptions = QStringList() )
SIP_FACTORY;
1484 static QString descriptionFromName(
const QString &name );
1495 static bool parseScriptCodeParameterOptions(
const QString &code,
bool &isOptional, QString &name, QString &type, QString &definition );
1514 bool optional =
false );
1519 static QString
typeName() {
return QStringLiteral(
"boolean" ); }
1544 QgsProcessingParameterCrs(
const QString &name,
const QString &description = QString(),
const QVariant &defaultValue = QVariant(),
1545 bool optional =
false );
1550 static QString
typeName() {
return QStringLiteral(
"crs" ); }
1577 bool optional =
false );
1582 static QString
typeName() {
return QStringLiteral(
"extent" ); }
1609 QgsProcessingParameterPoint(
const QString &name,
const QString &description = QString(),
const QVariant &defaultValue = QVariant(),
1610 bool optional =
false );
1615 static QString
typeName() {
return QStringLiteral(
"point" ); }
1644 QgsProcessingParameterGeometry(
const QString &name,
const QString &description = QString(),
const QVariant &defaultValue = QVariant(),
bool optional =
false,
const QList< int > &geometryTypes = QList< int >() );
1649 static QString
typeName() {
return QStringLiteral(
"geometry" ); }
1678 QList<int> mGeomTypes;
1706 QgsProcessingParameterFile(
const QString &name,
const QString &description = QString(), Behavior behavior = File,
const QString &extension = QString(),
const QVariant &defaultValue = QVariant(),
1707 bool optional =
false,
const QString &fileFilter = QString() );
1712 static QString
typeName() {
return QStringLiteral(
"file" ); }
1749 void setExtension(
const QString &extension );
1757 QString fileFilter()
const;
1768 void setFileFilter(
const QString &filter );
1776 static QgsProcessingParameterFile *fromScriptCode(
const QString &name,
const QString &description,
bool isOptional,
const QString &definition, Behavior behavior = File )
SIP_FACTORY;
1780 Behavior mBehavior = File;
1782 QString mFileFilter;
1799 bool hasFixedNumberRows =
false,
const QStringList &headers = QStringList(),
1800 const QVariant &defaultValue = QVariant(),
1801 bool optional =
false );
1806 static QString
typeName() {
return QStringLiteral(
"matrix" ); }
1817 QStringList headers()
const;
1823 void setHeaders(
const QStringList &headers );
1831 int numberRows()
const;
1839 void setNumberRows(
int rows );
1846 bool hasFixedNumberRows()
const;
1853 void setHasFixedNumberRows(
bool hasFixedNumberRows );
1865 QStringList mHeaders;
1866 int mNumberRows = 3;
1867 bool mFixedNumberRows =
false;
1885 const QVariant &defaultValue = QVariant(),
1886 bool optional =
false );
1891 static QString
typeName() {
return QStringLiteral(
"multilayer" ); }
1917 int minimumNumberInputs()
const;
1924 void setMinimumNumberInputs(
int minimum );
1937 int mMinimumNumberInputs = 0;
1974 Type type = Integer,
1975 const QVariant &defaultValue = QVariant(),
1976 bool optional =
false,
1977 double minValue = std::numeric_limits<double>::lowest() + 1,
1978 double maxValue = std::numeric_limits<double>::max()
1984 static QString
typeName() {
return QStringLiteral(
"number" ); }
1989 QString
toolTip()
const override;
1996 double minimum()
const;
2002 void setMinimum(
double minimum );
2008 double maximum()
const;
2014 void setMaximum(
double maximum );
2020 Type dataType()
const;
2026 void setDataType( Type type );
2038 double mMin = std::numeric_limits<double>::lowest() + 1;
2039 double mMax = std::numeric_limits<double>::max();
2040 Type mDataType = Integer;
2070 const QVariant &defaultValue = QVariant(),
2071 const QString &parentParameterName = QString(),
2072 bool optional =
false,
2073 double minValue = std::numeric_limits<double>::lowest() + 1,
2074 double maxValue = std::numeric_limits<double>::max() );
2079 static QString
typeName() {
return QStringLiteral(
"distance" ); }
2083 QString type() const override;
2084 QStringList dependsOnOtherParameters() const override;
2085 QString asPythonString(
QgsProcessing::PythonOutputType outputType =
QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2091 QString parentParameterName() const;
2097 void setParentParameterName( const QString &parentParameterName );
2120 QString mParentParameterName;
2143 const QVariant &defaultValue = QVariant(),
2144 bool optional =
false );
2149 static QString
typeName() {
return QStringLiteral(
"scale" ); }
2153 QString type() const override;
2154 QString asPythonString(
QgsProcessing::PythonOutputType outputType =
QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2178 const QVariant &defaultValue = QVariant(),
2179 bool optional =
false );
2184 static QString
typeName() {
return QStringLiteral(
"range" ); }
2230 bool optional =
false );
2235 static QString
typeName() {
return QStringLiteral(
"raster" ); }
2262 QgsProcessingParameterEnum(
const QString &name,
const QString &description = QString(),
const QStringList &options = QStringList(),
2263 bool allowMultiple =
false,
2264 const QVariant &defaultValue = QVariant(),
2265 bool optional =
false );
2270 static QString
typeName() {
return QStringLiteral(
"enum" ); }
2282 QStringList options()
const;
2288 void setOptions(
const QStringList &options );
2294 bool allowMultiple()
const;
2300 void setAllowMultiple(
bool allowMultiple );
2312 QStringList mOptions;
2313 bool mAllowMultiple =
false;
2331 bool multiLine =
false,
2332 bool optional =
false );
2337 static QString
typeName() {
return QStringLiteral(
"string" ); }
2348 bool multiLine()
const;
2354 void setMultiLine(
bool multiLine );
2366 bool mMultiLine =
false;
2391 bool optional =
false );
2396 static QString
typeName() {
return QStringLiteral(
"authcfg" ); }
2423 const QString &parentLayerParameterName = QString(),
2424 bool optional =
false );
2429 static QString
typeName() {
return QStringLiteral(
"expression" ); }
2440 QString parentLayerParameterName()
const;
2446 void setParentLayerParameterName(
const QString &parentLayerParameterName );
2458 QString mParentLayerParameterName;
2482 QList< int > dataTypes()
const;
2488 void setDataTypes(
const QList< int > &types );
2511 const QString &description = QString(),
2512 const QList< int > &types = QList< int >(),
2513 const QVariant &defaultValue = QVariant(),
2514 bool optional =
false );
2519 static QString
typeName() {
return QStringLiteral(
"vector" ); }
2551 const QString &description = QString(),
2552 const QVariant &defaultValue = QVariant(),
2553 bool optional =
false );
2558 static QString
typeName() {
return QStringLiteral(
"mesh" ); }
2585 bool optional =
false,
2586 const QList< int > &types = QList< int >() );
2591 static QString
typeName() {
return QStringLiteral(
"layer" ); }
2632 QgsProcessingParameterField(
const QString &name,
const QString &description = QString(),
const QVariant &defaultValue = QVariant(),
2633 const QString &parentLayerParameterName = QString(),
2634 DataType type = Any,
2635 bool allowMultiple =
false,
2636 bool optional =
false,
2637 bool defaultToAllFields =
false );
2642 static QString
typeName() {
return QStringLiteral(
"field" ); }
2655 QString parentLayerParameterName()
const;
2661 void setParentLayerParameterName(
const QString &parentLayerParameterName );
2667 DataType dataType()
const;
2673 void setDataType( DataType type );
2679 bool allowMultiple()
const;
2685 void setAllowMultiple(
bool allowMultiple );
2696 bool defaultToAllFields()
const;
2707 void setDefaultToAllFields(
bool enabled );
2719 QString mParentLayerParameterName;
2720 DataType mDataType = Any;
2721 bool mAllowMultiple =
false;
2722 bool mDefaultToAllFields =
false;
2741 const QList< int > &types = QList< int >(),
2742 const QVariant &defaultValue = QVariant(),
bool optional =
false );
2747 static QString
typeName() {
return QStringLiteral(
"source" ); }
2784 bool optional =
false,
bool createByDefault =
true );
2823 virtual QString generateTemporaryDestination()
const;
2846 bool createByDefault()
const;
2853 void setCreateByDefault(
bool createByDefault );
2878 bool mSupportsNonFileBasedOutputs =
true;
2879 bool mCreateByDefault =
true;
2881 friend class QgsProcessingModelAlgorithm;
2882 friend class TestQgsProcessing;
2905 bool optional =
false,
bool createByDefault =
true,
bool supportsAppend =
false );
2910 static QString
typeName() {
return QStringLiteral(
"sink" ); }
2917 QString defaultFileExtension() const override;
2918 QString asPythonString(
QgsProcessing::PythonOutputType outputType =
QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2919 QString createFileFilter() const override;
2926 virtual QStringList supportedOutputVectorLayerExtensions() const;
2938 bool hasGeometry() const;
2954 bool supportsAppend() const;
2964 void setSupportsAppend(
bool supportsAppend );
2966 QVariantMap toVariantMap() const override;
2967 bool fromVariantMap( const QVariantMap &map ) override;
2968 QString generateTemporaryDestination() const override;
2978 bool mSupportsAppend = false;
3003 bool optional =
false,
bool createByDefault =
true );
3008 static QString
typeName() {
return QStringLiteral(
"vectorDestination" ); }
3015 QString defaultFileExtension() const override;
3016 QString asPythonString(
QgsProcessing::PythonOutputType outputType =
QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3017 QString createFileFilter() const override;
3024 virtual QStringList supportedOutputVectorLayerExtensions() const;
3036 bool hasGeometry() const;
3044 QVariantMap toVariantMap() const override;
3045 bool fromVariantMap( const QVariantMap &map ) override;
3076 const QVariant &defaultValue = QVariant(),
3077 bool optional =
false,
3078 bool createByDefault =
true );
3083 static QString
typeName() {
return QStringLiteral(
"rasterDestination" ); }
3089 QString defaultFileExtension() const override;
3090 QString createFileFilter() const override;
3097 virtual QStringList supportedOutputRasterLayerExtensions() const;
3137 const QString &fileFilter = QString(),
3138 const QVariant &defaultValue = QVariant(),
3139 bool optional =
false,
3140 bool createByDefault =
true );
3145 static QString
typeName() {
return QStringLiteral(
"fileDestination" ); }
3151 QString defaultFileExtension() const override;
3152 QString asPythonString(
QgsProcessing::PythonOutputType outputType =
QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3153 QString createFileFilter() const override;
3159 QString fileFilter() const;
3165 void setFileFilter( const QString &filter );
3167 QVariantMap toVariantMap() const override;
3168 bool fromVariantMap( const QVariantMap &map ) override;
3178 QString mFileFilter;
3197 const QVariant &defaultValue = QVariant(),
3198 bool optional =
false,
3199 bool createByDefault =
true );
3204 static QString
typeName() {
return QStringLiteral(
"folderDestination" ); }
3209 QString defaultFileExtension() const override;
3231 QgsProcessingParameterBand(
const QString &name,
const QString &description = QString(),
const QVariant &defaultValue = QVariant(),
3232 const QString &parentLayerParameterName = QString(),
3233 bool optional =
false,
3234 bool allowMultiple =
false );
3239 static QString
typeName() {
return QStringLiteral(
"band" ); }
3252 QString parentLayerParameterName()
const;
3258 void setParentLayerParameterName(
const QString &parentLayerParameterName );
3273 bool allowMultiple()
const;
3280 void setAllowMultiple(
bool allowMultiple );
3284 QString mParentLayerParameterName;
3285 bool mAllowMultiple =
false;
3307 bool optional =
false );
3312 static QString
typeName() {
return QStringLiteral(
"layout" ); }
3345 const QString &parentLayoutParameterName = QString(),
3347 bool optional =
false );
3352 static QString
typeName() {
return QStringLiteral(
"layoutitem" ); }
3371 QString parentLayoutParameterName()
const;
3377 void setParentLayoutParameterName(
const QString &name );
3386 int itemType()
const;
3395 void setItemType(
int type );
3398 QString mParentLayoutParameterName;
3420 QgsProcessingParameterColor(
const QString &name,
const QString &description = QString(),
const QVariant &defaultValue = QVariant(),
3421 bool opacityEnabled =
true,
3422 bool optional =
false );
3427 static QString
typeName() {
return QStringLiteral(
"color" ); }
3443 bool opacityEnabled()
const;
3452 void setOpacityEnabled(
bool enabled );
3461 bool mAllowOpacity =
true;
3483 const QString &sourceCrsParameterName = QString(),
const QString &destinationCrsParameterName = QString(),
3484 const QVariant &staticSourceCrs = QVariant(),
const QVariant &staticDestinationCrs = QVariant(),
3485 bool optional =
false );
3490 static QString
typeName() {
return QStringLiteral(
"coordinateoperation" ); }
3564 QString mSourceParameterName;
3565 QString mDestParameterName;
3566 QVariant mSourceCrs;
3589 bool optional =
false );
3594 static QString
typeName() {
return QStringLiteral(
"maptheme" ); }
3640 Type type = DateTime,
3641 const QVariant &defaultValue = QVariant(),
3642 bool optional =
false,
3643 const QDateTime &minValue = QDateTime(),
3644 const QDateTime &maxValue = QDateTime()
3650 static QString
typeName() {
return QStringLiteral(
"datetime" ); }
3655 QString
toolTip()
const override;
3665 QDateTime minimum()
const;
3678 void setMinimum(
const QDateTime &minimum );
3687 QDateTime maximum()
const;
3700 void setMaximum(
const QDateTime &maximum );
3706 Type dataType()
const;
3712 void setDataType( Type type );
3726 Type mDataType = DateTime;
3751 bool optional =
false );
3756 static QString
typeName() {
return QStringLiteral(
"providerconnection" ); }
3785 QString mProviderId;
3811 QgsProcessingParameterDatabaseSchema(
const QString &name,
const QString &description,
const QString &connectionParameterName = QString(),
const QVariant &defaultValue = QVariant(),
3812 bool optional =
false );
3817 static QString
typeName() {
return QStringLiteral(
"databaseschema" ); }
3832 QString parentConnectionParameterName()
const;
3838 void setParentConnectionParameterName(
const QString &name );
3847 QString mParentConnectionParameterName;
3875 const QString &connectionParameterName = QString(),
3876 const QString &schemaParameterName = QString(),
3877 const QVariant &defaultValue = QVariant(),
3878 bool optional =
false,
3879 bool allowNewTableNames =
false );
3884 static QString
typeName() {
return QStringLiteral(
"databasetable" ); }
3899 QString parentConnectionParameterName()
const;
3905 void setParentConnectionParameterName(
const QString &name );
3911 QString parentSchemaParameterName()
const;
3917 void setParentSchemaParameterName(
const QString &name );
3930 bool allowNewTableNames()
const;
3938 void setAllowNewTableNames(
bool allowed );
3942 QString mParentConnectionParameterName;
3943 QString mParentSchemaParameterName;
3944 bool mAllowNewTableNames =
false;
3950 #endif // QGSPROCESSINGPARAMETERS_H