QGIS API Documentation  3.12.1-BucureČ™ti (121cc00ff0)
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 "qgsfeaturesource.h"
27 #include "qgsprocessingutils.h"
28 #include <QMap>
29 #include <limits>
30 
33 class QgsRasterLayer;
34 class QgsMeshLayer;
35 class QgsVectorLayer;
36 class QgsFeatureSink;
41 class QgsPrintLayout;
42 class QgsLayoutItem;
43 
54 {
55  public:
56 
60  QgsProcessingFeatureSourceDefinition( const QString &source = QString(), bool selectedFeaturesOnly = false )
61  : source( QgsProperty::fromValue( source ) )
62  , selectedFeaturesOnly( selectedFeaturesOnly )
63  {}
64 
68  QgsProcessingFeatureSourceDefinition( const QgsProperty &source, bool selectedFeaturesOnly = false )
69  : source( source )
70  , selectedFeaturesOnly( selectedFeaturesOnly )
71  {}
72 
77 
82 
84  {
85  return source == other.source && selectedFeaturesOnly == other.selectedFeaturesOnly;
86  }
87 
89  {
90  return !( *this == other );
91  }
92 
94  operator QVariant() const
95  {
96  return QVariant::fromValue( *this );
97  }
98 
99 };
100 
102 
103 
113 {
114  public:
115 
121  QgsProcessingOutputLayerDefinition( const QString &sink = QString(), QgsProject *destinationProject = nullptr )
122  : sink( QgsProperty::fromValue( sink ) )
123  , destinationProject( destinationProject )
124  {}
125 
131  QgsProcessingOutputLayerDefinition( const QgsProperty &sink, QgsProject *destinationProject = nullptr )
132  : sink( sink )
133  , destinationProject( destinationProject )
134  {}
135 
140 
146  QgsProject *destinationProject = nullptr;
147 
152 
159  QVariantMap createOptions;
160 
167  QVariant toVariant() const;
168 
175  bool loadVariant( const QVariantMap &map );
176 
178  operator QVariant() const
179  {
180  return QVariant::fromValue( *this );
181  }
182 
183 };
184 
185 Q_DECLARE_METATYPE( QgsProcessingOutputLayerDefinition )
186 
187 
188 
189 
190 //
191 // Parameter definitions
192 //
193 
194 
207 {
208 
209 #ifdef SIP_RUN
211  if ( sipCpp->type() == QgsProcessingParameterBoolean::typeName() )
212  sipType = sipType_QgsProcessingParameterBoolean;
213  else if ( sipCpp->type() == QgsProcessingParameterCrs::typeName() )
214  sipType = sipType_QgsProcessingParameterCrs;
215  else if ( sipCpp->type() == QgsProcessingParameterMapLayer::typeName() )
216  sipType = sipType_QgsProcessingParameterMapLayer;
217  else if ( sipCpp->type() == QgsProcessingParameterExtent::typeName() )
218  sipType = sipType_QgsProcessingParameterExtent;
219  else if ( sipCpp->type() == QgsProcessingParameterPoint::typeName() )
220  sipType = sipType_QgsProcessingParameterPoint;
221  else if ( sipCpp->type() == QgsProcessingParameterFile::typeName() )
222  sipType = sipType_QgsProcessingParameterFile;
223  else if ( sipCpp->type() == QgsProcessingParameterMatrix::typeName() )
224  sipType = sipType_QgsProcessingParameterMatrix;
225  else if ( sipCpp->type() == QgsProcessingParameterMultipleLayers::typeName() )
226  sipType = sipType_QgsProcessingParameterMultipleLayers;
227  else if ( sipCpp->type() == QgsProcessingParameterNumber::typeName() )
228  sipType = sipType_QgsProcessingParameterNumber;
229  else if ( sipCpp->type() == QgsProcessingParameterDistance::typeName() )
230  sipType = sipType_QgsProcessingParameterDistance;
231  else if ( sipCpp->type() == QgsProcessingParameterScale::typeName() )
232  sipType = sipType_QgsProcessingParameterScale;
233  else if ( sipCpp->type() == QgsProcessingParameterRange::typeName() )
234  sipType = sipType_QgsProcessingParameterRange;
235  else if ( sipCpp->type() == QgsProcessingParameterRasterLayer::typeName() )
236  sipType = sipType_QgsProcessingParameterRasterLayer;
237  else if ( sipCpp->type() == QgsProcessingParameterMeshLayer::typeName() )
238  sipType = sipType_QgsProcessingParameterMeshLayer;
239  else if ( sipCpp->type() == QgsProcessingParameterEnum::typeName() )
240  sipType = sipType_QgsProcessingParameterEnum;
241  else if ( sipCpp->type() == QgsProcessingParameterString::typeName() )
242  sipType = sipType_QgsProcessingParameterString;
243  else if ( sipCpp->type() == QgsProcessingParameterExpression::typeName() )
244  sipType = sipType_QgsProcessingParameterExpression;
245  else if ( sipCpp->type() == QgsProcessingParameterAuthConfig::typeName() )
246  sipType = sipType_QgsProcessingParameterAuthConfig;
247  else if ( sipCpp->type() == QgsProcessingParameterVectorLayer::typeName() )
248  sipType = sipType_QgsProcessingParameterVectorLayer;
249  else if ( sipCpp->type() == QgsProcessingParameterField::typeName() )
250  sipType = sipType_QgsProcessingParameterField;
251  else if ( sipCpp->type() == QgsProcessingParameterFeatureSource::typeName() )
252  sipType = sipType_QgsProcessingParameterFeatureSource;
253  else if ( sipCpp->type() == QgsProcessingParameterFeatureSink::typeName() )
254  sipType = sipType_QgsProcessingParameterFeatureSink;
255  else if ( sipCpp->type() == QgsProcessingParameterVectorDestination::typeName() )
256  sipType = sipType_QgsProcessingParameterVectorDestination;
257  else if ( sipCpp->type() == QgsProcessingParameterRasterDestination::typeName() )
258  sipType = sipType_QgsProcessingParameterRasterDestination;
259  else if ( sipCpp->type() == QgsProcessingParameterFileDestination::typeName() )
260  sipType = sipType_QgsProcessingParameterFileDestination;
261  else if ( sipCpp->type() == QgsProcessingParameterFolderDestination::typeName() )
262  sipType = sipType_QgsProcessingParameterFolderDestination;
263  else if ( sipCpp->type() == QgsProcessingParameterBand::typeName() )
264  sipType = sipType_QgsProcessingParameterBand;
265  else if ( sipCpp->type() == QgsProcessingParameterLayout::typeName() )
266  sipType = sipType_QgsProcessingParameterLayout;
267  else if ( sipCpp->type() == QgsProcessingParameterLayoutItem::typeName() )
268  sipType = sipType_QgsProcessingParameterLayoutItem;
269  else if ( sipCpp->type() == QgsProcessingParameterColor::typeName() )
270  sipType = sipType_QgsProcessingParameterColor;
271  else if ( sipCpp->type() == QgsProcessingParameterCoordinateOperation::typeName() )
272  sipType = sipType_QgsProcessingParameterCoordinateOperation;
273  else if ( sipCpp->type() == QgsProcessingParameterMapTheme::typeName() )
274  sipType = sipType_QgsProcessingParameterMapTheme;
275  else
276  sipType = nullptr;
277  SIP_END
278 #endif
279 
280  public:
281 
283  enum Flag
284  {
285  FlagAdvanced = 1 << 1,
286  FlagHidden = 1 << 2,
287  FlagOptional = 1 << 3,
288  FlagIsModelOutput = 1 << 4,
289  };
290  Q_DECLARE_FLAGS( Flags, Flag )
291 
292 
295  QgsProcessingParameterDefinition( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
296  bool optional = false );
297 
298  virtual ~QgsProcessingParameterDefinition() = default;
299 
303  virtual QgsProcessingParameterDefinition *clone() const = 0 SIP_FACTORY;
304 
308  virtual QString type() const = 0;
309 
315  virtual bool isDestination() const { return false; }
316 
322  QString name() const { return mName; }
323 
329  void setName( const QString &name ) { mName = name; }
330 
336  QString description() const { return mDescription; }
337 
343  void setDescription( const QString &description ) { mDescription = description; }
344 
349  QVariant defaultValue() const { return mDefault; }
350 
356  void setDefaultValue( const QVariant &value ) { mDefault = value; }
357 
362  Flags flags() const { return mFlags; }
363 
368  void setFlags( Flags flags ) { mFlags = flags; }
369 
377  virtual bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const;
378 
383  virtual QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const;
384 
389  virtual QString asScriptCode() const;
390 
400  virtual QString asPythonString( QgsProcessing::PythonOutputType outputType = QgsProcessing::PythonQgsProcessingAlgorithmSubclass ) const;
401 
407  virtual QVariantMap toVariantMap() const;
408 
414  virtual bool fromVariantMap( const QVariantMap &map );
415 
422  SIP_SKIP QVariantMap metadata() const { return mMetadata; }
423 
429  QVariantMap &metadata() { return mMetadata; }
430 
436  void setMetadata( const QVariantMap &metadata ) { mMetadata = metadata; }
437 
442  virtual QStringList dependsOnOtherParameters() const { return QStringList(); }
443 
450 
456  QgsProcessingProvider *provider() const;
457 
462  virtual QString toolTip() const;
463 
471  bool isDynamic() const { return mIsDynamic; }
472 
480  void setIsDynamic( bool dynamic ) { mIsDynamic = dynamic; }
481 
488  QgsPropertyDefinition dynamicPropertyDefinition() const { return mPropertyDefinition; }
489 
496  void setDynamicPropertyDefinition( const QgsPropertyDefinition &definition ) { mPropertyDefinition = definition; }
497 
509  QString dynamicLayerParameterName() const { return mDynamicLayerParameterName; }
510 
522  void setDynamicLayerParameterName( const QString &name ) { mDynamicLayerParameterName = name; }
523 
537  QStringList additionalExpressionContextVariables() const { return mAdditionalExpressionVariables; }
538 
556  void setAdditionalExpressionContextVariables( const QStringList &variables ) { mAdditionalExpressionVariables = variables; }
557 
558  protected:
559 
561  QString mName;
562 
564  QString mDescription;
565 
567  QVariant mDefault;
568 
570  Flags mFlags;
571 
573  QVariantMap mMetadata;
574 
576  QgsProcessingAlgorithm *mAlgorithm = nullptr;
577 
579  bool mIsDynamic = false;
580 
583 
586 
589 
590  // To allow access to mAlgorithm. We don't want a public setter for this!
592 
593 };
594 
595 Q_DECLARE_OPERATORS_FOR_FLAGS( QgsProcessingParameterDefinition::Flags )
596 
597 typedef QList< const QgsProcessingParameterDefinition * > QgsProcessingParameterDefinitions;
599 
618 class CORE_EXPORT QgsProcessingParameters
619 {
620 
621  public:
622 
627  static bool isDynamic( const QVariantMap &parameters, const QString &name );
628 
632  static QString parameterAsString( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
633 
638  static QString parameterAsString( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
639 
643  static QString parameterAsExpression( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
644 
649  static QString parameterAsExpression( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
650 
654  static double parameterAsDouble( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
655 
660  static double parameterAsDouble( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
661 
665  static int parameterAsInt( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
666 
671  static int parameterAsInt( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
672 
677  static QList<int> parameterAsInts( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
678 
683  static QList<int> parameterAsInts( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
684 
688  static int parameterAsEnum( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
689 
694  static int parameterAsEnum( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
695 
699  static QList<int> parameterAsEnums( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
700 
705  static QList<int> parameterAsEnums( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
706 
710  static bool parameterAsBool( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
711 
717  static bool parameterAsBoolean( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, const QgsProcessingContext &context );
718 
723  static bool parameterAsBool( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
724 
729  static bool parameterAsBoolean( const QgsProcessingParameterDefinition *definition, const QVariant &value, const QgsProcessingContext &context );
730 
744  static QgsFeatureSink *parameterAsSink( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters,
745  const QgsFields &fields, QgsWkbTypes::Type geometryType, const QgsCoordinateReferenceSystem &crs,
746  QgsProcessingContext &context, QString &destinationIdentifier SIP_OUT, QgsFeatureSink::SinkFlags sinkFlags = nullptr ) SIP_FACTORY;
747 
763  static QgsFeatureSink *parameterAsSink( const QgsProcessingParameterDefinition *definition, const QVariant &value,
764  const QgsFields &fields, QgsWkbTypes::Type geometryType, const QgsCoordinateReferenceSystem &crs,
765  QgsProcessingContext &context, QString &destinationIdentifier SIP_OUT, QgsFeatureSink::SinkFlags sinkFlags = nullptr ) SIP_THROW( QgsProcessingException ) SIP_FACTORY;
766 
775  static QgsProcessingFeatureSource *parameterAsSource( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context ) SIP_FACTORY;
776 
787  static QgsProcessingFeatureSource *parameterAsSource( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context ) SIP_FACTORY;
788 
804  static QString parameterAsCompatibleSourceLayerPath( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters,
805  QgsProcessingContext &context, const QStringList &compatibleFormats, const QString &preferredFormat = QString( "shp" ), QgsProcessingFeedback *feedback = nullptr );
806 
836  static QString parameterAsCompatibleSourceLayerPathAndLayerName( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters,
837  QgsProcessingContext &context, const QStringList &compatibleFormats, const QString &preferredFormat = QString( "shp" ), QgsProcessingFeedback *feedback = nullptr, QString *layerName SIP_OUT = nullptr );
838 
846  static QgsMapLayer *parameterAsLayer( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
847 
857  static QgsMapLayer *parameterAsLayer( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
858 
866  static QgsRasterLayer *parameterAsRasterLayer( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
867 
877  static QgsRasterLayer *parameterAsRasterLayer( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
878 
882  static QString parameterAsOutputLayer( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
883 
888  static QString parameterAsOutputLayer( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
889 
893  static QString parameterAsFileOutput( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
894 
899  static QString parameterAsFileOutput( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
900 
908  static QgsVectorLayer *parameterAsVectorLayer( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
909 
919  static QgsVectorLayer *parameterAsVectorLayer( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
920 
930  static QgsMeshLayer *parameterAsMeshLayer( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
931 
941  static QgsMeshLayer *parameterAsMeshLayer( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
942 
943 
947  static QgsCoordinateReferenceSystem parameterAsCrs( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
948 
953  static QgsCoordinateReferenceSystem parameterAsCrs( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
954 
964  static QgsRectangle parameterAsExtent( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context,
966 
978  static QgsRectangle parameterAsExtent( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context,
980 
992  static QgsGeometry parameterAsExtentGeometry( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context,
994 
1000  static QgsCoordinateReferenceSystem parameterAsExtentCrs( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1001 
1009  static QgsPointXY parameterAsPoint( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context,
1011 
1020  static QgsPointXY parameterAsPoint( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context,
1022 
1028  static QgsCoordinateReferenceSystem parameterAsPointCrs( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1029 
1036  static QgsCoordinateReferenceSystem parameterAsPointCrs( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1037 
1041  static QString parameterAsFile( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1042 
1047  static QString parameterAsFile( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1048 
1053  static QVariantList parameterAsMatrix( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1054 
1060  static QVariantList parameterAsMatrix( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1061 
1065  static QList< QgsMapLayer *> parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1066 
1071  static QList< QgsMapLayer *> parameterAsLayerList( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1072 
1078  static QStringList parameterAsFileList( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1079 
1085  static QStringList parameterAsFileList( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1086 
1090  static QList<double> parameterAsRange( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1091 
1096  static QList<double> parameterAsRange( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1097 
1101  static QStringList parameterAsFields( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1102 
1107  static QStringList parameterAsFields( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1108 
1117  static QgsPrintLayout *parameterAsLayout( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1118 
1127  static QgsPrintLayout *parameterAsLayout( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1128 
1137  static QgsLayoutItem *parameterAsLayoutItem( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context, QgsPrintLayout *layout );
1138 
1147  static QgsLayoutItem *parameterAsLayoutItem( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context, QgsPrintLayout *layout );
1148 
1154  static QColor parameterAsColor( const QgsProcessingParameterDefinition *definition, const QVariantMap &parameters, QgsProcessingContext &context );
1155 
1161  static QColor parameterAsColor( const QgsProcessingParameterDefinition *definition, const QVariant &value, QgsProcessingContext &context );
1162 
1168  static QgsProcessingParameterDefinition *parameterFromVariantMap( const QVariantMap &map ) SIP_FACTORY;
1169 
1173  static QString descriptionFromName( const QString &name );
1174 
1180  static QgsProcessingParameterDefinition *parameterFromScriptCode( const QString &code ) SIP_FACTORY;
1181 
1182  private:
1183 
1184  static bool parseScriptCodeParameterOptions( const QString &code, bool &isOptional, QString &name, QString &type, QString &definition );
1185 };
1186 
1187 
1188 
1195 class CORE_EXPORT QgsProcessingParameterBoolean : public QgsProcessingParameterDefinition
1196 {
1197  public:
1198 
1202  QgsProcessingParameterBoolean( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
1203  bool optional = false );
1204 
1208  static QString typeName() { return QStringLiteral( "boolean" ); }
1209  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1210  QString type() const override { return typeName(); }
1211  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1212  QString asScriptCode() const override;
1213 
1217  static QgsProcessingParameterBoolean *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1218 };
1219 
1226 class CORE_EXPORT QgsProcessingParameterCrs : public QgsProcessingParameterDefinition
1227 {
1228  public:
1229 
1233  QgsProcessingParameterCrs( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
1234  bool optional = false );
1235 
1239  static QString typeName() { return QStringLiteral( "crs" ); }
1240  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1241  QString type() const override { return typeName(); }
1242  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1243  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1244 
1248  static QgsProcessingParameterCrs *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1249 
1250 };
1251 
1258 class CORE_EXPORT QgsProcessingParameterMapLayer : public QgsProcessingParameterDefinition
1259 {
1260  public:
1261 
1265  QgsProcessingParameterMapLayer( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
1266  bool optional = false );
1267 
1271  static QString typeName() { return QStringLiteral( "layer" ); }
1272  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1273  QString type() const override { return typeName(); }
1274  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1275  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1276 
1280  static QgsProcessingParameterMapLayer *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1281 
1282 };
1283 
1290 class CORE_EXPORT QgsProcessingParameterExtent : public QgsProcessingParameterDefinition
1291 {
1292  public:
1293 
1297  QgsProcessingParameterExtent( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
1298  bool optional = false );
1299 
1303  static QString typeName() { return QStringLiteral( "extent" ); }
1304  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1305  QString type() const override { return typeName(); }
1306  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1307  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1308 
1312  static QgsProcessingParameterExtent *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1313 
1314 };
1315 
1316 
1323 class CORE_EXPORT QgsProcessingParameterPoint : public QgsProcessingParameterDefinition
1324 {
1325  public:
1326 
1330  QgsProcessingParameterPoint( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
1331  bool optional = false );
1332 
1336  static QString typeName() { return QStringLiteral( "point" ); }
1337  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1338  QString type() const override { return typeName(); }
1339  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1340  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1341 
1345  static QgsProcessingParameterPoint *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1346 
1347 };
1348 
1355 class CORE_EXPORT QgsProcessingParameterFile : public QgsProcessingParameterDefinition
1356 {
1357  public:
1358 
1361  {
1362  File = 0,
1364  };
1365 
1373  QgsProcessingParameterFile( const QString &name, const QString &description = QString(), Behavior behavior = File, const QString &extension = QString(), const QVariant &defaultValue = QVariant(),
1374  bool optional = false, const QString &fileFilter = QString() );
1375 
1379  static QString typeName() { return QStringLiteral( "file" ); }
1380  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1381  QString type() const override { return typeName(); }
1382  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1383  QString asScriptCode() const override;
1385 
1390  Behavior behavior() const { return mBehavior; }
1391 
1396  void setBehavior( Behavior behavior ) { mBehavior = behavior; }
1397 
1405  QString extension() const { return mExtension; }
1406 
1416  void setExtension( const QString &extension );
1417 
1424  QString fileFilter() const;
1425 
1435  void setFileFilter( const QString &filter );
1436 
1437  QVariantMap toVariantMap() const override;
1438  bool fromVariantMap( const QVariantMap &map ) override;
1439 
1443  static QgsProcessingParameterFile *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition, Behavior behavior = File ) SIP_FACTORY;
1444 
1445  private:
1446 
1447  Behavior mBehavior = File;
1448  QString mExtension;
1449  QString mFileFilter;
1450 };
1451 
1458 class CORE_EXPORT QgsProcessingParameterMatrix : public QgsProcessingParameterDefinition
1459 {
1460  public:
1461 
1465  QgsProcessingParameterMatrix( const QString &name, const QString &description = QString(), int numberRows = 3,
1466  bool hasFixedNumberRows = false, const QStringList &headers = QStringList(),
1467  const QVariant &defaultValue = QVariant(),
1468  bool optional = false );
1469 
1473  static QString typeName() { return QStringLiteral( "matrix" ); }
1474  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1475  QString type() const override { return typeName(); }
1476  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1477  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1479 
1484  QStringList headers() const;
1485 
1490  void setHeaders( const QStringList &headers );
1491 
1498  int numberRows() const;
1499 
1506  void setNumberRows( int rows );
1507 
1513  bool hasFixedNumberRows() const;
1514 
1520  void setHasFixedNumberRows( bool hasFixedNumberRows );
1521 
1522  QVariantMap toVariantMap() const override;
1523  bool fromVariantMap( const QVariantMap &map ) override;
1524 
1528  static QgsProcessingParameterMatrix *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1529 
1530  private:
1531 
1532  QStringList mHeaders;
1533  int mNumberRows = 3;
1534  bool mFixedNumberRows = false;
1535 
1536 };
1537 
1544 class CORE_EXPORT QgsProcessingParameterMultipleLayers : public QgsProcessingParameterDefinition
1545 {
1546  public:
1547 
1551  QgsProcessingParameterMultipleLayers( const QString &name, const QString &description = QString(), QgsProcessing::SourceType layerType = QgsProcessing::TypeVectorAnyGeometry,
1552  const QVariant &defaultValue = QVariant(),
1553  bool optional = false );
1554 
1558  static QString typeName() { return QStringLiteral( "multilayer" ); }
1559  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1560  QString type() const override { return typeName(); }
1561  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1562  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1563  QString asScriptCode() const override;
1565 
1570  QgsProcessing::SourceType layerType() const;
1571 
1576  void setLayerType( QgsProcessing::SourceType type );
1577 
1583  int minimumNumberInputs() const;
1584 
1590  void setMinimumNumberInputs( int minimum );
1591 
1592  QVariantMap toVariantMap() const override;
1593  bool fromVariantMap( const QVariantMap &map ) override;
1594 
1598  static QgsProcessingParameterMultipleLayers *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1599 
1600  private:
1601 
1603  int mMinimumNumberInputs = 0;
1604 
1605 };
1606 
1625 class CORE_EXPORT QgsProcessingParameterNumber : public QgsProcessingParameterDefinition
1626 {
1627  public:
1628 
1630  enum Type
1631  {
1634  };
1635 
1639  explicit QgsProcessingParameterNumber( const QString &name, const QString &description = QString(),
1640  Type type = Integer,
1641  const QVariant &defaultValue = QVariant(),
1642  bool optional = false,
1643  double minValue = std::numeric_limits<double>::lowest() + 1,
1644  double maxValue = std::numeric_limits<double>::max()
1645  );
1646 
1650  static QString typeName() { return QStringLiteral( "number" ); }
1651  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1652  QString type() const override { return typeName(); }
1653  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1654  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1655  QString toolTip() const override;
1657 
1662  double minimum() const;
1663 
1668  void setMinimum( double minimum );
1669 
1674  double maximum() const;
1675 
1680  void setMaximum( double maximum );
1681 
1686  Type dataType() const;
1687 
1692  void setDataType( Type type );
1693 
1694  QVariantMap toVariantMap() const override;
1695  bool fromVariantMap( const QVariantMap &map ) override;
1696 
1700  static QgsProcessingParameterNumber *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1701 
1702  private:
1703 
1704  double mMin = std::numeric_limits<double>::lowest() + 1;
1705  double mMax = std::numeric_limits<double>::max();
1706  Type mDataType = Integer;
1707 };
1708 
1729 {
1730  public:
1731 
1735  explicit QgsProcessingParameterDistance( const QString &name, const QString &description = QString(),
1736  const QVariant &defaultValue = QVariant(),
1737  const QString &parentParameterName = QString(),
1738  bool optional = false,
1739  double minValue = std::numeric_limits<double>::lowest() + 1,
1740  double maxValue = std::numeric_limits<double>::max() );
1741 
1745  static QString typeName() { return QStringLiteral( "distance" ); }
1746 
1748 
1749  QString type() const override;
1750  QStringList dependsOnOtherParameters() const override;
1752 
1757  QString parentParameterName() const;
1758 
1763  void setParentParameterName( const QString &parentParameterName );
1764 
1771  QgsUnitTypes::DistanceUnit defaultUnit() const { return mDefaultUnit; }
1772 
1779  void setDefaultUnit( QgsUnitTypes::DistanceUnit unit ) { mDefaultUnit = unit; }
1780 
1781  QVariantMap toVariantMap() const override;
1782  bool fromVariantMap( const QVariantMap &map ) override;
1783 
1784  private:
1785 
1786  QString mParentParameterName;
1788 
1789 };
1790 
1802 {
1803  public:
1804 
1808  explicit QgsProcessingParameterScale( const QString &name, const QString &description = QString(),
1809  const QVariant &defaultValue = QVariant(),
1810  bool optional = false );
1811 
1815  static QString typeName() { return QStringLiteral( "scale" ); }
1816 
1817  QgsProcessingParameterScale *clone() const override SIP_FACTORY;
1818 
1819  QString type() const override;
1821 
1825  static QgsProcessingParameterScale *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1826 
1827 };
1828 
1835 class CORE_EXPORT QgsProcessingParameterRange : public QgsProcessingParameterDefinition
1836 {
1837  public:
1838 
1842  QgsProcessingParameterRange( const QString &name, const QString &description = QString(),
1844  const QVariant &defaultValue = QVariant(),
1845  bool optional = false );
1846 
1850  static QString typeName() { return QStringLiteral( "range" ); }
1851  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1852  QString type() const override { return typeName(); }
1853  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1854  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1856 
1861  QgsProcessingParameterNumber::Type dataType() const;
1862 
1867  void setDataType( QgsProcessingParameterNumber::Type dataType );
1868 
1869  QVariantMap toVariantMap() const override;
1870  bool fromVariantMap( const QVariantMap &map ) override;
1871 
1875  static QgsProcessingParameterRange *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1876 
1877  private:
1878 
1880 };
1881 
1888 class CORE_EXPORT QgsProcessingParameterRasterLayer : public QgsProcessingParameterDefinition
1889 {
1890  public:
1891 
1895  QgsProcessingParameterRasterLayer( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
1896  bool optional = false );
1897 
1901  static QString typeName() { return QStringLiteral( "raster" ); }
1902  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1903  QString type() const override { return typeName(); }
1904  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1905  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1906 
1910  static QgsProcessingParameterRasterLayer *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1911 
1912 };
1913 
1920 class CORE_EXPORT QgsProcessingParameterEnum : public QgsProcessingParameterDefinition
1921 {
1922  public:
1923 
1927  QgsProcessingParameterEnum( const QString &name, const QString &description = QString(), const QStringList &options = QStringList(),
1928  bool allowMultiple = false,
1929  const QVariant &defaultValue = QVariant(),
1930  bool optional = false );
1931 
1935  static QString typeName() { return QStringLiteral( "enum" ); }
1936  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
1937  QString type() const override { return typeName(); }
1938  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
1939  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
1940  QString asScriptCode() const override;
1942 
1947  QStringList options() const;
1948 
1953  void setOptions( const QStringList &options );
1954 
1959  bool allowMultiple() const;
1960 
1965  void setAllowMultiple( bool allowMultiple );
1966 
1967  QVariantMap toVariantMap() const override;
1968  bool fromVariantMap( const QVariantMap &map ) override;
1969 
1973  static QgsProcessingParameterEnum *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
1974 
1975  private:
1976 
1977  QStringList mOptions;
1978  bool mAllowMultiple = false;
1979 
1980 };
1981 
1988 class CORE_EXPORT QgsProcessingParameterString : public QgsProcessingParameterDefinition
1989 {
1990  public:
1991 
1995  QgsProcessingParameterString( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
1996  bool multiLine = false,
1997  bool optional = false );
1998 
2002  static QString typeName() { return QStringLiteral( "string" ); }
2003  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2004  QString type() const override { return typeName(); }
2005  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2006  QString asScriptCode() const override;
2008 
2013  bool multiLine() const;
2014 
2019  void setMultiLine( bool multiLine );
2020 
2021  QVariantMap toVariantMap() const override;
2022  bool fromVariantMap( const QVariantMap &map ) override;
2023 
2027  static QgsProcessingParameterString *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2028 
2029  private:
2030 
2031  bool mMultiLine = false;
2032 
2033 };
2034 
2035 
2048 class CORE_EXPORT QgsProcessingParameterAuthConfig : public QgsProcessingParameterDefinition
2049 {
2050  public:
2051 
2055  QgsProcessingParameterAuthConfig( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
2056  bool optional = false );
2057 
2061  static QString typeName() { return QStringLiteral( "authcfg" ); }
2062  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2063  QString type() const override { return typeName(); }
2064  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2065  QString asScriptCode() const override;
2066 
2070  static QgsProcessingParameterAuthConfig *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2071 
2072 };
2073 
2080 class CORE_EXPORT QgsProcessingParameterExpression : public QgsProcessingParameterDefinition
2081 {
2082  public:
2083 
2087  QgsProcessingParameterExpression( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
2088  const QString &parentLayerParameterName = QString(),
2089  bool optional = false );
2090 
2094  static QString typeName() { return QStringLiteral( "expression" ); }
2095  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2096  QString type() const override { return typeName(); }
2097  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2098  QStringList dependsOnOtherParameters() const override;
2100 
2105  QString parentLayerParameterName() const;
2106 
2111  void setParentLayerParameterName( const QString &parentLayerParameterName );
2112 
2113  QVariantMap toVariantMap() const override;
2114  bool fromVariantMap( const QVariantMap &map ) override;
2115 
2119  static QgsProcessingParameterExpression *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2120 
2121  private:
2122 
2123  QString mParentLayerParameterName;
2124 
2125 };
2126 
2127 
2135 {
2136  public:
2137 
2141  QgsProcessingParameterLimitedDataTypes( const QList< int > &types = QList< int >() );
2142 
2147  QList< int > dataTypes() const;
2148 
2153  void setDataTypes( const QList< int > &types );
2154 
2155  protected:
2156 
2158  QList< int > mDataTypes;
2159 };
2160 
2168 class CORE_EXPORT QgsProcessingParameterVectorLayer : public QgsProcessingParameterDefinition, public QgsProcessingParameterLimitedDataTypes
2169 {
2170  public:
2171 
2175  QgsProcessingParameterVectorLayer( const QString &name,
2176  const QString &description = QString(),
2177  const QList< int > &types = QList< int >(),
2178  const QVariant &defaultValue = QVariant(),
2179  bool optional = false );
2180 
2184  static QString typeName() { return QStringLiteral( "vector" ); }
2185  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2186  QString type() const override { return typeName(); }
2187  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2188  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2190 
2191  QVariantMap toVariantMap() const override;
2192  bool fromVariantMap( const QVariantMap &map ) override;
2193 
2197  static QgsProcessingParameterVectorLayer *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2198 
2199 };
2200 
2207 class CORE_EXPORT QgsProcessingParameterMeshLayer : public QgsProcessingParameterDefinition
2208 {
2209  public:
2210 
2214  QgsProcessingParameterMeshLayer( const QString &name,
2215  const QString &description = QString(),
2216  const QVariant &defaultValue = QVariant(),
2217  bool optional = false );
2218 
2222  static QString typeName() { return QStringLiteral( "mesh" ); }
2223  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2224  QString type() const override { return typeName(); }
2225  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2226  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2227 
2231  static QgsProcessingParameterMeshLayer *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2232 };
2233 
2240 class CORE_EXPORT QgsProcessingParameterField : public QgsProcessingParameterDefinition
2241 {
2242  public:
2243 
2246  {
2247  Any = -1,
2248  Numeric = 0,
2249  String = 1,
2250  DateTime = 2
2251  };
2252 
2256  QgsProcessingParameterField( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
2257  const QString &parentLayerParameterName = QString(),
2258  DataType type = Any,
2259  bool allowMultiple = false,
2260  bool optional = false,
2261  bool defaultToAllFields = false );
2262 
2266  static QString typeName() { return QStringLiteral( "field" ); }
2267  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2268  QString type() const override { return typeName(); }
2269  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2270  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2271  QString asScriptCode() const override;
2273  QStringList dependsOnOtherParameters() const override;
2274 
2279  QString parentLayerParameterName() const;
2280 
2285  void setParentLayerParameterName( const QString &parentLayerParameterName );
2286 
2291  DataType dataType() const;
2292 
2297  void setDataType( DataType type );
2298 
2303  bool allowMultiple() const;
2304 
2309  void setAllowMultiple( bool allowMultiple );
2310 
2320  bool defaultToAllFields() const;
2321 
2331  void setDefaultToAllFields( bool enabled );
2332 
2333  QVariantMap toVariantMap() const override;
2334  bool fromVariantMap( const QVariantMap &map ) override;
2335 
2339  static QgsProcessingParameterField *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2340 
2341  private:
2342 
2343  QString mParentLayerParameterName;
2344  DataType mDataType = Any;
2345  bool mAllowMultiple = false;
2346  bool mDefaultToAllFields = false;
2347 
2348 };
2349 
2350 
2357 class CORE_EXPORT QgsProcessingParameterFeatureSource : public QgsProcessingParameterDefinition, public QgsProcessingParameterLimitedDataTypes
2358 {
2359  public:
2360 
2364  QgsProcessingParameterFeatureSource( const QString &name, const QString &description = QString(),
2365  const QList< int > &types = QList< int >(),
2366  const QVariant &defaultValue = QVariant(), bool optional = false );
2367 
2371  static QString typeName() { return QStringLiteral( "source" ); }
2372  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2373  QString type() const override { return typeName(); }
2374  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2375  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2376  QString asScriptCode() const override;
2378 
2379  QVariantMap toVariantMap() const override;
2380  bool fromVariantMap( const QVariantMap &map ) override;
2381 
2385  static QgsProcessingParameterFeatureSource *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2386 
2387 };
2388 
2396 class CORE_EXPORT QgsProcessingDestinationParameter : public QgsProcessingParameterDefinition
2397 {
2398  public:
2399 
2406  QgsProcessingDestinationParameter( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
2407  bool optional = false, bool createByDefault = true );
2408 
2409  bool isDestination() const override { return true; }
2410  QVariantMap toVariantMap() const override;
2411  bool fromVariantMap( const QVariantMap &map ) override;
2413 
2418  virtual QgsProcessingOutputDefinition *toOutputDefinition() const = 0 SIP_FACTORY;
2419 
2425  bool supportsNonFileBasedOutput() const { return mSupportsNonFileBasedOutputs; }
2426 
2432  void setSupportsNonFileBasedOutput( bool supportsNonFileBasedOutput ) { mSupportsNonFileBasedOutputs = supportsNonFileBasedOutput; }
2433 
2438  virtual QString defaultFileExtension() const = 0;
2439 
2445  virtual QString generateTemporaryDestination() const;
2446 
2452  bool createByDefault() const;
2453 
2459  void setCreateByDefault( bool createByDefault );
2460 
2461  protected:
2462 
2471  QgsProcessingProvider *originalProvider() const { return mOriginalProvider; }
2472 
2473  private:
2474 
2482  QgsProcessingProvider *mOriginalProvider = nullptr;
2483 
2484  bool mSupportsNonFileBasedOutputs = true;
2485  bool mCreateByDefault = true;
2486 
2487  friend class QgsProcessingModelAlgorithm;
2488  friend class TestQgsProcessing;
2489 };
2490 
2491 
2501 {
2502  public:
2503 
2510  QgsProcessingParameterFeatureSink( const QString &name, const QString &description = QString(), QgsProcessing::SourceType type = QgsProcessing::TypeVectorAnyGeometry, const QVariant &defaultValue = QVariant(),
2511  bool optional = false, bool createByDefault = true );
2512 
2516  static QString typeName() { return QStringLiteral( "sink" ); }
2517  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2518  QString type() const override { return typeName(); }
2519  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2520  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2521  QString asScriptCode() const override;
2523  QString defaultFileExtension() const override;
2525 
2531  virtual QStringList supportedOutputVectorLayerExtensions() const;
2532 
2537  QgsProcessing::SourceType dataType() const;
2538 
2543  bool hasGeometry() const;
2544 
2549  void setDataType( QgsProcessing::SourceType type );
2550 
2551  QVariantMap toVariantMap() const override;
2552  bool fromVariantMap( const QVariantMap &map ) override;
2553  QString generateTemporaryDestination() const override;
2554 
2558  static QgsProcessingParameterFeatureSink *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2559 
2560  private:
2561 
2563 };
2564 
2565 
2577 {
2578  public:
2579 
2586  QgsProcessingParameterVectorDestination( const QString &name, const QString &description = QString(), QgsProcessing::SourceType type = QgsProcessing::TypeVectorAnyGeometry, const QVariant &defaultValue = QVariant(),
2587  bool optional = false, bool createByDefault = true );
2588 
2592  static QString typeName() { return QStringLiteral( "vectorDestination" ); }
2593  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2594  QString type() const override { return typeName(); }
2595  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2596  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2597  QString asScriptCode() const override;
2599  QString defaultFileExtension() const override;
2601 
2607  virtual QStringList supportedOutputVectorLayerExtensions() const;
2608 
2613  QgsProcessing::SourceType dataType() const;
2614 
2619  bool hasGeometry() const;
2620 
2625  void setDataType( QgsProcessing::SourceType type );
2626 
2627  QVariantMap toVariantMap() const override;
2628  bool fromVariantMap( const QVariantMap &map ) override;
2629 
2633  static QgsProcessingParameterVectorDestination *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2634 
2635 
2636  private:
2637 
2639 };
2640 
2649 {
2650  public:
2651 
2658  QgsProcessingParameterRasterDestination( const QString &name, const QString &description = QString(),
2659  const QVariant &defaultValue = QVariant(),
2660  bool optional = false,
2661  bool createByDefault = true );
2662 
2666  static QString typeName() { return QStringLiteral( "rasterDestination" ); }
2667  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2668  QString type() const override { return typeName(); }
2669  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2670  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2672  QString defaultFileExtension() const override;
2673 
2679  virtual QStringList supportedOutputRasterLayerExtensions() const;
2680 
2684  static QgsProcessingParameterRasterDestination *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2685 };
2686 
2695 {
2696  public:
2697 
2704  QgsProcessingParameterFileDestination( const QString &name, const QString &description = QString(),
2705  const QString &fileFilter = QString(),
2706  const QVariant &defaultValue = QVariant(),
2707  bool optional = false,
2708  bool createByDefault = true );
2709 
2713  static QString typeName() { return QStringLiteral( "fileDestination" ); }
2714  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2715  QString type() const override { return typeName(); }
2716  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2717  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2719  QString defaultFileExtension() const override;
2721 
2726  QString fileFilter() const;
2727 
2732  void setFileFilter( const QString &filter );
2733 
2734  QVariantMap toVariantMap() const override;
2735  bool fromVariantMap( const QVariantMap &map ) override;
2736 
2740  static QgsProcessingParameterFileDestination *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2741 
2742 
2743  private:
2744 
2745  QString mFileFilter;
2746 };
2747 
2757 {
2758  public:
2759 
2763  QgsProcessingParameterFolderDestination( const QString &name, const QString &description = QString(),
2764  const QVariant &defaultValue = QVariant(),
2765  bool optional = false,
2766  bool createByDefault = true );
2767 
2771  static QString typeName() { return QStringLiteral( "folderDestination" ); }
2772  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2773  QString type() const override { return typeName(); }
2774  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2776  QString defaultFileExtension() const override;
2777 
2781  static QgsProcessingParameterFolderDestination *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2782 
2783 };
2784 
2791 class CORE_EXPORT QgsProcessingParameterBand : public QgsProcessingParameterDefinition
2792 {
2793  public:
2794 
2798  QgsProcessingParameterBand( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
2799  const QString &parentLayerParameterName = QString(),
2800  bool optional = false,
2801  bool allowMultiple = false );
2802 
2806  static QString typeName() { return QStringLiteral( "band" ); }
2807  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2808  QString type() const override { return typeName(); }
2809  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
2810  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2811  QString asScriptCode() const override;
2812  QStringList dependsOnOtherParameters() const override;
2814 
2819  QString parentLayerParameterName() const;
2820 
2825  void setParentLayerParameterName( const QString &parentLayerParameterName );
2826 
2827  QVariantMap toVariantMap() const override;
2828  bool fromVariantMap( const QVariantMap &map ) override;
2829 
2833  static QgsProcessingParameterBand *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2834 
2840  bool allowMultiple() const;
2841 
2847  void setAllowMultiple( bool allowMultiple );
2848 
2849  private:
2850 
2851  QString mParentLayerParameterName;
2852  bool mAllowMultiple = false;
2853 };
2854 
2866 class CORE_EXPORT QgsProcessingParameterLayout : public QgsProcessingParameterDefinition
2867 {
2868  public:
2869 
2873  QgsProcessingParameterLayout( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
2874  bool optional = false );
2875 
2879  static QString typeName() { return QStringLiteral( "layout" ); }
2880  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2881  QString type() const override { return typeName(); }
2882  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2883  QString asScriptCode() const override;
2885 
2889  static QgsProcessingParameterLayout *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2890 
2891 };
2892 
2904 class CORE_EXPORT QgsProcessingParameterLayoutItem : public QgsProcessingParameterDefinition
2905 {
2906  public:
2907 
2911  QgsProcessingParameterLayoutItem( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
2912  const QString &parentLayoutParameterName = QString(),
2913  int itemType = -1,
2914  bool optional = false );
2915 
2919  static QString typeName() { return QStringLiteral( "layoutitem" ); }
2920  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2921  QString type() const override { return typeName(); }
2922  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2923  QString asScriptCode() const override;
2925  QVariantMap toVariantMap() const override;
2926  bool fromVariantMap( const QVariantMap &map ) override;
2927  QStringList dependsOnOtherParameters() const override;
2928 
2932  static QgsProcessingParameterLayoutItem *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
2933 
2938  QString parentLayoutParameterName() const;
2939 
2944  void setParentLayoutParameterName( const QString &name );
2945 
2953  int itemType() const;
2954 
2962  void setItemType( int type );
2963 
2964  private:
2965  QString mParentLayoutParameterName;
2966  int mItemType = -1;
2967 };
2968 
2978 class CORE_EXPORT QgsProcessingParameterColor : public QgsProcessingParameterDefinition
2979 {
2980  public:
2981 
2987  QgsProcessingParameterColor( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
2988  bool opacityEnabled = true,
2989  bool optional = false );
2990 
2994  static QString typeName() { return QStringLiteral( "color" ); }
2995  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
2996  QString type() const override { return typeName(); }
2997  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
2998  QString asScriptCode() const override;
3000  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
3001  QVariantMap toVariantMap() const override;
3002  bool fromVariantMap( const QVariantMap &map ) override;
3003 
3010  bool opacityEnabled() const;
3011 
3019  void setOpacityEnabled( bool enabled );
3020 
3024  static QgsProcessingParameterColor *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3025 
3026  private:
3027 
3028  bool mAllowOpacity = true;
3029 
3030 };
3031 
3032 
3042 class CORE_EXPORT QgsProcessingParameterCoordinateOperation : public QgsProcessingParameterDefinition
3043 {
3044  public:
3045 
3049  QgsProcessingParameterCoordinateOperation( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
3050  const QString &sourceCrsParameterName = QString(), const QString &destinationCrsParameterName = QString(),
3051  const QVariant &staticSourceCrs = QVariant(), const QVariant &staticDestinationCrs = QVariant(),
3052  bool optional = false );
3053 
3057  static QString typeName() { return QStringLiteral( "coordinateoperation" ); }
3058  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3059  QString type() const override { return typeName(); }
3060  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3061  QString asScriptCode() const override;
3063 
3064  QVariantMap toVariantMap() const override;
3065  bool fromVariantMap( const QVariantMap &map ) override;
3066 
3070  static QgsProcessingParameterCoordinateOperation *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3071 
3077  QString sourceCrsParameterName() const { return mSourceParameterName; }
3078 
3084  void setSourceCrsParameterName( const QString &name ) { mSourceParameterName = name; }
3085 
3091  QString destinationCrsParameterName() const { return mDestParameterName; }
3092 
3098  void setDestinationCrsParameterName( const QString &name ) { mDestParameterName = name; }
3099 
3105  QVariant sourceCrs() const { return mSourceCrs; }
3106 
3112  void setSourceCrs( const QVariant &crs ) { mSourceCrs = crs; }
3113 
3119  QVariant destinationCrs() const { return mDestCrs; }
3120 
3126  void setDestinationCrs( const QVariant &crs ) { mDestCrs = crs; }
3127 
3128  private:
3129 
3130  QString mSourceParameterName;
3131  QString mDestParameterName;
3132  QVariant mSourceCrs;
3133  QVariant mDestCrs;
3134 
3135 };
3136 
3137 
3147 class CORE_EXPORT QgsProcessingParameterMapTheme : public QgsProcessingParameterDefinition
3148 {
3149  public:
3150 
3154  QgsProcessingParameterMapTheme( const QString &name, const QString &description = QString(), const QVariant &defaultValue = QVariant(),
3155  bool optional = false );
3156 
3160  static QString typeName() { return QStringLiteral( "maptheme" ); }
3161  QgsProcessingParameterDefinition *clone() const override SIP_FACTORY;
3162  QString type() const override { return typeName(); }
3163  bool checkValueIsAcceptable( const QVariant &input, QgsProcessingContext *context = nullptr ) const override;
3164  QString valueAsPythonString( const QVariant &value, QgsProcessingContext &context ) const override;
3165  QString asScriptCode() const override;
3167  QVariantMap toVariantMap() const override;
3168  bool fromVariantMap( const QVariantMap &map ) override;
3169 
3173  static QgsProcessingParameterMapTheme *fromScriptCode( const QString &name, const QString &description, bool isOptional, const QString &definition ) SIP_FACTORY;
3174 
3175  private:
3176 
3177 };
3178 
3179 
3180 
3181 // clazy:excludeall=qstring-allocations
3182 
3183 #endif // QGSPROCESSINGPARAMETERS_H
3184 
3185 
QString type() const override
Unique parameter type name.
QgsProperty sink
Sink/layer definition.
A boolean parameter for processing algorithms.
QList< const QgsProcessingParameterDefinition *> QgsProcessingParameterDefinitions
List of processing parameters.
static QString typeName()
Returns the type name for the parameter class.
QgsPropertyDefinition dynamicPropertyDefinition() const
Returns the property definition for dynamic properties.
An input file or folder parameter for processing algorithms.
A parameter for processing algorithms which accepts multiple map layers.
virtual QString asScriptCode() const
Returns the parameter definition encoded in a string which can be used within a Processing script...
void setAdditionalExpressionContextVariables(const QStringList &variables)
Sets a list of additional expression context variables which are available for use when evaluating th...
A rectangle specified with double values.
Definition: qgsrectangle.h:41
Base class for all map layer types.
Definition: qgsmaplayer.h:79
QString type() const override
Unique parameter type name.
static QString typeName()
Returns the type name for the parameter class.
QVariantMap & metadata()
Returns the parameter&#39;s freeform metadata.
Base class for providing feedback from a processing algorithm.
virtual bool fromVariantMap(const QVariantMap &map)
Restores this parameter to a QVariantMap.
Base class for graphical items within a QgsLayout.
Encapsulates settings relating to a feature sink or output raster layer for a processing algorithm...
QgsProcessingFeatureSourceDefinition(const QString &source=QString(), bool selectedFeaturesOnly=false)
Constructor for QgsProcessingFeatureSourceDefinition, accepting a static string source.
QString type() const override
Unique parameter type name.
QString type() const override
Unique parameter type name.
void setIsDynamic(bool dynamic)
Sets whether the parameter is dynamic, and can support data-defined values (i.e.
QString type() const override
Unique parameter type name.
A vector layer or feature source field parameter for processing algorithms.
QString type() const override
Unique parameter type name.
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 asPythonString(QgsProcessing::PythonOutputType outputType=QgsProcessing::PythonQgsProcessingAlgorithmSubclass) const override
Returns the parameter definition as a Python command which can be used within a Python Processing scr...
QString type() const override
Unique parameter type name.
QString mDynamicLayerParameterName
Linked vector layer parameter name for dynamic properties.
static QString typeName()
Returns the type name for the parameter class.
static QString typeName()
Returns the type name for the parameter class.
QVariantMap metadata() const
Returns the parameter&#39;s freeform metadata.
static QString typeName()
Returns the type name for the parameter class.
Represents a raster layer.
static QString typeName()
Returns the type name for the parameter class.
QString type() const override
Unique parameter type name.
A print layout parameter, allowing users to select a print layout.
QString type() const override
Unique parameter type name.
A map layer parameter for processing algorithms.
A class to represent a 2D point.
Definition: qgspointxy.h:43
A color parameter for processing algorithms.
An expression parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
void setDestinationCrs(const QVariant &crs)
Sets the static destination crs.
QString type() const override
Unique parameter type name.
virtual QString asPythonString(QgsProcessing::PythonOutputType outputType=QgsProcessing::PythonQgsProcessingAlgorithmSubclass) const
Returns the parameter definition as a Python command which can be used within a Python Processing scr...
bool isDestination() const override
Returns true if this parameter represents a file or layer destination, e.g.
An interface for objects which accept features via addFeature(s) methods.
PythonOutputType
Available Python output types.
Definition: qgsprocessing.h:58
QgsProcessingProvider * originalProvider() const
Original (source) provider which this parameter has been derived from.
QString type() const override
Unique parameter type name.
static QString typeName()
Returns the type name for the parameter class.
static QString typeName()
Returns the type name for the parameter class.
QVariantMap mMetadata
Freeform metadata for parameter. Mostly used by widget wrappers to customize their appearance and beh...
QString type() const override
Unique parameter type name.
QgsFeatureSource subclass which proxies methods to an underlying QgsFeatureSource, modifying results according to the settings in a QgsProcessingContext.
Container of fields for a vector layer.
Definition: qgsfields.h:42
A geometry is the spatial representation of a feature.
Definition: qgsgeometry.h:122
static QString typeName()
Returns the type name for the parameter class.
Abstract base class for processing providers.
virtual QVariantMap toVariantMap() const
Saves this parameter to a QVariantMap.
void setFlags(Flags flags)
Sets the flags associated with the parameter.
A raster band parameter for Processing algorithms.
QString type() const override
Unique parameter type name.
QVariantMap toVariantMap() const override
Saves this parameter to a QVariantMap.
QgsUnitTypes::DistanceUnit defaultUnit() const
Returns the default distance unit for the parameter.
virtual QString valueAsPythonString(const QVariant &value, QgsProcessingContext &context) const
Returns a string version of the parameter input value, which is suitable for use as an input paramete...
static QString typeName()
Returns the type name for the parameter class.
QStringList mAdditionalExpressionVariables
Additional expression context variables exposed for use by this parameter.
QString type() const override
Unique parameter type name.
static QString typeName()
Returns the type name for the parameter class.
void setDefaultUnit(QgsUnitTypes::DistanceUnit unit)
Sets the default distance unit for the parameter.
const QgsCoordinateReferenceSystem & crs
QString type() const override
Unique parameter type name.
static QString typeName()
Returns the type name for the parameter class.
Base class for all parameter definitions which represent file or layer destinations, e.g.
Abstract base class for processing algorithms.
A coordinate operation parameter for processing algorithms, for selection between available coordinat...
A feature sink output for processing algorithms.
bool operator==(const QgsProcessingFeatureSourceDefinition &other)
bool selectedFeaturesOnly
true if only selected features in the source should be used by algorithms.
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.
static QString typeName()
Returns the type name for the parameter class.
A numeric range parameter for processing algorithms.
bool operator!=(const QgsProcessingFeatureSourceDefinition &other)
A double numeric parameter for map scale values.
void setDynamicPropertyDefinition(const QgsPropertyDefinition &definition)
Sets the property definition for dynamic properties.
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.
static QString typeName()
Returns the type name for the parameter class.
Can be inherited by parameters which require limits to their acceptable data types.
A raster layer parameter for processing algorithms.
Type
The WKB type describes the number of dimensions a geometry has.
Definition: qgswkbtypes.h:68
void setDescription(const QString &description)
Sets the description for the parameter.
virtual QString toolTip() const
Returns a formatted tooltip for use with the parameter, which gives helpful information like paramete...
static QgsProcessingParameterNumber * fromScriptCode(const QString &name, const QString &description, bool isOptional, const QString &definition)
Creates a new parameter using the definition from a script code.
static QString typeName()
Returns the type name for the parameter class.
static QString typeName()
Returns the type name for the parameter class.
QgsProperty source
Source definition.
QString type() const override
Unique parameter type name.
An enum based parameter for processing algorithms, allowing for selection from predefined values...
Flags flags() const
Returns any flags associated with the parameter.
static QString typeName()
Returns the type name for the parameter class.
QVariant defaultValue() const
Returns the default value for the parameter.
#define SIP_SKIP
Definition: qgis_sip.h:126
QVariant sourceCrs() const
Returns the static source CRS, or an invalid value if this is not set.
QString type() const override
Unique parameter type name.
QString type() const override
Unique parameter type name.
const QString & typeName
static QString typeName()
Returns the type name for the parameter class.
QgsProcessingOutputLayerDefinition(const QgsProperty &sink, QgsProject *destinationProject=nullptr)
Constructor for QgsProcessingOutputLayerDefinition, accepting a QgsProperty sink/layer.
A collection of utilities for working with parameters when running a processing algorithm.
A double numeric parameter for distance values.
void setSourceCrs(const QVariant &crs)
Sets the static source crs.
QString type() const override
Unique parameter type name.
Custom exception class for processing related exceptions.
Definition: qgsexception.h:82
#define SIP_END
Definition: qgis_sip.h:189
Q_DECLARE_METATYPE(QgsMeshTimeSettings)
Encapsulates a QGIS project, including sets of map layers and their styles, layouts, annotations, canvases, etc.
Definition: qgsproject.h:91
void setDefaultValue(const QVariant &value)
Sets the default value for the parameter.
QString type() const override
Unique parameter type name.
A vector layer (with or without geometry) parameter for processing algorithms.
virtual QString defaultFileExtension() const =0
Returns the default file extension for destination file paths associated with this parameter...
static QString typeName()
Returns the type name for the parameter class.
#define SIP_FACTORY
Definition: qgis_sip.h:76
A print layout item parameter, allowing users to select a particular item from a print layout...
A mesh layer parameter for processing algorithms.
A coordinate reference system parameter for processing algorithms.
A store for object properties.
Definition: qgsproperty.h:229
virtual QStringList dependsOnOtherParameters() const
Returns a list of other parameter names on which this parameter is dependent (e.g.
A rectangular map extent parameter for processing algorithms.
QString type() const override
Unique parameter type name.
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
A numeric parameter for processing algorithms.
A generic file based destination parameter, for specifying the destination path for a file (non-map l...
QString dynamicLayerParameterName() const
Returns the name of the parameter for a layer linked to a dynamic parameter, or an empty string if th...
Definition for a property.
Definition: qgsproperty.h:46
bool fromVariantMap(const QVariantMap &map) override
Restores this parameter to a QVariantMap.
QString name() const
Returns the name of the parameter.
QList< int > mDataTypes
List of acceptable data types for the parameter.
Encapsulates settings relating to a feature source input to a processing algorithm.
bool supportsNonFileBasedOutput() const
Returns true if the destination parameter supports non filed-based outputs, such as memory layers or ...
Behavior behavior() const
Returns the parameter behavior (e.g.
QVariant destinationCrs() const
Returns the static destination CRS, or an invalid value if this is not set.
QString type() const override
Unique parameter type name.
virtual bool isDestination() const
Returns true if this parameter represents a file or layer destination, e.g.
DistanceUnit
Units of distance.
Definition: qgsunittypes.h:66
QString extension() const
Returns any specified file extension for the parameter.
QString type() const override
Unique parameter type name.
QString type() const override
Unique parameter type name.
Base class for the definition of processing outputs.
static QString typeName()
Returns the type name for the parameter class.
void setName(const QString &name)
Sets the name of the parameter.
Unknown distance unit.
Definition: qgsunittypes.h:77
A vector layer destination parameter, for specifying the destination path for a vector layer created ...
QString type() const override
Unique parameter type name.
bool isDynamic() const
Returns true if the parameter supports is dynamic, and can support data-defined values (i...
A point parameter for processing algorithms.
static QString typeName()
Returns the type name for the parameter class.
void setSourceCrsParameterName(const QString &name)
Sets the name of the source CRS parameter.
An input feature source (such as vector layers) parameter for processing algorithms.
void setMetadata(const QVariantMap &metadata)
Sets the parameter&#39;s freeform metadata.
A folder destination parameter, for specifying the destination path for a folder created by the algor...
QString destinationName
Name to use for sink if it&#39;s to be loaded into a destination project.
#define SIP_OUT
Definition: qgis_sip.h:58
static QString typeName()
Returns the type name for the parameter class.
This class represents a coordinate reference system (CRS).
QgsProcessingOutputLayerDefinition(const QString &sink=QString(), QgsProject *destinationProject=nullptr)
Constructor for QgsProcessingOutputLayerDefinition, accepting a static sink/layer string...
Base class for the definition of processing parameters.
QStringList additionalExpressionContextVariables() const
Returns a list of additional expression context variables which are available for use when evaluating...
virtual bool checkValueIsAcceptable(const QVariant &input, QgsProcessingContext *context=nullptr) const
Checks whether the specified input value is acceptable for the parameter.
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
Definition: qgis_sip.h:172
QVariantMap toVariantMap() const override
Saves this parameter to a QVariantMap.
QVariant mDefault
Default value for parameter.
SourceType
Data source types enum.
Definition: qgsprocessing.h:44
QgsPropertyDefinition mPropertyDefinition
Data defined property definition.
QgsProcessingParameterDefinition * clone() const override
Creates a clone of the parameter definition.
static QString typeName()
Returns the type name for the parameter class.
QgsProcessingFeatureSourceDefinition(const QgsProperty &source, bool selectedFeaturesOnly=false)
Constructor for QgsProcessingFeatureSourceDefinition, accepting a QgsProperty source.
#define SIP_THROW(name)
Definition: qgis_sip.h:184
Represents a mesh layer supporting display of data on structured or unstructured meshes.
Definition: qgsmeshlayer.h:91
static QString typeName()
Returns the type name for the parameter class.
virtual QString generateTemporaryDestination() const
Generates a temporary destination value for this parameter.
void setSupportsNonFileBasedOutput(bool supportsNonFileBasedOutput)
Sets whether the destination parameter supports non filed-based outputs, such as memory layers or dir...
static QString typeName()
Returns the type name for the parameter class.
void setDestinationCrsParameterName(const QString &name)
Sets the name of the destination CRS parameter.
QString sourceCrsParameterName() const
Returns the name of the source CRS parameter, or an empty string if this is not set.
A table (matrix) parameter for processing algorithms.
Full Python QgsProcessingAlgorithm subclass.
Definition: qgsprocessing.h:60
Print layout, a QgsLayout subclass for static or atlas-based layouts.
QString type() const override
Unique parameter type name.
A string parameter for authentication configuration ID values.
QString mDescription
Parameter description.
QString destinationCrsParameterName() const
Returns the name of the destination CRS parameter, or an empty string if this is not set...
QString asPythonString(QgsProcessing::PythonOutputType outputType=QgsProcessing::PythonQgsProcessingAlgorithmSubclass) const override
Returns the parameter definition as a Python command which can be used within a Python Processing scr...
bool fromVariantMap(const QVariantMap &map) override
Restores this parameter to a QVariantMap.
void setBehavior(Behavior behavior)
Sets the parameter behavior (e.g.
Represents a vector layer which manages a vector based data sets.
A map theme parameter for processing algorithms, allowing users to select an existing map theme from ...
Contains information about the context in which a processing algorithm is executed.
A string parameter for processing algorithms.
QString type() const override
Unique parameter type name.
QString description() const
Returns the description for the parameter.
virtual QgsProcessingParameterDefinition * clone() const =0
Creates a clone of the parameter definition.
virtual QgsProcessingOutputDefinition * toOutputDefinition() const =0
Returns a new QgsProcessingOutputDefinition corresponding to the definition of the destination parame...
Any vector layer with geometry.
Definition: qgsprocessing.h:47
QString type() const override
Unique parameter type name.
static QString typeName()
Returns the type name for the parameter class.
QVariantMap createOptions
Map of optional sink/layer creation options, which are passed to the underlying provider when creatin...
QString type() const override
Unique parameter type name.
QString type() const override
Unique parameter type name.
static QString typeName()
Returns the type name for the parameter class.