QGIS API Documentation 3.32.0-Lima (311a8cb8a6)
•All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
qgsprocessingparameters.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsprocessingparameters.h
3 -------------------------
4 begin : April 2017
5 copyright : (C) 2017 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSPROCESSINGPARAMETERS_H
19#define QGSPROCESSINGPARAMETERS_H
20
21#include "qgis_core.h"
22#include "qgis.h"
23#include "qgsprocessing.h"
24#include "qgsproperty.h"
26#include "qgsprocessingutils.h"
29#include <QMap>
30#include <limits>
31
34class QgsRasterLayer;
35class QgsMeshLayer;
36class QgsVectorLayer;
37class QgsFeatureSink;
42class QgsPrintLayout;
43class QgsLayoutItem;
46
57{
58 public:
59
64 enum Flag
65 {
66 FlagOverrideDefaultGeometryCheck = 1 << 0,
67 FlagCreateIndividualOutputPerInputFeature = 1 << 1,
68 };
69 Q_DECLARE_FLAGS( Flags, Flag )
70
71
87 QgsProcessingFeatureSourceDefinition( const QString &source = QString(), bool selectedFeaturesOnly = false, long long featureLimit = -1,
88 QgsProcessingFeatureSourceDefinition::Flags flags = QgsProcessingFeatureSourceDefinition::Flags(), QgsFeatureRequest::InvalidGeometryCheck geometryCheck = QgsFeatureRequest::GeometryAbortOnInvalid, const QString &filterExpression = QString() )
89 : source( QgsProperty::fromValue( source ) )
90 , selectedFeaturesOnly( selectedFeaturesOnly )
91 , featureLimit( featureLimit )
92 , filterExpression( filterExpression )
93 , flags( flags )
94 , geometryCheck( geometryCheck )
95 {}
96
113 QgsProcessingFeatureSourceDefinition( const QgsProperty &source, bool selectedFeaturesOnly = false, long long featureLimit = -1,
114 QgsProcessingFeatureSourceDefinition::Flags flags = QgsProcessingFeatureSourceDefinition::Flags(), QgsFeatureRequest::InvalidGeometryCheck geometryCheck = QgsFeatureRequest::GeometryAbortOnInvalid, const QString &filterExpression = QString() )
115 : source( source )
116 , selectedFeaturesOnly( selectedFeaturesOnly )
117 , featureLimit( featureLimit )
118 , filterExpression( filterExpression )
119 , flags( flags )
120 , geometryCheck( geometryCheck )
121 {}
122
127
132
139 long long featureLimit = -1;
140
147
153 Flags flags = Flags();
154
164
171 QVariant toVariant() const;
172
179 bool loadVariant( const QVariantMap &map );
180
181 // TODO c++20 - replace with = default
183 {
184 return source == other.source
185 && selectedFeaturesOnly == other.selectedFeaturesOnly
186 && featureLimit == other.featureLimit
187 && filterExpression == other.filterExpression
188 && flags == other.flags
189 && geometryCheck == other.geometryCheck;
190 }
191
193 {
194 return !( *this == other );
195 }
196
198 operator QVariant() const
199 {
200 return QVariant::fromValue( *this );
201 }
202
203};
204
206Q_DECLARE_OPERATORS_FOR_FLAGS( QgsProcessingFeatureSourceDefinition::Flags )
207
208
218{
219 public:
220
226 QgsProcessingOutputLayerDefinition( const QString &sink = QString(), QgsProject *destinationProject = nullptr )
227 : sink( QgsProperty::fromValue( sink ) )
228 , destinationProject( destinationProject )
229 {}
230
236 QgsProcessingOutputLayerDefinition( const QgsProperty &sink, QgsProject *destinationProject = nullptr )
237 : sink( sink )
238 , destinationProject( destinationProject )
239 {}
240
245
251 QgsProject *destinationProject = nullptr;
252
257
264 QVariantMap createOptions;
265
272 bool useRemapping() const { return mUseRemapping; }
273
281 QgsRemappingSinkDefinition remappingDefinition() const { return mRemappingDefinition; }
282
293 void setRemappingDefinition( const QgsRemappingSinkDefinition &definition );
294
301 QVariant toVariant() const;
302
309 bool loadVariant( const QVariantMap &map );
310
312 operator QVariant() const
313 {
314 return QVariant::fromValue( *this );
315 }
316
317 // TODO c++20 - replace with = default
318 bool operator==( const QgsProcessingOutputLayerDefinition &other ) const;
319 bool operator!=( const QgsProcessingOutputLayerDefinition &other ) const;
320
321 private:
322
323 bool mUseRemapping = false;
325
326};
327
329
330
331
332
333//
334// Parameter definitions
335//
336
337
350{
351
352#ifdef SIP_RUN
353 % TypeHeaderCode
360 % End
362 if ( sipCpp->type() == QgsProcessingParameterBoolean::typeName() )
363 sipType = sipType_QgsProcessingParameterBoolean;
364 else if ( sipCpp->type() == QgsProcessingParameterCrs::typeName() )
365 sipType = sipType_QgsProcessingParameterCrs;
366 else if ( sipCpp->type() == QgsProcessingParameterMapLayer::typeName() )
367 sipType = sipType_QgsProcessingParameterMapLayer;
368 else if ( sipCpp->type() == QgsProcessingParameterExtent::typeName() )
369 sipType = sipType_QgsProcessingParameterExtent;
370 else if ( sipCpp->type() == QgsProcessingParameterPoint::typeName() )
371 sipType = sipType_QgsProcessingParameterPoint;
372 else if ( sipCpp->type() == QgsProcessingParameterGeometry::typeName() )
373 sipType = sipType_QgsProcessingParameterGeometry;
374 else if ( sipCpp->type() == QgsProcessingParameterFile::typeName() )
375 sipType = sipType_QgsProcessingParameterFile;
376 else if ( sipCpp->type() == QgsProcessingParameterMatrix::typeName() )
377 sipType = sipType_QgsProcessingParameterMatrix;
378 else if ( sipCpp->type() == QgsProcessingParameterMultipleLayers::typeName() )
379 sipType = sipType_QgsProcessingParameterMultipleLayers;
380 else if ( sipCpp->type() == QgsProcessingParameterNumber::typeName() )
381 sipType = sipType_QgsProcessingParameterNumber;
382 else if ( sipCpp->type() == QgsProcessingParameterDistance::typeName() )
383 sipType = sipType_QgsProcessingParameterDistance;
384 else if ( sipCpp->type() == QgsProcessingParameterDuration::typeName() )
385 sipType = sipType_QgsProcessingParameterDuration;
386 else if ( sipCpp->type() == QgsProcessingParameterScale::typeName() )
387 sipType = sipType_QgsProcessingParameterScale;
388 else if ( sipCpp->type() == QgsProcessingParameterRange::typeName() )
389 sipType = sipType_QgsProcessingParameterRange;
390 else if ( sipCpp->type() == QgsProcessingParameterRasterLayer::typeName() )
391 sipType = sipType_QgsProcessingParameterRasterLayer;
392 else if ( sipCpp->type() == QgsProcessingParameterMeshLayer::typeName() )
393 sipType = sipType_QgsProcessingParameterMeshLayer;
394 else if ( sipCpp->type() == QgsProcessingParameterEnum::typeName() )
395 sipType = sipType_QgsProcessingParameterEnum;
396 else if ( sipCpp->type() == QgsProcessingParameterString::typeName() )
397 sipType = sipType_QgsProcessingParameterString;
398 else if ( sipCpp->type() == QgsProcessingParameterExpression::typeName() )
399 sipType = sipType_QgsProcessingParameterExpression;
400 else if ( sipCpp->type() == QgsProcessingParameterAuthConfig::typeName() )
401 sipType = sipType_QgsProcessingParameterAuthConfig;
402 else if ( sipCpp->type() == QgsProcessingParameterVectorLayer::typeName() )
403 sipType = sipType_QgsProcessingParameterVectorLayer;
404 else if ( sipCpp->type() == QgsProcessingParameterField::typeName() )
405 sipType = sipType_QgsProcessingParameterField;
406 else if ( sipCpp->type() == QgsProcessingParameterFeatureSource::typeName() )
407 sipType = sipType_QgsProcessingParameterFeatureSource;
408 else if ( sipCpp->type() == QgsProcessingParameterFeatureSink::typeName() )
409 sipType = sipType_QgsProcessingParameterFeatureSink;
410 else if ( sipCpp->type() == QgsProcessingParameterVectorDestination::typeName() )
411 sipType = sipType_QgsProcessingParameterVectorDestination;
412 else if ( sipCpp->type() == QgsProcessingParameterRasterDestination::typeName() )
413 sipType = sipType_QgsProcessingParameterRasterDestination;
414 else if ( sipCpp->type() == QgsProcessingParameterPointCloudDestination::typeName() )
415 sipType = sipType_QgsProcessingParameterPointCloudDestination;
416 else if ( sipCpp->type() == QgsProcessingParameterFileDestination::typeName() )
417 sipType = sipType_QgsProcessingParameterFileDestination;
418 else if ( sipCpp->type() == QgsProcessingParameterFolderDestination::typeName() )
419 sipType = sipType_QgsProcessingParameterFolderDestination;
420 else if ( sipCpp->type() == QgsProcessingParameterBand::typeName() )
421 sipType = sipType_QgsProcessingParameterBand;
422 else if ( sipCpp->type() == QgsProcessingParameterLayout::typeName() )
423 sipType = sipType_QgsProcessingParameterLayout;
424 else if ( sipCpp->type() == QgsProcessingParameterLayoutItem::typeName() )
425 sipType = sipType_QgsProcessingParameterLayoutItem;
426 else if ( sipCpp->type() == QgsProcessingParameterColor::typeName() )
427 sipType = sipType_QgsProcessingParameterColor;
428 else if ( sipCpp->type() == QgsProcessingParameterCoordinateOperation::typeName() )
429 sipType = sipType_QgsProcessingParameterCoordinateOperation;
430 else if ( sipCpp->type() == QgsProcessingParameterMapTheme::typeName() )
431 sipType = sipType_QgsProcessingParameterMapTheme;
432 else if ( sipCpp->type() == QgsProcessingParameterDateTime::typeName() )
433 sipType = sipType_QgsProcessingParameterDateTime;
434 else if ( sipCpp->type() == QgsProcessingParameterProviderConnection::typeName() )
435 sipType = sipType_QgsProcessingParameterProviderConnection;
436 else if ( sipCpp->type() == QgsProcessingParameterDatabaseSchema::typeName() )
437 sipType = sipType_QgsProcessingParameterDatabaseSchema;
438 else if ( sipCpp->type() == QgsProcessingParameterDatabaseTable::typeName() )
439 sipType = sipType_QgsProcessingParameterDatabaseTable;
440 else if ( sipCpp->type() == QgsProcessingParameterFieldMapping::typeName() )
441 sipType = sipType_QgsProcessingParameterFieldMapping;
442 else if ( sipCpp->type() == QgsProcessingParameterTinInputLayers::typeName() )
443 sipType = sipType_QgsProcessingParameterTinInputLayers;
444 else if ( sipCpp->type() == QgsProcessingParameterVectorTileWriterLayers::typeName() )
445 sipType = sipType_QgsProcessingParameterVectorTileWriterLayers;
446 else if ( sipCpp->type() == QgsProcessingParameterDxfLayers::typeName() )
447 sipType = sipType_QgsProcessingParameterDxfLayers;
448 else if ( sipCpp->type() == QgsProcessingParameterMeshDatasetGroups::typeName() )
449 sipType = sipType_QgsProcessingParameterMeshDatasetGroups;
450 else if ( sipCpp->type() == QgsProcessingParameterMeshDatasetTime::typeName() )
451 sipType = sipType_QgsProcessingParameterMeshDatasetTime;
452 else if ( sipCpp->type() == QgsProcessingParameterPointCloudLayer::typeName() )
453 sipType = sipType_QgsProcessingParameterPointCloudLayer;
454 else if ( sipCpp->type() == QgsProcessingParameterAnnotationLayer::typeName() )
455 sipType = sipType_QgsProcessingParameterAnnotationLayer;
456 else if ( sipCpp->type() == QgsProcessingParameterPointCloudAttribute::typeName() )
457 sipType = sipType_QgsProcessingParameterPointCloudAttribute;
458 else if ( sipCpp->type() == QgsProcessingParameterVectorTileDestination::typeName() )
459 sipType = sipType_QgsProcessingParameterVectorTileDestination;
460 else
461 sipType = nullptr;
462 SIP_END
463#endif
464
465 public:
466
468 enum Flag
469 {
470 FlagAdvanced = 1 << 1,
471 FlagHidden = 1 << 2,
472 FlagOptional = 1 << 3,
473 FlagIsModelOutput = 1 << 4,
474 };
475 Q_DECLARE_FLAGS( Flags, Flag )
476
477
480 QgsProcessingParameterDefinition( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
481 bool optional = false, const QString &help = QString() );
482
484
489
493 virtual QString type() const = 0;
494
500 virtual bool isDestination() const { return false; }
501
507 QString name() const { return mName; }
508
514 void setName( const QString &name ) { mName = name; }
515
521 QString description() const { return mDescription; }
522
528 void setDescription( const QString &description ) { mDescription = description; }
529
539 QString help() const { return mHelp; }
540
550 void setHelp( const QString &help ) { mHelp = help; }
551
558 QVariant defaultValue() const { return mDefault; }
559
566 void setDefaultValue( const QVariant &value ) { mDefault = value; }
567
580 QVariant guiDefaultValueOverride() const { return mGuiDefault; }
581
597 void setGuiDefaultValueOverride( const QVariant &value ) { mGuiDefault = value; }
598
607 QVariant defaultValueForGui() const { return mGuiDefault.isValid() ? mGuiDefault : mDefault; }
608
613 Flags flags() const { return mFlags; }
614
619 void setFlags( Flags flags ) { mFlags = flags; }
620
628 virtual bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const;
629
637 virtual QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const;
638
650 virtual QVariant valueAsJsonObject( const QVariant &value, QgsProcessingContext &context ) const;
651
665 virtual QString valueAsString( const QVariant &value, QgsProcessingContext &context, bool &ok SIP_OUT ) const;
666
680 virtual QStringList valueAsStringList( const QVariant &value, QgsProcessingContext &context, bool &ok SIP_OUT ) const;
681
687 virtual QString valueAsPythonComment( const QVariant &value, QgsProcessingContext &context ) const;
688
693 virtual QString asScriptCode() const;
694
704 virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
705
711 virtual QVariantMap toVariantMap() const;
712
718 virtual bool fromVariantMap( const QVariantMap &map );
719
726 SIP_SKIP QVariantMap metadata() const { return mMetadata; }
727
733 QVariantMap &metadata() { return mMetadata; }
734
740 void setMetadata( const QVariantMap &metadata ) { mMetadata = metadata; }
741
746 virtual QStringList dependsOnOtherParameters() const { return QStringList(); }
747
754
760 QgsProcessingProvider *provider() const;
761
766 virtual QString toolTip() const;
767
775 bool isDynamic() const { return mIsDynamic; }
776
784 void setIsDynamic( bool dynamic ) { mIsDynamic = dynamic; }
785
792 QgsPropertyDefinition dynamicPropertyDefinition() const { return mPropertyDefinition; }
793
800 void setDynamicPropertyDefinition( const QgsPropertyDefinition &definition ) { mPropertyDefinition = definition; }
801
813 QString dynamicLayerParameterName() const { return mDynamicLayerParameterName; }
814
826 void setDynamicLayerParameterName( const QString &name ) { mDynamicLayerParameterName = name; }
827
841 QStringList additionalExpressionContextVariables() const { return mAdditionalExpressionVariables; }
842
860 void setAdditionalExpressionContextVariables( const QStringList &variables ) { mAdditionalExpressionVariables = variables; }
861
862#ifndef SIP_RUN
863
871 enum class ValueAsStringFlag : int
872 {
873 AllowMapLayerValues = 1 << 0,
874 };
875 Q_DECLARE_FLAGS( ValueAsStringFlags, ValueAsStringFlag )
876#endif
877
878 protected:
879
880#ifndef SIP_RUN
881
888 QString valueAsStringPrivate( const QVariant &value, QgsProcessingContext &context, bool &ok, ValueAsStringFlags flags ) const;
889
896 QVariant valueAsJsonObjectPrivate( const QVariant &value, QgsProcessingContext &context, ValueAsStringFlags flags ) const;
897#endif
898
900 QString mName;
901
904
906 QString mHelp;
907
909 QVariant mDefault;
910
912 QVariant mGuiDefault;
913
915 Flags mFlags;
916
918 QVariantMap mMetadata;
919
921 QgsProcessingAlgorithm *mAlgorithm = nullptr;
922
924 bool mIsDynamic = false;
925
928
931
934
935 // To allow access to mAlgorithm. We don't want a public setter for this!
937
938};
939
940Q_DECLARE_OPERATORS_FOR_FLAGS( QgsProcessingParameterDefinition::Flags )
941
942#ifndef SIP_RUN
943Q_DECLARE_OPERATORS_FOR_FLAGS( QgsProcessingParameterDefinition::ValueAsStringFlags )
944#endif
945
947typedef QList< const QgsProcessingParameterDefinition * > QgsProcessingParameterDefinitions;
948
967class CORE_EXPORT QgsProcessingParameters
968{
969
970 public:
971
976 static bool isDynamic( const QVariantMap &parameters, const QString &name );
977
981 static QString parameterAsString( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
982
987 static QString parameterAsString( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
988
992 static QString parameterAsExpression( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
993
998 static QString parameterAsExpression( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
999
1003 static double parameterAsDouble( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1004
1009 static double parameterAsDouble( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1010
1014 static int parameterAsInt( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1015
1020 static int parameterAsInt( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1021
1026 static QList<int> parameterAsInts( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1027
1032 static QList<int> parameterAsInts( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1033
1042 static QDateTime parameterAsDateTime( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1043
1052 static QDateTime parameterAsDateTime( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1053
1062 static QDate parameterAsDate( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1063
1072 static QDate parameterAsDate( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1073
1082 static QTime parameterAsTime( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1083
1092 static QTime parameterAsTime( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1093
1097 static int parameterAsEnum( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1098
1103 static int parameterAsEnum( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1104
1108 static QList<int> parameterAsEnums( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1109
1114 static QList<int> parameterAsEnums( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1115
1120 static QString parameterAsEnumString( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1121
1126 static QString parameterAsEnumString( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1127
1132 static QStringList parameterAsEnumStrings( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1133
1138 static QStringList parameterAsEnumStrings( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1139
1143 static bool parameterAsBool( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1144
1150 static bool parameterAsBoolean( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1151
1156 static bool parameterAsBool( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1157
1162 static bool parameterAsBoolean( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1163
1181 static QgsFeatureSink *parameterAsSink( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters,
1182 const QgsFields &fields, Qgis::WkbType geometryType, const QgsCoordinateReferenceSystem &crs,
1183 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;
1184
1204 static QgsFeatureSink *parameterAsSink( const QgsProcessingParameterDefinition *definition, const QVariant &value,
1205 const QgsFields &fields, Qgis::WkbType geometryType, const QgsCoordinateReferenceSystem &crs,
1206 QgsProcessingContext &context, QString &destinationIdentifier SIP_OUT, QgsFeatureSink::SinkFlags sinkFlags = QgsFeatureSink::SinkFlags(), const QVariantMap &createOptions = QVariantMap(), const QStringList &datasourceOptions = QStringList(), const QStringList &layerOptions = QStringList() ) SIP_THROW( QgsProcessingException ) SIP_FACTORY;
1207
1216 static QgsProcessingFeatureSource *parameterAsSource( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context ) SIP_FACTORY;
1217
1228 static QgsProcessingFeatureSource *parameterAsSource( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context ) SIP_FACTORY;
1229
1245 static QString parameterAsCompatibleSourceLayerPath( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters,
1246 QgsProcessingContext &context, const QStringList &compatibleFormats, const QString &preferredFormat = QString( "shp" ), QgsProcessingFeedback *feedback = nullptr );
1247
1277 static QString parameterAsCompatibleSourceLayerPathAndLayerName( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters,
1278 QgsProcessingContext &context, const QStringList &compatibleFormats, const QString &preferredFormat = QString( "shp" ), QgsProcessingFeedback *feedback = nullptr, QString *layerName SIP_OUT = nullptr );
1279
1287 static QgsMapLayer *parameterAsLayer( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingUtils::LayerHint layerHint = QgsProcessingUtils::LayerHint::UnknownType, QgsProcessing::LayerOptionsFlags flags = QgsProcessing::LayerOptionsFlags() );
1288
1298 static QgsMapLayer *parameterAsLayer( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context, QgsProcessingUtils::LayerHint layerHint = QgsProcessingUtils::LayerHint::UnknownType, QgsProcessing::LayerOptionsFlags flags = QgsProcessing::LayerOptionsFlags() );
1299
1307 static QgsRasterLayer *parameterAsRasterLayer( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1308
1318 static QgsRasterLayer *parameterAsRasterLayer( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1319
1323 static QString parameterAsOutputLayer( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1324
1329 static QString parameterAsOutputLayer( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1330
1334 static QString parameterAsFileOutput( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1335
1340 static QString parameterAsFileOutput( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1341
1349 static QgsVectorLayer *parameterAsVectorLayer( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1350
1360 static QgsVectorLayer *parameterAsVectorLayer( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1361
1371 static QgsMeshLayer *parameterAsMeshLayer( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1372
1382 static QgsMeshLayer *parameterAsMeshLayer( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1383
1387 static QgsCoordinateReferenceSystem parameterAsCrs( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1388
1393 static QgsCoordinateReferenceSystem parameterAsCrs( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1394
1404 static QgsRectangle parameterAsExtent( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context,
1406
1418 static QgsRectangle parameterAsExtent( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context,
1420
1432 static QgsGeometry parameterAsExtentGeometry( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context,
1434
1440 static QgsCoordinateReferenceSystem parameterAsExtentCrs( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1441
1447 static QgsCoordinateReferenceSystem parameterAsExtentCrs( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1448
1449
1457 static QgsPointXY parameterAsPoint( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context,
1459
1468 static QgsPointXY parameterAsPoint( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context,
1470
1476 static QgsCoordinateReferenceSystem parameterAsPointCrs( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1477
1484 static QgsCoordinateReferenceSystem parameterAsPointCrs( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1485
1491 static QgsGeometry parameterAsGeometry( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context, const QgsCoordinateReferenceSystem &crs = QgsCoordinateReferenceSystem() );
1492
1498 static QgsGeometry parameterAsGeometry( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context, const QgsCoordinateReferenceSystem &crs = QgsCoordinateReferenceSystem() );
1499
1506 static QgsCoordinateReferenceSystem parameterAsGeometryCrs( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1507
1514 static QgsCoordinateReferenceSystem parameterAsGeometryCrs( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1515
1519 static QString parameterAsFile( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1520
1525 static QString parameterAsFile( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1526
1531 static QVariantList parameterAsMatrix( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1532
1538 static QVariantList parameterAsMatrix( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1539
1544 static QList< QgsMapLayer *> parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags = QgsProcessing::LayerOptionsFlags() );
1545
1551 static QList< QgsMapLayer *> parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags = QgsProcessing::LayerOptionsFlags() );
1552
1558 static QStringList parameterAsFileList( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1559
1565 static QStringList parameterAsFileList( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1566
1570 static QList<double> parameterAsRange( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1571
1576 static QList<double> parameterAsRange( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1577
1583 Q_DECL_DEPRECATED static QStringList parameterAsFields( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context ) SIP_DEPRECATED;
1584
1591 Q_DECL_DEPRECATED static QStringList parameterAsFields( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context ) SIP_DEPRECATED;
1592
1598 static QStringList parameterAsStrings( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1599
1605 static QStringList parameterAsStrings( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1606
1615 static QgsPrintLayout *parameterAsLayout( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1616
1625 static QgsPrintLayout *parameterAsLayout( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1626
1635 static QgsLayoutItem *parameterAsLayoutItem( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context, QgsPrintLayout *layout );
1636
1645 static QgsLayoutItem *parameterAsLayoutItem( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context, QgsPrintLayout *layout );
1646
1652 static QColor parameterAsColor( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1653
1659 static QColor parameterAsColor( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1660
1666 static QString parameterAsConnectionName( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1667
1673 static QString parameterAsConnectionName( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1674
1680 static QString parameterAsSchema( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1681
1687 static QString parameterAsSchema( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1688
1694 static QString parameterAsDatabaseTableName( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
1695
1701 static QString parameterAsDatabaseTableName( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
1702
1713 static QgsPointCloudLayer *parameterAsPointCloudLayer( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags = QgsProcessing::LayerOptionsFlags() );
1714
1725 static QgsPointCloudLayer *parameterAsPointCloudLayer( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context, QgsProcessing::LayerOptionsFlags flags = QgsProcessing::LayerOptionsFlags() );
1726
1740 static QgsAnnotationLayer *parameterAsAnnotationLayer( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1741
1755 static QgsAnnotationLayer *parameterAsAnnotationLayer( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1756
1762 static QgsProcessingParameterDefinition *parameterFromVariantMap( const QVariantMap &map ) SIP_FACTORY;
1763
1767 static QString descriptionFromName( const QString &name );
1768
1774 static QgsProcessingParameterDefinition *parameterFromScriptCode( const QString &code ) SIP_FACTORY;
1775
1776 private:
1777
1778 static bool parseScriptCodeParameterOptions( const QString &code, bool &isOptional, QString &name, QString &type, QString &definition );
1779};
1780
1781
1782
1790{
1791 public:
1792
1796 QgsProcessingParameterBoolean( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
1797 bool optional = false );
1798
1802 static QString typeName() { return QStringLiteral( "boolean" ); }
1803 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1804 QString type() const override { return typeName(); }
1805 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1806 QString asScriptCode() const override;
1807
1811 static QgsProcessingParameterBoolean *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1812};
1813
1821{
1822 public:
1823
1827 QgsProcessingParameterCrs( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
1828 bool optional = false );
1829
1833 static QString typeName() { return QStringLiteral( "crs" ); }
1834 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1835 QString type() const override { return typeName(); }
1836 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1837 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1838 QString valueAsString( const QVariant &value, QgsProcessingContext &context, bool &ok SIP_OUT ) const override;
1839 QVariant valueAsJsonObject( const QVariant &value, QgsProcessingContext &context ) const override;
1840
1844 static QgsProcessingParameterCrs *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1845
1846};
1847
1855{
1856 public:
1857
1861 QgsProcessingParameterExtent( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
1862 bool optional = false );
1863
1867 static QString typeName() { return QStringLiteral( "extent" ); }
1868 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1869 QString type() const override { return typeName(); }
1870 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1871 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1872 QString valueAsString( const QVariant &value, QgsProcessingContext &context, bool &ok SIP_OUT ) const override;
1873 QVariant valueAsJsonObject( const QVariant &value, QgsProcessingContext &context ) const override;
1874
1878 static QgsProcessingParameterExtent *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1879
1880};
1881
1882
1890{
1891 public:
1892
1896 QgsProcessingParameterPoint( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
1897 bool optional = false );
1898
1902 static QString typeName() { return QStringLiteral( "point" ); }
1903 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1904 QString type() const override { return typeName(); }
1905 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1906 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1907
1911 static QgsProcessingParameterPoint *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1912
1913};
1914
1922{
1923 public:
1924
1932 QgsProcessingParameterGeometry( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(), bool optional = false, const QList< int > &geometryTypes = QList< int >(), bool allowMultipart = true );
1933
1937 static QString typeName() { return QStringLiteral( "geometry" ); }
1938 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1939 QString type() const override { return typeName(); }
1940 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1941 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1942 QString asScriptCode() const override;
1943 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
1944 QVariantMap toVariantMap() const override;
1945 bool fromVariantMap( const QVariantMap &map ) override;
1946
1951 QList<int> geometryTypes() const { return mGeomTypes; }
1952
1957 void setGeometryTypes( const QList<int> &geometryTypes ) { mGeomTypes = geometryTypes; }
1958
1963 bool allowMultipart() const { return mAllowMultipart; }
1964
1969 void setAllowMultipart( bool allowMultipart ) { mAllowMultipart = allowMultipart; }
1970
1971
1972
1976 static QgsProcessingParameterGeometry *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1977
1978 private:
1979
1980 QList<int> mGeomTypes;
1981 bool mAllowMultipart;
1982
1983};
1984
1992{
1993 public:
1994
1997 {
1998 File = 0,
2000 };
2001
2009 QgsProcessingParameterFile( const QString &name, const QString &description = QString(), Behavior behavior = File, const QString &extension = QString(), const QVariant &defaultValue = QVariant(),
2010 bool optional = false, const QString &fileFilter = QString() );
2011
2015 static QString typeName() { return QStringLiteral( "file" ); }
2016 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2017 QString type() const override { return typeName(); }
2018 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2019 QString asScriptCode() const override;
2020 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2021 QString createFileFilter() const override;
2022
2027 Behavior behavior() const { return mBehavior; }
2028
2033 void setBehavior( Behavior behavior ) { mBehavior = behavior; }
2034
2042 QString extension() const { return mExtension; }
2043
2053 void setExtension( const QString &extension );
2054
2061 QString fileFilter() const;
2062
2072 void setFileFilter( const QString &filter );
2073
2074 QVariantMap toVariantMap() const override;
2075 bool fromVariantMap( const QVariantMap &map ) override;
2076
2080 static QgsProcessingParameterFile *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition, Behavior behavior = File ) SIP_FACTORY;
2081
2082 private:
2083
2084 Behavior mBehavior = File;
2085 QString mExtension;
2086 QString mFileFilter;
2087};
2088
2096{
2097 public:
2098
2102 QgsProcessingParameterMatrix( const QString &name, const QString &description = QString(), int numberRows = 3,
2103 bool hasFixedNumberRows = false, const QStringList &headers = QStringList(),
2104 const QVariant &defaultValue = QVariant(),
2105 bool optional = false );
2106
2110 static QString typeName() { return QStringLiteral( "matrix" ); }
2111 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2112 QString type() const override { return typeName(); }
2113 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2114 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2115 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2116
2121 QStringList headers() const;
2122
2127 void setHeaders( const QStringList &headers );
2128
2135 int numberRows() const;
2136
2143 void setNumberRows( int rows );
2144
2150 bool hasFixedNumberRows() const;
2151
2157 void setHasFixedNumberRows( bool hasFixedNumberRows );
2158
2159 QVariantMap toVariantMap() const override;
2160 bool fromVariantMap( const QVariantMap &map ) override;
2161
2165 static QgsProcessingParameterMatrix *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2166
2167 private:
2168
2169 QStringList mHeaders;
2170 int mNumberRows = 3;
2171 bool mFixedNumberRows = false;
2172
2173};
2174
2182{
2183 public:
2184
2188 QgsProcessingParameterMultipleLayers( const QString &name, const QString &description = QString(), QgsProcessing::SourceType layerType = QgsProcessing::TypeVectorAnyGeometry,
2189 const QVariant &defaultValue = QVariant(),
2190 bool optional = false );
2191
2195 static QString typeName() { return QStringLiteral( "multilayer" ); }
2196 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2197 QString type() const override { return typeName(); }
2198 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2199 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2200 QString valueAsString( const QVariant &value, QgsProcessingContext &context, bool &ok SIP_OUT ) const override;
2201 QVariant valueAsJsonObject( const QVariant &value, QgsProcessingContext &context ) const override;
2202 QString asScriptCode() const override;
2203 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2204 QString createFileFilter() const override;
2205
2210 QgsProcessing::SourceType layerType() const;
2211
2216 void setLayerType( QgsProcessing::SourceType type );
2217
2223 int minimumNumberInputs() const;
2224
2230 void setMinimumNumberInputs( int minimum );
2231
2232 QVariantMap toVariantMap() const override;
2233 bool fromVariantMap( const QVariantMap &map ) override;
2234
2238 static QgsProcessingParameterMultipleLayers *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2239
2240 private:
2241
2243 int mMinimumNumberInputs = 0;
2244
2245};
2246
2266{
2267 public:
2268
2270 enum Type
2271 {
2274 };
2275
2279 explicit QgsProcessingParameterNumber( const QString &name, const QString &description = QString(),
2280 Type type = Integer,
2281 const QVariant &defaultValue = QVariant(),
2282 bool optional = false,
2283 double minValue = std::numeric_limits<double>::lowest() + 1,
2284 double maxValue = std::numeric_limits<double>::max()
2285 );
2286
2290 static QString typeName() { return QStringLiteral( "number" ); }
2291 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2292 QString type() const override { return typeName(); }
2293 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2294 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2295 QString toolTip() const override;
2296 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2297
2302 double minimum() const;
2303
2308 void setMinimum( double minimum );
2309
2314 double maximum() const;
2315
2320 void setMaximum( double maximum );
2321
2326 Type dataType() const;
2327
2332 void setDataType( Type type );
2333
2334 QVariantMap toVariantMap() const override;
2335 bool fromVariantMap( const QVariantMap &map ) override;
2336
2340 static QgsProcessingParameterNumber *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2341
2342 private:
2343
2344 double mMin = std::numeric_limits<double>::lowest() + 1;
2345 double mMax = std::numeric_limits<double>::max();
2346 Type mDataType = Integer;
2347};
2348
2369{
2370 public:
2371
2375 explicit QgsProcessingParameterDistance( const QString &name, const QString &description = QString(),
2376 const QVariant &defaultValue = QVariant(),
2377 const QString &parentParameterName = QString(),
2378 bool optional = false,
2379 double minValue = std::numeric_limits<double>::lowest() + 1,
2380 double maxValue = std::numeric_limits<double>::max() );
2381
2385 static QString typeName() { return QStringLiteral( "distance" ); }
2386
2387 QgsProcessingParameterDistance *clone() const override SIP_FACTORY;
2388
2389 QString type() const override;
2390 QStringList dependsOnOtherParameters() const override;
2391 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2392
2397 QString parentParameterName() const;
2398
2403 void setParentParameterName( const QString &parentParameterName );
2404
2411 Qgis::DistanceUnit defaultUnit() const { return mDefaultUnit; }
2412
2419 void setDefaultUnit( Qgis::DistanceUnit unit ) { mDefaultUnit = unit; }
2420
2421 QVariantMap toVariantMap() const override;
2422 bool fromVariantMap( const QVariantMap &map ) override;
2423
2424 private:
2425
2426 QString mParentParameterName;
2427 Qgis::DistanceUnit mDefaultUnit = Qgis::DistanceUnit::Unknown;
2428
2429};
2430
2439{
2440 public:
2441
2445 explicit QgsProcessingParameterDuration( const QString &name, const QString &description = QString(),
2446 const QVariant &defaultValue = QVariant(),
2447 bool optional = false,
2448 double minValue = std::numeric_limits<double>::lowest() + 1,
2449 double maxValue = std::numeric_limits<double>::max() );
2450
2454 static QString typeName() { return QStringLiteral( "duration" ); }
2455
2456 QgsProcessingParameterDuration *clone() const override SIP_FACTORY;
2457
2458 QString type() const override;
2459 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2460
2466 Qgis::TemporalUnit defaultUnit() const { return mDefaultUnit; }
2467
2473 void setDefaultUnit( Qgis::TemporalUnit unit ) { mDefaultUnit = unit; }
2474
2475 QVariantMap toVariantMap() const override;
2476 bool fromVariantMap( const QVariantMap &map ) override;
2477
2478 private:
2479
2480 Qgis::TemporalUnit mDefaultUnit = Qgis::TemporalUnit::Milliseconds;
2481
2482};
2483
2495{
2496 public:
2497
2501 explicit QgsProcessingParameterScale( const QString &name, const QString &description = QString(),
2502 const QVariant &defaultValue = QVariant(),
2503 bool optional = false );
2504
2508 static QString typeName() { return QStringLiteral( "scale" ); }
2509
2510 QgsProcessingParameterScale *clone() const override SIP_FACTORY;
2511
2512 QString type() const override;
2513 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2514
2518 static QgsProcessingParameterScale *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2519
2520};
2521
2529{
2530 public:
2531
2535 QgsProcessingParameterRange( const QString &name, const QString &description = QString(),
2537 const QVariant &defaultValue = QVariant(),
2538 bool optional = false );
2539
2543 static QString typeName() { return QStringLiteral( "range" ); }
2544 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2545 QString type() const override { return typeName(); }
2546 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2547 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2548 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2549
2554 QgsProcessingParameterNumber::Type dataType() const;
2555
2560 void setDataType( QgsProcessingParameterNumber::Type dataType );
2561
2562 QVariantMap toVariantMap() const override;
2563 bool fromVariantMap( const QVariantMap &map ) override;
2564
2568 static QgsProcessingParameterRange *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2569
2570 private:
2571
2573};
2574
2582{
2583 public:
2584
2588 QgsProcessingParameterRasterLayer( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
2589 bool optional = false );
2590
2594 static QString typeName() { return QStringLiteral( "raster" ); }
2595 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2596 QString type() const override { return typeName(); }
2597 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2598 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2599 QString valueAsString( const QVariant &value, QgsProcessingContext &context, bool &ok SIP_OUT ) const override;
2600 QVariant valueAsJsonObject( const QVariant &value, QgsProcessingContext &context ) const override;
2601 QString createFileFilter() const override;
2602
2606 static QgsProcessingParameterRasterLayer *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2607
2608};
2609
2629{
2630 public:
2631
2635 QgsProcessingParameterEnum( const QString &name, const QString &description = QString(), const QStringList &options = QStringList(),
2636 bool allowMultiple = false,
2637 const QVariant &defaultValue = QVariant(),
2638 bool optional = false,
2639 bool usesStaticStrings = false );
2640
2644 static QString typeName() { return QStringLiteral( "enum" ); }
2645 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2646 QString type() const override { return typeName(); }
2647 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2648 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2649 QString valueAsPythonComment( const QVariant &value, QgsProcessingContext &context ) const override;
2650 QString asScriptCode() const override;
2651 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2652
2657 QStringList options() const;
2658
2663 void setOptions( const QStringList &options );
2664
2669 bool allowMultiple() const;
2670
2675 void setAllowMultiple( bool allowMultiple );
2676
2683 bool usesStaticStrings() const;
2684
2691 void setUsesStaticStrings( bool usesStaticStrings );
2692
2693 QVariantMap toVariantMap() const override;
2694 bool fromVariantMap( const QVariantMap &map ) override;
2695
2699 static QgsProcessingParameterEnum *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2700
2701 private:
2702
2703 QStringList mOptions;
2704 bool mAllowMultiple = false;
2705 bool mUsesStaticStrings = false;
2706};
2707
2736{
2737 public:
2738
2742 QgsProcessingParameterString( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
2743 bool multiLine = false,
2744 bool optional = false );
2745
2749 static QString typeName() { return QStringLiteral( "string" ); }
2750 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2751 QString type() const override { return typeName(); }
2752 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2753 QString asScriptCode() const override;
2754 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2755
2760 bool multiLine() const;
2761
2766 void setMultiLine( bool multiLine );
2767
2768 QVariantMap toVariantMap() const override;
2769 bool fromVariantMap( const QVariantMap &map ) override;
2770
2774 static QgsProcessingParameterString *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2775
2776 private:
2777
2778 bool mMultiLine = false;
2779
2780};
2781
2782
2796{
2797 public:
2798
2802 QgsProcessingParameterAuthConfig( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
2803 bool optional = false );
2804
2808 static QString typeName() { return QStringLiteral( "authcfg" ); }
2809 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2810 QString type() const override { return typeName(); }
2811 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2812 QString asScriptCode() const override;
2813
2817 static QgsProcessingParameterAuthConfig *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2818
2819};
2820
2828{
2829 public:
2830
2834 QgsProcessingParameterExpression( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
2835 const QString &parentLayerParameterName = QString(),
2836 bool optional = false, Qgis::ExpressionType type = Qgis::ExpressionType::Qgis );
2837
2841 static QString typeName() { return QStringLiteral( "expression" ); }
2842 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2843 QString type() const override { return typeName(); }
2844 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2845 QStringList dependsOnOtherParameters() const override;
2846 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2847
2852 QString parentLayerParameterName() const;
2853
2858 void setParentLayerParameterName( const QString &parentLayerParameterName );
2859
2866 Qgis::ExpressionType expressionType() const;
2867
2874 void setExpressionType( Qgis::ExpressionType type );
2875
2876 QVariantMap toVariantMap() const override;
2877 bool fromVariantMap( const QVariantMap &map ) override;
2878
2882 static QgsProcessingParameterExpression *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2883
2884 private:
2885
2886 QString mParentLayerParameterName;
2888};
2889
2890
2898{
2899 public:
2900
2904 QgsProcessingParameterLimitedDataTypes( const QList< int > &types = QList< int >() );
2905
2910 QList< int > dataTypes() const;
2911
2916 void setDataTypes( const QList< int > &types );
2917
2918 protected:
2919
2921 QList< int > mDataTypes;
2922};
2923
2932{
2933 public:
2934
2938 QgsProcessingParameterVectorLayer( const QString &name,
2939 const QString &description = QString(),
2940 const QList< int > &types = QList< int >(),
2941 const QVariant &defaultValue = QVariant(),
2942 bool optional = false );
2943
2947 static QString typeName() { return QStringLiteral( "vector" ); }
2948 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2949 QString type() const override { return typeName(); }
2950 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2951 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2952 QString valueAsString( const QVariant &value, QgsProcessingContext &context, bool &ok SIP_OUT ) const override;
2953 QVariant valueAsJsonObject( const QVariant &value, QgsProcessingContext &context ) const override;
2954 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
2955 QString createFileFilter() const override;
2956
2957 QVariantMap toVariantMap() const override;
2958 bool fromVariantMap( const QVariantMap &map ) override;
2959
2963 static QgsProcessingParameterVectorLayer *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2964
2965};
2966
2974{
2975 public:
2976
2980 QgsProcessingParameterMeshLayer( const QString &name,
2981 const QString &description = QString(),
2982 const QVariant &defaultValue = QVariant(),
2983 bool optional = false );
2984
2988 static QString typeName() { return QStringLiteral( "mesh" ); }
2989 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2990 QString type() const override { return typeName(); }
2991 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2992 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2993 QString valueAsString( const QVariant &value, QgsProcessingContext &context, bool &ok SIP_OUT ) const override;
2994 QVariant valueAsJsonObject( const QVariant &value, QgsProcessingContext &context ) const override;
2995 QString createFileFilter() const override;
2996
3000 static QgsProcessingParameterMeshLayer *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3001};
3002
3010{
3011 public:
3012
3016 QgsProcessingParameterMapLayer( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
3017 bool optional = false,
3018 const QList< int > &types = QList< int >() );
3019
3023 static QString typeName() { return QStringLiteral( "layer" ); }
3024 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3025 QString type() const override { return typeName(); }
3026 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
3027 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3028 QString valueAsString( const QVariant &value, QgsProcessingContext &context, bool &ok SIP_OUT ) const override;
3029 QVariant valueAsJsonObject( const QVariant &value, QgsProcessingContext &context ) const override;
3030 QString asScriptCode() const override;
3031 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3032 QString createFileFilter() const override;
3033
3034 QVariantMap toVariantMap() const override;
3035 bool fromVariantMap( const QVariantMap &map ) override;
3036
3040 static QgsProcessingParameterMapLayer *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3041
3042};
3043
3051{
3052 public:
3053
3056 {
3057 Any = -1,
3058 Numeric = 0,
3059 String = 1,
3060 DateTime = 2
3062
3066 QgsProcessingParameterField( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
3067 const QString &parentLayerParameterName = QString(),
3068 DataType type = Any,
3069 bool allowMultiple = false,
3070 bool optional = false,
3071 bool defaultToAllFields = false );
3072
3076 static QString typeName() { return QStringLiteral( "field" ); }
3077 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3078 QString type() const override { return typeName(); }
3079 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
3080 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3081 QString asScriptCode() const override;
3082 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3083 QStringList dependsOnOtherParameters() const override;
3084
3089 QString parentLayerParameterName() const;
3090
3095 void setParentLayerParameterName( const QString &parentLayerParameterName );
3096
3101 DataType dataType() const;
3102
3107 void setDataType( DataType type );
3108
3113 bool allowMultiple() const;
3114
3119 void setAllowMultiple( bool allowMultiple );
3120
3130 bool defaultToAllFields() const;
3131
3141 void setDefaultToAllFields( bool enabled );
3142
3143 QVariantMap toVariantMap() const override;
3144 bool fromVariantMap( const QVariantMap &map ) override;
3145
3149 static QgsProcessingParameterField *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3150
3151 private:
3152
3153 QString mParentLayerParameterName;
3154 DataType mDataType = Any;
3155 bool mAllowMultiple = false;
3156 bool mDefaultToAllFields = false;
3157
3158};
3159
3160
3168{
3169 public:
3170
3174 QgsProcessingParameterFeatureSource( const QString &name, const QString &description = QString(),
3175 const QList< int > &types = QList< int >(),
3176 const QVariant &defaultValue = QVariant(), bool optional = false );
3177
3181 static QString typeName() { return QStringLiteral( "source" ); }
3182 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3183 QString type() const override { return typeName(); }
3184 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
3185 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3186 QString valueAsString( const QVariant &value, QgsProcessingContext &context, bool &ok SIP_OUT ) const override;
3187 QVariant valueAsJsonObject( const QVariant &value, QgsProcessingContext &context ) const override;
3188 QString asScriptCode() const override;
3189 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3190 QString createFileFilter() const override;
3191
3192 QVariantMap toVariantMap() const override;
3193 bool fromVariantMap( const QVariantMap &map ) override;
3194
3198 static QgsProcessingParameterFeatureSource *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3199
3200};
3201
3210{
3211 public:
3212
3219 QgsProcessingDestinationParameter( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
3220 bool optional = false, bool createByDefault = true );
3221
3222 bool isDestination() const override { return true; }
3223 QVariantMap toVariantMap() const override;
3224 bool fromVariantMap( const QVariantMap &map ) override;
3225 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3226 QString createFileFilter() const override;
3227
3233
3239 bool supportsNonFileBasedOutput() const { return mSupportsNonFileBasedOutputs; }
3240
3246 void setSupportsNonFileBasedOutput( bool supportsNonFileBasedOutput ) { mSupportsNonFileBasedOutputs = supportsNonFileBasedOutput; }
3247
3252 virtual QString defaultFileExtension() const = 0;
3253
3259 virtual QString generateTemporaryDestination( const QgsProcessingContext *context = nullptr ) const;
3260
3275 virtual bool isSupportedOutputValue( const QVariant &value, QgsProcessingContext &context, QString &error SIP_OUT ) const;
3276
3282 bool createByDefault() const;
3283
3289 void setCreateByDefault( bool createByDefault );
3290
3291 protected:
3292
3301 QgsProcessingProvider *originalProvider() const { return mOriginalProvider; }
3302
3303 private:
3304
3312 QgsProcessingProvider *mOriginalProvider = nullptr;
3313
3314 bool mSupportsNonFileBasedOutputs = true;
3315 bool mCreateByDefault = true;
3316
3317 friend class QgsProcessingModelAlgorithm;
3318 friend class TestQgsProcessing;
3319 friend class TestQgsProcessingModelAlgorithm;
3320};
3321
3322
3332{
3333 public:
3334
3341 QgsProcessingParameterFeatureSink( const QString &name, const QString &description = QString(), QgsProcessing::SourceType type = QgsProcessing::TypeVectorAnyGeometry, const QVariant &defaultValue = QVariant(),
3342 bool optional = false, bool createByDefault = true, bool supportsAppend = false );
3343
3347 static QString typeName() { return QStringLiteral( "sink" ); }
3348 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3349 QString type() const override { return typeName(); }
3350 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
3351 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3352 QString asScriptCode() const override;
3353 QgsProcessingOutputDefinition *toOutputDefinition() const override SIP_FACTORY;
3354 QString defaultFileExtension() const override;
3355 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3356 QString createFileFilter() const override;
3357
3363 virtual QStringList supportedOutputVectorLayerExtensions() const;
3364
3369 QgsProcessing::SourceType dataType() const;
3370
3375 bool hasGeometry() const;
3376
3381 void setDataType( QgsProcessing::SourceType type );
3382
3391 bool supportsAppend() const;
3392
3401 void setSupportsAppend( bool supportsAppend );
3402
3403 QVariantMap toVariantMap() const override;
3404 bool fromVariantMap( const QVariantMap &map ) override;
3405 QString generateTemporaryDestination( const QgsProcessingContext *context = nullptr ) const override;
3406
3410 static QgsProcessingParameterFeatureSink *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3411
3412 private:
3413
3414 QgsProcessing::SourceType mDataType = QgsProcessing::TypeVectorAnyGeometry;
3415 bool mSupportsAppend = false;
3416};
3417
3418
3430{
3431 public:
3432
3439 QgsProcessingParameterVectorDestination( const QString &name, const QString &description = QString(), QgsProcessing::SourceType type = QgsProcessing::TypeVectorAnyGeometry, const QVariant &defaultValue = QVariant(),
3440 bool optional = false, bool createByDefault = true );
3441
3445 static QString typeName() { return QStringLiteral( "vectorDestination" ); }
3446 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3447 QString type() const override { return typeName(); }
3448 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
3449 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3450 QString asScriptCode() const override;
3451 QgsProcessingOutputDefinition *toOutputDefinition() const override SIP_FACTORY;
3452 QString defaultFileExtension() const override;
3453 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3454 QString createFileFilter() const override;
3455
3461 virtual QStringList supportedOutputVectorLayerExtensions() const;
3462
3467 QgsProcessing::SourceType dataType() const;
3468
3473 bool hasGeometry() const;
3474
3479 void setDataType( QgsProcessing::SourceType type );
3480
3481 QVariantMap toVariantMap() const override;
3482 bool fromVariantMap( const QVariantMap &map ) override;
3483
3487 static QgsProcessingParameterVectorDestination *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3488
3489
3490 private:
3491
3492 QgsProcessing::SourceType mDataType = QgsProcessing::TypeVectorAnyGeometry;
3493};
3494
3503{
3504 public:
3505
3512 QgsProcessingParameterRasterDestination( const QString &name, const QString &description = QString(),
3513 const QVariant &defaultValue = QVariant(),
3514 bool optional = false,
3515 bool createByDefault = true );
3516
3520 static QString typeName() { return QStringLiteral( "rasterDestination" ); }
3521 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3522 QString type() const override { return typeName(); }
3523 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
3524 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3525 QgsProcessingOutputDefinition *toOutputDefinition() const override SIP_FACTORY;
3526 QString defaultFileExtension() const override;
3527 QString createFileFilter() const override;
3528
3534 virtual QStringList supportedOutputRasterLayerExtensions() const;
3535
3539 static QgsProcessingParameterRasterDestination *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3540};
3541
3564{
3565 public:
3566
3573 QgsProcessingParameterFileDestination( const QString &name, const QString &description = QString(),
3574 const QString &fileFilter = QString(),
3575 const QVariant &defaultValue = QVariant(),
3576 bool optional = false,
3577 bool createByDefault = true );
3578
3582 static QString typeName() { return QStringLiteral( "fileDestination" ); }
3583 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3584 QString type() const override { return typeName(); }
3585 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
3586 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3587 QgsProcessingOutputDefinition *toOutputDefinition() const override SIP_FACTORY;
3588 QString defaultFileExtension() const override;
3589 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3590 QString createFileFilter() const override;
3591
3596 QString fileFilter() const;
3597
3602 void setFileFilter( const QString &filter );
3603
3604 QVariantMap toVariantMap() const override;
3605 bool fromVariantMap( const QVariantMap &map ) override;
3606
3610 static QgsProcessingParameterFileDestination *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3611
3612
3613 private:
3614
3615 QString mFileFilter;
3616};
3617
3626{
3627 public:
3628
3632 QgsProcessingParameterFolderDestination( const QString &name, const QString &description = QString(),
3633 const QVariant &defaultValue = QVariant(),
3634 bool optional = false,
3635 bool createByDefault = true );
3636
3640 static QString typeName() { return QStringLiteral( "folderDestination" ); }
3641 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3642 QString type() const override { return typeName(); }
3643 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
3644 QgsProcessingOutputDefinition *toOutputDefinition() const override SIP_FACTORY;
3645 QString defaultFileExtension() const override;
3646
3650 static QgsProcessingParameterFolderDestination *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3651
3652};
3653
3661{
3662 public:
3663
3667 QgsProcessingParameterBand( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
3668 const QString &parentLayerParameterName = QString(),
3669 bool optional = false,
3670 bool allowMultiple = false );
3671
3675 static QString typeName() { return QStringLiteral( "band" ); }
3676 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3677 QString type() const override { return typeName(); }
3678 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
3679 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3680 QString asScriptCode() const override;
3681 QStringList dependsOnOtherParameters() const override;
3682 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3683
3688 QString parentLayerParameterName() const;
3689
3694 void setParentLayerParameterName( const QString &parentLayerParameterName );
3695
3696 QVariantMap toVariantMap() const override;
3697 bool fromVariantMap( const QVariantMap &map ) override;
3698
3702 static QgsProcessingParameterBand *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3703
3709 bool allowMultiple() const;
3710
3716 void setAllowMultiple( bool allowMultiple );
3717
3718 private:
3719
3720 QString mParentLayerParameterName;
3721 bool mAllowMultiple = false;
3722};
3723
3736{
3737 public:
3738
3742 QgsProcessingParameterLayout( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
3743 bool optional = false );
3744
3748 static QString typeName() { return QStringLiteral( "layout" ); }
3749 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3750 QString type() const override { return typeName(); }
3751 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3752 QString asScriptCode() const override;
3753 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3754
3758 static QgsProcessingParameterLayout *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3759
3760};
3761
3774{
3775 public:
3776
3780 QgsProcessingParameterLayoutItem( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
3781 const QString &parentLayoutParameterName = QString(),
3782 int itemType = -1,
3783 bool optional = false );
3784
3788 static QString typeName() { return QStringLiteral( "layoutitem" ); }
3789 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3790 QString type() const override { return typeName(); }
3791 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3792 QString asScriptCode() const override;
3793 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3794 QVariantMap toVariantMap() const override;
3795 bool fromVariantMap( const QVariantMap &map ) override;
3796 QStringList dependsOnOtherParameters() const override;
3797
3801 static QgsProcessingParameterLayoutItem *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3802
3807 QString parentLayoutParameterName() const;
3808
3813 void setParentLayoutParameterName( const QString &name );
3814
3822 int itemType() const;
3823
3831 void setItemType( int type );
3832
3833 private:
3834 QString mParentLayoutParameterName;
3835 int mItemType = -1;
3836};
3837
3848{
3849 public:
3850
3856 QgsProcessingParameterColor( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
3857 bool opacityEnabled = true,
3858 bool optional = false );
3859
3863 static QString typeName() { return QStringLiteral( "color" ); }
3864 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3865 QString type() const override { return typeName(); }
3866 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3867 QString asScriptCode() const override;
3868 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3869 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
3870 QVariantMap toVariantMap() const override;
3871 bool fromVariantMap( const QVariantMap &map ) override;
3872
3879 bool opacityEnabled() const;
3880
3888 void setOpacityEnabled( bool enabled );
3889
3893 static QgsProcessingParameterColor *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3894
3895 private:
3896
3897 bool mAllowOpacity = true;
3898
3899};
3900
3901
3912{
3913 public:
3914
3918 QgsProcessingParameterCoordinateOperation( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
3919 const QString &sourceCrsParameterName = QString(), const QString &destinationCrsParameterName = QString(),
3920 const QVariant &staticSourceCrs = QVariant(), const QVariant &staticDestinationCrs = QVariant(),
3921 bool optional = false );
3922
3926 static QString typeName() { return QStringLiteral( "coordinateoperation" ); }
3927 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3928 QString type() const override { return typeName(); }
3929 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3930 QString asScriptCode() const override;
3931 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
3932 QStringList dependsOnOtherParameters() const override;
3933
3934 QVariantMap toVariantMap() const override;
3935 bool fromVariantMap( const QVariantMap &map ) override;
3936
3940 static QgsProcessingParameterCoordinateOperation *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3941
3947 QString sourceCrsParameterName() const { return mSourceParameterName; }
3948
3954 void setSourceCrsParameterName( const QString &name ) { mSourceParameterName = name; }
3955
3961 QString destinationCrsParameterName() const { return mDestParameterName; }
3962
3968 void setDestinationCrsParameterName( const QString &name ) { mDestParameterName = name; }
3969
3975 QVariant sourceCrs() const { return mSourceCrs; }
3976
3982 void setSourceCrs( const QVariant &crs ) { mSourceCrs = crs; }
3983
3989 QVariant destinationCrs() const { return mDestCrs; }
3990
3996 void setDestinationCrs( const QVariant &crs ) { mDestCrs = crs; }
3997
3998 private:
3999
4000 QString mSourceParameterName;
4001 QString mDestParameterName;
4002 QVariant mSourceCrs;
4003 QVariant mDestCrs;
4004
4005};
4006
4007
4018{
4019 public:
4020
4024 QgsProcessingParameterMapTheme( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
4025 bool optional = false );
4026
4030 static QString typeName() { return QStringLiteral( "maptheme" ); }
4031 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
4032 QString type() const override { return typeName(); }
4033 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
4034 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
4035 QString asScriptCode() const override;
4036 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
4037 QVariantMap toVariantMap() const override;
4038 bool fromVariantMap( const QVariantMap &map ) override;
4039
4043 static QgsProcessingParameterMapTheme *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
4044
4045 private:
4046
4047};
4048
4049
4061{
4062 public:
4063
4065 enum Type
4066 {
4070 };
4071
4075 explicit QgsProcessingParameterDateTime( const QString &name, const QString &description = QString(),
4076 Type type = DateTime,
4077 const QVariant &defaultValue = QVariant(),
4078 bool optional = false,
4079 const QDateTime &minValue = QDateTime(),
4080 const QDateTime &maxValue = QDateTime()
4081 );
4082
4086 static QString typeName() { return QStringLiteral( "datetime" ); }
4087 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
4088 QString type() const override { return typeName(); }
4089 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
4090 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
4091 QString toolTip() const override;
4092 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
4093
4101 QDateTime minimum() const;
4102
4114 void setMinimum( const QDateTime &minimum );
4115
4123 QDateTime maximum() const;
4124
4136 void setMaximum( const QDateTime &maximum );
4137
4142 Type dataType() const;
4143
4148 void setDataType( Type type );
4149
4150 QVariantMap toVariantMap() const override;
4151 bool fromVariantMap( const QVariantMap &map ) override;
4152
4156 static QgsProcessingParameterDateTime *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
4157
4158 private:
4159
4160 QDateTime mMin;
4161 QDateTime mMax;
4162 Type mDataType = DateTime;
4163};
4164
4165
4177{
4178 public:
4179
4186 QgsProcessingParameterProviderConnection( const QString &name, const QString &description, const QString &provider, const QVariant &defaultValue = QVariant(),
4187 bool optional = false );
4188
4192 static QString typeName() { return QStringLiteral( "providerconnection" ); }
4193 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
4194 QString type() const override { return typeName(); }
4195 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
4196 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
4197 QString asScriptCode() const override;
4198 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
4199 QVariantMap toVariantMap() const override;
4200 bool fromVariantMap( const QVariantMap &map ) override;
4201
4206 QString providerId() const { return mProviderId; }
4207
4212 void setProviderId( const QString &provider ) { mProviderId = provider; }
4213
4217 static QgsProcessingParameterProviderConnection *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
4218
4219 private:
4220
4221 QString mProviderId;
4222};
4223
4224
4236{
4237 public:
4238
4247 QgsProcessingParameterDatabaseSchema( const QString &name, const QString &description, const QString &connectionParameterName = QString(), const QVariant &defaultValue = QVariant(),
4248 bool optional = false );
4249
4253 static QString typeName() { return QStringLiteral( "databaseschema" ); }
4254 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
4255 QString type() const override { return typeName(); }
4256 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
4257 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
4258 QString asScriptCode() const override;
4259 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
4260 QVariantMap toVariantMap() const override;
4261 bool fromVariantMap( const QVariantMap &map ) override;
4262 QStringList dependsOnOtherParameters() const override;
4263
4268 QString parentConnectionParameterName() const;
4269
4274 void setParentConnectionParameterName( const QString &name );
4275
4279 static QgsProcessingParameterDatabaseSchema *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
4280
4281 private:
4282
4283 QString mParentConnectionParameterName;
4284};
4285
4286
4298{
4299 public:
4300
4310 QgsProcessingParameterDatabaseTable( const QString &name, const QString &description,
4311 const QString &connectionParameterName = QString(),
4312 const QString &schemaParameterName = QString(),
4313 const QVariant &defaultValue = QVariant(),
4314 bool optional = false,
4315 bool allowNewTableNames = false );
4316
4320 static QString typeName() { return QStringLiteral( "databasetable" ); }
4321 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
4322 QString type() const override { return typeName(); }
4323 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
4324 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
4325 QString asScriptCode() const override;
4326 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
4327 QVariantMap toVariantMap() const override;
4328 bool fromVariantMap( const QVariantMap &map ) override;
4329 QStringList dependsOnOtherParameters() const override;
4330
4335 QString parentConnectionParameterName() const;
4336
4341 void setParentConnectionParameterName( const QString &name );
4342
4347 QString parentSchemaParameterName() const;
4348
4353 void setParentSchemaParameterName( const QString &name );
4354
4358 static QgsProcessingParameterDatabaseTable *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
4359
4366 bool allowNewTableNames() const;
4367
4374 void setAllowNewTableNames( bool allowed );
4375
4376 private:
4377
4378 QString mParentConnectionParameterName;
4379 QString mParentSchemaParameterName;
4380 bool mAllowNewTableNames = false;
4381};
4382
4383
4391{
4392 public:
4393
4397 QgsProcessingParameterPointCloudLayer( const QString &name, const QString &description = QString(),
4398 const QVariant &defaultValue = QVariant(), bool optional = false );
4399
4403 static QString typeName() { return QStringLiteral( "pointcloud" ); }
4404 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
4405 QString type() const override { return typeName(); }
4406 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
4407 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
4408 QString valueAsString( const QVariant &value, QgsProcessingContext &context, bool &ok SIP_OUT ) const override;
4409 QVariant valueAsJsonObject( const QVariant &value, QgsProcessingContext &context ) const override;
4410 QString createFileFilter() const override;
4411
4415 static QgsProcessingParameterPointCloudLayer *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
4416};
4417
4418
4426{
4427 public:
4428
4432 QgsProcessingParameterAnnotationLayer( const QString &name, const QString &description = QString(),
4433 const QVariant &defaultValue = QVariant(), bool optional = false );
4434
4438 static QString typeName() { return QStringLiteral( "annotation" ); }
4439 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
4440 QString type() const override { return typeName(); }
4441 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
4442 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
4443 QString valueAsString( const QVariant &value, QgsProcessingContext &context, bool &ok SIP_OUT ) const override;
4444 QVariant valueAsJsonObject( const QVariant &value, QgsProcessingContext &context ) const override;
4445
4449 static QgsProcessingParameterAnnotationLayer *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
4450};
4451
4460{
4461 public:
4462
4469 QgsProcessingParameterPointCloudDestination( const QString &name, const QString &description = QString(),
4470 const QVariant &defaultValue = QVariant(),
4471 bool optional = false,
4472 bool createByDefault = true );
4473
4477 static QString typeName() { return QStringLiteral( "pointCloudDestination" ); }
4478 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
4479 QString type() const override { return typeName(); }
4480 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
4481 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
4482 QgsProcessingOutputDefinition *toOutputDefinition() const override SIP_FACTORY;
4483 QString defaultFileExtension() const override;
4484 QString createFileFilter() const override;
4485
4490 virtual QStringList supportedOutputPointCloudLayerExtensions() const;
4491
4495 static QgsProcessingParameterPointCloudDestination *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
4496};
4497
4505{
4506 public:
4507
4511 QgsProcessingParameterPointCloudAttribute( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
4512 const QString &parentLayerParameterName = QString(),
4513 bool allowMultiple = false,
4514 bool optional = false,
4515 bool defaultToAllAttributes = false );
4516
4520 static QString typeName() { return QStringLiteral( "attribute" ); }
4521 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
4522 QString type() const override { return typeName(); }
4523 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
4524 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
4525 QString asScriptCode() const override;
4526 QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const override;
4527 QStringList dependsOnOtherParameters() const override;
4528
4533 QString parentLayerParameterName() const;
4534
4539 void setParentLayerParameterName( const QString &parentLayerParameterName );
4540
4545 bool allowMultiple() const;
4546
4551 void setAllowMultiple( bool allowMultiple );
4552
4561 bool defaultToAllAttributes() const;
4562
4571 void setDefaultToAllAttributes( bool enabled );
4572
4573 QVariantMap toVariantMap() const override;
4574 bool fromVariantMap( const QVariantMap &map ) override;
4575
4579 static QgsProcessingParameterPointCloudAttribute *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
4580
4581 private:
4582
4583 QString mParentLayerParameterName;
4584 bool mAllowMultiple = false;
4585 bool mDefaultToAllAttributes = false;
4586};
4587
4596{
4597 public:
4598
4605 QgsProcessingParameterVectorTileDestination( const QString &name, const QString &description = QString(),
4606 const QVariant &defaultValue = QVariant(),
4607 bool optional = false,
4608 bool createByDefault = true );
4609
4613 static QString typeName() { return QStringLiteral( "vectorTileDestination" ); }
4614 QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
4615 QString type() const override { return typeName(); }
4616 bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
4617 QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
4618 QgsProcessingOutputDefinition *toOutputDefinition() const override SIP_FACTORY;
4619 QString defaultFileExtension() const override;
4620 QString createFileFilter() const override;
4621
4626 virtual QStringList supportedOutputVectorTileLayerExtensions() const;
4627
4631 static QgsProcessingParameterVectorTileDestination *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
4632};
4633
4634// clazy:excludeall=qstring-allocations
4635
4636#endif // QGSPROCESSINGPARAMETERS_H
4637
4638
The Qgis class provides global constants for use throughout the application.
Definition: qgis.h:54
ExpressionType
Expression types.
Definition: qgis.h:3621
@ Qgis
Native QGIS expression.
DistanceUnit
Units of distance.
Definition: qgis.h:3310
TemporalUnit
Temporal units.
Definition: qgis.h:3417
WkbType
The WKB type describes the number of dimensions a geometry has.
Definition: qgis.h:154
Represents a map layer containing a set of georeferenced annotations, e.g.
This class represents a coordinate reference system (CRS).
This class wraps a request for features to a vector layer (or directly its vector data provider).
InvalidGeometryCheck
Handling of features with invalid geometries.
@ GeometryAbortOnInvalid
Close iterator on encountering any features with invalid geometry. This requires a slow geometry vali...
An interface for objects which accept features via addFeature(s) methods.
Container of fields for a vector layer.
Definition: qgsfields.h:45
Abstract interface for classes which generate a file filter string.
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:164
Base class for graphical items within a QgsLayout.
Base class for all map layer types.
Definition: qgsmaplayer.h:73
Represents a mesh layer supporting display of data on structured or unstructured meshes.
Definition: qgsmeshlayer.h:100
Represents a map layer supporting display of point clouds.
A class to represent a 2D point.
Definition: qgspointxy.h:59
Print layout, a QgsLayout subclass for static or atlas-based layouts.
Abstract base class for processing algorithms.
Contains information about the context in which a processing algorithm is executed.
Base class for all parameter definitions which represent file or layer destinations,...
virtual QString defaultFileExtension() const =0
Returns the default file extension for destination file paths associated with this parameter.
bool supportsNonFileBasedOutput() const
Returns true if the destination parameter supports non filed-based outputs, such as memory layers or ...
bool isDestination() const override
Returns true if this parameter represents a file or layer destination, e.g.
virtual QgsProcessingOutputDefinition * toOutputDefinition() const =0
Returns a new QgsProcessingOutputDefinition corresponding to the definition of the destination parame...
QgsProcessingProvider * originalProvider() const
Original (source) provider which this parameter has been derived from.
void setSupportsNonFileBasedOutput(bool supportsNonFileBasedOutput)
Sets whether the destination parameter supports non filed-based outputs, such as memory layers or dir...
Custom exception class for processing related exceptions.
Definition: qgsexception.h:84
Encapsulates settings relating to a feature source input to a processing algorithm.
Flags flags
Flags which dictate source behavior.
bool operator!=(const QgsProcessingFeatureSourceDefinition &other) const
bool selectedFeaturesOnly
true if only selected features in the source should be used by algorithms.
QgsFeatureRequest::InvalidGeometryCheck geometryCheck
Geometry check method to apply to this source.
bool operator==(const QgsProcessingFeatureSourceDefinition &other) const
QgsProcessingFeatureSourceDefinition(const QgsProperty &source, bool selectedFeaturesOnly=false, long long featureLimit=-1, QgsProcessingFeatureSourceDefinition::Flags flags=QgsProcessingFeatureSourceDefinition::Flags(), QgsFeatureRequest::InvalidGeometryCheck geometryCheck=QgsFeatureRequest::GeometryAbortOnInvalid, const QString &filterExpression=QString())
Constructor for QgsProcessingFeatureSourceDefinition, accepting a QgsProperty source.
long long featureLimit
If set to a value > 0, places a limit on the maximum number of features which will be read from the s...
Flag
Flags which control source behavior.
QString filterExpression
Optional expression filter to use for filtering features which will be read from the source.
QgsFeatureSource subclass which proxies methods to an underlying QgsFeatureSource,...
Base class for providing feedback from a processing algorithm.
Base class for the definition of processing outputs.
Encapsulates settings relating to a feature sink or output raster layer for a processing algorithm.
QgsProcessingOutputLayerDefinition(const QgsProperty &sink, QgsProject *destinationProject=nullptr)
Constructor for QgsProcessingOutputLayerDefinition, accepting a QgsProperty sink/layer.
QgsProperty sink
Sink/layer definition.
bool useRemapping() const
Returns true if the output uses a remapping definition.
QgsProcessingOutputLayerDefinition(const QString &sink=QString(), QgsProject *destinationProject=nullptr)
Constructor for QgsProcessingOutputLayerDefinition, accepting a static sink/layer string.
QgsRemappingSinkDefinition remappingDefinition() const
Returns the output remapping definition, if useRemapping() is true.
QString destinationName
Name to use for sink if it's to be loaded into a destination project.
QVariantMap createOptions
Map of optional sink/layer creation options, which are passed to the underlying provider when creatin...
An annotation layer parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A string parameter for authentication configuration ID values.
static QString typeName()
Returns the type name for the parameter class.
A raster band parameter for Processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A boolean parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A color parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A coordinate operation parameter for processing algorithms, for selection between available coordinat...
static QString typeName()
Returns the type name for the parameter class.
QVariant sourceCrs() const
Returns the static source CRS, or an invalid value if this is not set.
QString destinationCrsParameterName() const
Returns the name of the destination CRS parameter, or an empty string if this is not set.
void setDestinationCrsParameterName(const QString &name)
Sets the name of the destination CRS parameter.
void setSourceCrs(const QVariant &crs)
Sets the static source crs.
QVariant destinationCrs() const
Returns the static destination CRS, or an invalid value if this is not set.
void setDestinationCrs(const QVariant &crs)
Sets the static destination crs.
void setSourceCrsParameterName(const QString &name)
Sets the name of the source CRS parameter.
QString sourceCrsParameterName() const
Returns the name of the source CRS parameter, or an empty string if this is not set.
A coordinate reference system parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A database schema parameter for processing algorithms, allowing users to select from existing schemas...
static QString typeName()
Returns the type name for the parameter class.
A database table name parameter for processing algorithms, allowing users to select from existing dat...
static QString typeName()
Returns the type name for the parameter class.
A datetime (or pure date or time) parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
Base class for the definition of processing parameters.
QVariant defaultValue() const
Returns the default value for the parameter.
void setDefaultValue(const QVariant &value)
Sets the default value for the parameter.
QVariant guiDefaultValueOverride() const
Returns the default value to use in the GUI for the parameter.
QStringList additionalExpressionContextVariables() const
Returns a list of additional expression context variables which are available for use when evaluating...
QStringList mAdditionalExpressionVariables
Additional expression context variables exposed for use by this parameter.
QString help() const
Returns the help for the parameter.
void setMetadata(const QVariantMap &metadata)
Sets the parameter's freeform metadata.
ValueAsStringFlag
Flags for passing to the valueAsStringPrivate() method.
void setGuiDefaultValueOverride(const QVariant &value)
Sets the default value to use for the parameter in GUI widgets.
QVariantMap metadata() const
Returns the parameter's freeform metadata.
QString description() const
Returns the description for the parameter.
QString mDynamicLayerParameterName
Linked vector layer parameter name for dynamic properties.
QVariant defaultValueForGui() const
Returns the default value to use for the parameter in a GUI.
virtual bool isDestination() const
Returns true if this parameter represents a file or layer destination, e.g.
void setDescription(const QString &description)
Sets the description for the parameter.
void setDynamicLayerParameterName(const QString &name)
Sets the name for the parameter for a layer linked to a dynamic parameter, or an empty string if this...
QString dynamicLayerParameterName() const
Returns the name of the parameter for a layer linked to a dynamic parameter, or an empty string if th...
void setAdditionalExpressionContextVariables(const QStringList &variables)
Sets a list of additional expression context variables which are available for use when evaluating th...
QVariantMap mMetadata
Freeform metadata for parameter. Mostly used by widget wrappers to customize their appearance and beh...
void setName(const QString &name)
Sets the name of the parameter.
QString mDescription
Parameter description.
virtual QgsProcessingParameterDefinition * clone() const =0
Creates a clone of the parameter definition.
virtual QString type() const =0
Unique parameter type name.
void setDynamicPropertyDefinition(const QgsPropertyDefinition &definition)
Sets the property definition for dynamic properties.
Flags flags() const
Returns any flags associated with the parameter.
void setHelp(const QString &help)
Sets the help for the parameter.
QString name() const
Returns the name of the parameter.
QVariant mDefault
Default value for parameter.
virtual QStringList dependsOnOtherParameters() const
Returns a list of other parameter names on which this parameter is dependent (e.g.
void setIsDynamic(bool dynamic)
Sets whether the parameter is dynamic, and can support data-defined values (i.e.
QVariant mGuiDefault
Default value for parameter in GUI.
QgsPropertyDefinition mPropertyDefinition
Data defined property definition.
bool isDynamic() const
Returns true if the parameter supports is dynamic, and can support data-defined values (i....
void setFlags(Flags flags)
Sets the flags associated with the parameter.
virtual ~QgsProcessingParameterDefinition()=default
QVariantMap & metadata()
Returns the parameter's freeform metadata.
QgsPropertyDefinition dynamicPropertyDefinition() const
Returns the property definition for dynamic properties.
A double numeric parameter for distance values.
static QString typeName()
Returns the type name for the parameter class.
void setDefaultUnit(Qgis::DistanceUnit unit)
Sets the default distance unit for the parameter.
A double numeric parameter for duration values.
void setDefaultUnit(Qgis::TemporalUnit unit)
Sets the default duration unit for the parameter.
static QString typeName()
Returns the type name for the parameter class.
static QString typeName()
Returns the type name for the parameter class.
An enum based parameter for processing algorithms, allowing for selection from predefined values.
static QString typeName()
Returns the type name for the parameter class.
An expression parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A rectangular map extent parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A feature sink output for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
An input feature source (such as vector layers) parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
static QString typeName()
Returns the type name for the parameter class.
A vector layer or feature source field parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A generic file based destination parameter, for specifying the destination path for a file (non-map l...
static QString typeName()
Returns the type name for the parameter class.
An input file or folder parameter for processing algorithms.
QString extension() const
Returns any specified file extension for the parameter.
static QString typeName()
Returns the type name for the parameter class.
void setBehavior(Behavior behavior)
Sets the parameter behavior (e.g.
Behavior behavior() const
Returns the parameter behavior (e.g.
A folder destination parameter, for specifying the destination path for a folder created by the algor...
static QString typeName()
Returns the type name for the parameter class.
A geometry parameter for processing algorithms.
void setGeometryTypes(const QList< int > &geometryTypes)
Sets the allowed geometryTypes, as a list of Qgis::GeometryType values.
bool allowMultipart() const
Returns the parameter allow multipart geometries.
QList< int > geometryTypes() const
Returns the parameter allowed geometries, as a list of Qgis::GeometryType values.
void setAllowMultipart(bool allowMultipart)
Sets the allow multipart geometries.
static QString typeName()
Returns the type name for the parameter class.
A print layout item parameter, allowing users to select a particular item from a print layout.
static QString typeName()
Returns the type name for the parameter class.
A print layout parameter, allowing users to select a print layout.
static QString typeName()
Returns the type name for the parameter class.
Can be inherited by parameters which require limits to their acceptable data types.
QList< int > mDataTypes
List of acceptable data types for the parameter.
A map layer parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A map theme parameter for processing algorithms, allowing users to select an existing map theme from ...
static QString typeName()
Returns the type name for the parameter class.
A table (matrix) parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
static QString typeName()
Returns the type name for the parameter class.
static QString typeName()
Returns the type name for the parameter class.
A mesh layer parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A parameter for processing algorithms which accepts multiple map layers.
static QString typeName()
Returns the type name for the parameter class.
A numeric parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A point cloud layer attribute parameter for Processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A point cloud layer destination parameter, for specifying the destination path for a point cloud laye...
static QString typeName()
Returns the type name for the parameter class.
A point cloud layer parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A point parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A data provider connection parameter for processing algorithms, allowing users to select from availab...
static QString typeName()
Returns the type name for the parameter class.
void setProviderId(const QString &provider)
Sets the ID of the provider associated with the connections.
QString providerId() const
Returns the ID of the provider associated with the connections.
A numeric range parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A raster layer destination parameter, for specifying the destination path for a raster layer created ...
static QString typeName()
Returns the type name for the parameter class.
A raster layer parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A double numeric parameter for map scale values.
static QString typeName()
Returns the type name for the parameter class.
A string parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
static QString typeName()
Returns the type name for the parameter class.
A vector layer destination parameter, for specifying the destination path for a vector layer created ...
static QString typeName()
Returns the type name for the parameter class.
A vector layer (with or without geometry) parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
A vector tile layer destination parameter, for specifying the destination path for a vector tile laye...
static QString typeName()
Returns the type name for the parameter class.
static QString typeName()
Returns the type name for the parameter class.
A collection of utilities for working with parameters when running a processing algorithm.
Abstract base class for processing providers.
LayerHint
Layer type hints.
@ UnknownType
Unknown layer type.
Contains enumerations and other constants for use in processing algorithms and parameters.
Definition: qgsprocessing.h:41
PythonOutputType
Available Python output types.
Definition: qgsprocessing.h:65
@ PythonQgsProcessingAlgorithmSubclass
Full Python QgsProcessingAlgorithm subclass.
Definition: qgsprocessing.h:66
SourceType
Data source types enum.
Definition: qgsprocessing.h:47
@ TypeVectorAnyGeometry
Any vector layer with geometry.
Definition: qgsprocessing.h:49
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Definition: qgsproject.h:107
Definition for a property.
Definition: qgsproperty.h:46
A store for object properties.
Definition: qgsproperty.h:230
Represents a raster layer.
A rectangle specified with double values.
Definition: qgsrectangle.h:42
Defines the parameters used to remap features when creating a QgsRemappingProxyFeatureSink.
Represents a vector layer which manages a vector based data sets.
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
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition: qgis_sip.h:186
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_OUT
Definition: qgis_sip.h:58
#define SIP_FACTORY
Definition: qgis_sip.h:76
#define SIP_THROW(name,...)
Definition: qgis_sip.h:198
#define SIP_END
Definition: qgis_sip.h:203
Q_DECLARE_METATYPE(QgsDatabaseQueryLogEntry)
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
QList< const QgsProcessingParameterDefinition * > QgsProcessingParameterDefinitions
List of processing parameters.
const QgsCoordinateReferenceSystem & crs
const QString & typeName