diff --git a/python/plugins/processing/gui/AlgorithmDialog.py b/python/plugins/processing/gui/AlgorithmDialog.py index e1b5cd6060a..3bf0e228ff3 100644 --- a/python/plugins/processing/gui/AlgorithmDialog.py +++ b/python/plugins/processing/gui/AlgorithmDialog.py @@ -28,7 +28,7 @@ __revision__ = '$Format:%H$' from pprint import pformat import time -from qgis.PyQt.QtCore import QCoreApplication +from qgis.PyQt.QtCore import QCoreApplication, Qt from qgis.PyQt.QtWidgets import QMessageBox, QPushButton, QSizePolicy, QDialogButtonBox from qgis.PyQt.QtGui import QColor, QPalette @@ -241,6 +241,7 @@ class AlgorithmDialog(QgsProcessingAlgorithmDialogBase): feedback.pushInfo('') self.cancelButton().setEnabled(False) + self.finish(ok, results, context, feedback) if self.algorithm().flags() & QgsProcessingAlgorithm.FlagCanRunInBackground: @@ -248,7 +249,6 @@ class AlgorithmDialog(QgsProcessingAlgorithmDialogBase): task.executed.connect(on_complete) QgsApplication.taskManager().addTask(task) else: - self.setWindowModality(Qt.ApplicationModal) ok, results = execute(self.algorithm(), parameters, context, feedback) on_complete(ok, results) diff --git a/src/3d/processing/qgsalgorithmtessellate.cpp b/src/3d/processing/qgsalgorithmtessellate.cpp index 0611ce2a913..445419bdfdb 100644 --- a/src/3d/processing/qgsalgorithmtessellate.cpp +++ b/src/3d/processing/qgsalgorithmtessellate.cpp @@ -31,6 +31,11 @@ QString QgsTessellateAlgorithm::displayName() const return QObject::tr( "Tessellate" ); } +QgsProcessingAlgorithm::Flags QgsTessellateAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QStringList QgsTessellateAlgorithm::tags() const { return QObject::tr( "3d,triangle" ).split( ',' ); diff --git a/src/3d/processing/qgsalgorithmtessellate.h b/src/3d/processing/qgsalgorithmtessellate.h index bbde9138c56..660f452347e 100644 --- a/src/3d/processing/qgsalgorithmtessellate.h +++ b/src/3d/processing/qgsalgorithmtessellate.h @@ -36,6 +36,7 @@ class QgsTessellateAlgorithm : public QgsProcessingFeatureBasedAlgorithm QgsTessellateAlgorithm() = default; QString name() const override; QString displayName() const override; + Flags flags() const override; QStringList tags() const override; QString group() const override; QString shortHelpString() const override; diff --git a/src/analysis/processing/qgsalgorithmaddincrementalfield.cpp b/src/analysis/processing/qgsalgorithmaddincrementalfield.cpp index ed5be287b62..d21d110bdc5 100644 --- a/src/analysis/processing/qgsalgorithmaddincrementalfield.cpp +++ b/src/analysis/processing/qgsalgorithmaddincrementalfield.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsAddIncrementalFieldAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsAddIncrementalFieldAlgorithm::name() const { return QStringLiteral( "addautoincrementalfield" ); diff --git a/src/analysis/processing/qgsalgorithmaddincrementalfield.h b/src/analysis/processing/qgsalgorithmaddincrementalfield.h index aed49e22b6d..d9478b5a0b2 100644 --- a/src/analysis/processing/qgsalgorithmaddincrementalfield.h +++ b/src/analysis/processing/qgsalgorithmaddincrementalfield.h @@ -34,6 +34,7 @@ class QgsAddIncrementalFieldAlgorithm : public QgsProcessingFeatureBasedAlgorith public: QgsAddIncrementalFieldAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmassignprojection.cpp b/src/analysis/processing/qgsalgorithmassignprojection.cpp index a5e95e5a161..fd4bcac6fa8 100644 --- a/src/analysis/processing/qgsalgorithmassignprojection.cpp +++ b/src/analysis/processing/qgsalgorithmassignprojection.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsAssignProjectionAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsAssignProjectionAlgorithm::name() const { return QStringLiteral( "assignprojection" ); diff --git a/src/analysis/processing/qgsalgorithmassignprojection.h b/src/analysis/processing/qgsalgorithmassignprojection.h index c1eb030cad7..e066ae27b6f 100644 --- a/src/analysis/processing/qgsalgorithmassignprojection.h +++ b/src/analysis/processing/qgsalgorithmassignprojection.h @@ -34,6 +34,7 @@ class QgsAssignProjectionAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsAssignProjectionAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmboundary.cpp b/src/analysis/processing/qgsalgorithmboundary.cpp index a313cc87074..64c3854d097 100644 --- a/src/analysis/processing/qgsalgorithmboundary.cpp +++ b/src/analysis/processing/qgsalgorithmboundary.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsBoundaryAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsBoundaryAlgorithm::name() const { return QStringLiteral( "boundary" ); diff --git a/src/analysis/processing/qgsalgorithmboundary.h b/src/analysis/processing/qgsalgorithmboundary.h index 232e944112b..36a47ce99ed 100644 --- a/src/analysis/processing/qgsalgorithmboundary.h +++ b/src/analysis/processing/qgsalgorithmboundary.h @@ -34,6 +34,7 @@ class QgsBoundaryAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsBoundaryAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmboundingbox.cpp b/src/analysis/processing/qgsalgorithmboundingbox.cpp index 1034fddb362..c0669e7cc32 100644 --- a/src/analysis/processing/qgsalgorithmboundingbox.cpp +++ b/src/analysis/processing/qgsalgorithmboundingbox.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsBoundingBoxAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsBoundingBoxAlgorithm::name() const { return QStringLiteral( "boundingboxes" ); diff --git a/src/analysis/processing/qgsalgorithmboundingbox.h b/src/analysis/processing/qgsalgorithmboundingbox.h index 848e2dbb983..a72c34769d1 100644 --- a/src/analysis/processing/qgsalgorithmboundingbox.h +++ b/src/analysis/processing/qgsalgorithmboundingbox.h @@ -34,6 +34,7 @@ class QgsBoundingBoxAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsBoundingBoxAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmbuffer.cpp b/src/analysis/processing/qgsalgorithmbuffer.cpp index 61be4ad8fbb..6819c26399b 100644 --- a/src/analysis/processing/qgsalgorithmbuffer.cpp +++ b/src/analysis/processing/qgsalgorithmbuffer.cpp @@ -63,6 +63,11 @@ void QgsBufferAlgorithm::initAlgorithm( const QVariantMap & ) addParameter( new QgsProcessingParameterFeatureSink( QStringLiteral( "OUTPUT" ), QObject::tr( "Buffered" ), QgsProcessing::TypeVectorPolygon ) ); } +QgsProcessingAlgorithm::Flags QgsBufferAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsBufferAlgorithm::shortHelpString() const { return QObject::tr( "This algorithm computes a buffer area for all the features in an input layer, using a fixed or dynamic distance.\n\n" diff --git a/src/analysis/processing/qgsalgorithmbuffer.h b/src/analysis/processing/qgsalgorithmbuffer.h index 66ca273136a..da572377c7d 100644 --- a/src/analysis/processing/qgsalgorithmbuffer.h +++ b/src/analysis/processing/qgsalgorithmbuffer.h @@ -35,7 +35,7 @@ class QgsBufferAlgorithm : public QgsProcessingAlgorithm QgsBufferAlgorithm() = default; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; - + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmcentroid.cpp b/src/analysis/processing/qgsalgorithmcentroid.cpp index 67accb861d2..3ec7b22110d 100644 --- a/src/analysis/processing/qgsalgorithmcentroid.cpp +++ b/src/analysis/processing/qgsalgorithmcentroid.cpp @@ -49,6 +49,11 @@ QString QgsCentroidAlgorithm::outputName() const return QObject::tr( "Centroids" ); } +QgsProcessingAlgorithm::Flags QgsCentroidAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsCentroidAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) ); diff --git a/src/analysis/processing/qgsalgorithmcentroid.h b/src/analysis/processing/qgsalgorithmcentroid.h index bc9d20867c6..9cbc4972f36 100644 --- a/src/analysis/processing/qgsalgorithmcentroid.h +++ b/src/analysis/processing/qgsalgorithmcentroid.h @@ -34,6 +34,7 @@ class QgsCentroidAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsCentroidAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmclip.cpp b/src/analysis/processing/qgsalgorithmclip.cpp index 8f6dd740298..0b4d71f5564 100644 --- a/src/analysis/processing/qgsalgorithmclip.cpp +++ b/src/analysis/processing/qgsalgorithmclip.cpp @@ -40,6 +40,11 @@ QString QgsClipAlgorithm::group() const return QObject::tr( "Vector overlay" ); } +QgsProcessingAlgorithm::Flags QgsClipAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsClipAlgorithm::groupId() const { return QStringLiteral( "vectoroverlay" ); diff --git a/src/analysis/processing/qgsalgorithmclip.h b/src/analysis/processing/qgsalgorithmclip.h index 38a10c0f91b..ffc9dc7a034 100644 --- a/src/analysis/processing/qgsalgorithmclip.h +++ b/src/analysis/processing/qgsalgorithmclip.h @@ -34,6 +34,7 @@ class QgsClipAlgorithm : public QgsProcessingAlgorithm public: QgsClipAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmconvexhull.cpp b/src/analysis/processing/qgsalgorithmconvexhull.cpp index 5ff1455b70d..1d89f09ca07 100644 --- a/src/analysis/processing/qgsalgorithmconvexhull.cpp +++ b/src/analysis/processing/qgsalgorithmconvexhull.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsConvexHullAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsConvexHullAlgorithm::name() const { return QStringLiteral( "convexhull" ); diff --git a/src/analysis/processing/qgsalgorithmconvexhull.h b/src/analysis/processing/qgsalgorithmconvexhull.h index 9c47aff30b9..a0e8fb9f809 100644 --- a/src/analysis/processing/qgsalgorithmconvexhull.h +++ b/src/analysis/processing/qgsalgorithmconvexhull.h @@ -35,6 +35,7 @@ class QgsConvexHullAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsConvexHullAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmdissolve.cpp b/src/analysis/processing/qgsalgorithmdissolve.cpp index 960b09a8678..e4cfb34eb60 100644 --- a/src/analysis/processing/qgsalgorithmdissolve.cpp +++ b/src/analysis/processing/qgsalgorithmdissolve.cpp @@ -23,6 +23,11 @@ // QgsCollectorAlgorithm // +QgsProcessingAlgorithm::Flags QgsCollectorAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QVariantMap QgsCollectorAlgorithm::processCollection( const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback, const std::function& )> &collector, int maxQueueLength ) { diff --git a/src/analysis/processing/qgsalgorithmdissolve.h b/src/analysis/processing/qgsalgorithmdissolve.h index 2c98fc5f066..2607bf62203 100644 --- a/src/analysis/processing/qgsalgorithmdissolve.h +++ b/src/analysis/processing/qgsalgorithmdissolve.h @@ -32,6 +32,7 @@ class QgsCollectorAlgorithm : public QgsProcessingAlgorithm { protected: + Flags flags() const override; QVariantMap processCollection( const QVariantMap ¶meters, QgsProcessingContext &context, QgsProcessingFeedback *feedback, const std::function& )> &collector, int maxQueueLength = 0 ); }; diff --git a/src/analysis/processing/qgsalgorithmdropgeometry.cpp b/src/analysis/processing/qgsalgorithmdropgeometry.cpp index 56bf878aca1..a7a7c0c0e60 100644 --- a/src/analysis/processing/qgsalgorithmdropgeometry.cpp +++ b/src/analysis/processing/qgsalgorithmdropgeometry.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsDropGeometryAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsDropGeometryAlgorithm::name() const { return QStringLiteral( "dropgeometries" ); diff --git a/src/analysis/processing/qgsalgorithmdropgeometry.h b/src/analysis/processing/qgsalgorithmdropgeometry.h index b3b8c8d5a23..912a1caf624 100644 --- a/src/analysis/processing/qgsalgorithmdropgeometry.h +++ b/src/analysis/processing/qgsalgorithmdropgeometry.h @@ -34,6 +34,7 @@ class QgsDropGeometryAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsDropGeometryAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmdropmzvalues.cpp b/src/analysis/processing/qgsalgorithmdropmzvalues.cpp index dc6bce0294e..f02865878a8 100644 --- a/src/analysis/processing/qgsalgorithmdropmzvalues.cpp +++ b/src/analysis/processing/qgsalgorithmdropmzvalues.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsDropMZValuesAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsDropMZValuesAlgorithm::name() const { return QStringLiteral( "dropmzvalues" ); diff --git a/src/analysis/processing/qgsalgorithmdropmzvalues.h b/src/analysis/processing/qgsalgorithmdropmzvalues.h index 52cbe05b1d2..869c6624360 100644 --- a/src/analysis/processing/qgsalgorithmdropmzvalues.h +++ b/src/analysis/processing/qgsalgorithmdropmzvalues.h @@ -34,6 +34,7 @@ class QgsDropMZValuesAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsDropMZValuesAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmextenttolayer.cpp b/src/analysis/processing/qgsalgorithmextenttolayer.cpp index c7b8938d787..63f290606d2 100644 --- a/src/analysis/processing/qgsalgorithmextenttolayer.cpp +++ b/src/analysis/processing/qgsalgorithmextenttolayer.cpp @@ -24,6 +24,11 @@ QString QgsExtentToLayerAlgorithm::name() const return QStringLiteral( "extenttolayer" ); } +QgsProcessingAlgorithm::Flags QgsExtentToLayerAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsExtentToLayerAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterExtent( QStringLiteral( "INPUT" ), QObject::tr( "Extent" ) ) ); diff --git a/src/analysis/processing/qgsalgorithmextenttolayer.h b/src/analysis/processing/qgsalgorithmextenttolayer.h index bfd7c6600b3..541d6104421 100644 --- a/src/analysis/processing/qgsalgorithmextenttolayer.h +++ b/src/analysis/processing/qgsalgorithmextenttolayer.h @@ -34,6 +34,7 @@ class QgsExtentToLayerAlgorithm : public QgsProcessingAlgorithm public: QgsExtentToLayerAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override { return QObject::tr( "Create layer from extent" ); } diff --git a/src/analysis/processing/qgsalgorithmextractbyattribute.cpp b/src/analysis/processing/qgsalgorithmextractbyattribute.cpp index 7b220824ab7..be08b44d2d3 100644 --- a/src/analysis/processing/qgsalgorithmextractbyattribute.cpp +++ b/src/analysis/processing/qgsalgorithmextractbyattribute.cpp @@ -39,6 +39,11 @@ QString QgsExtractByAttributeAlgorithm::group() const return QObject::tr( "Vector selection" ); } +QgsProcessingAlgorithm::Flags QgsExtractByAttributeAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsExtractByAttributeAlgorithm::groupId() const { return QStringLiteral( "vectorselection" ); diff --git a/src/analysis/processing/qgsalgorithmextractbyattribute.h b/src/analysis/processing/qgsalgorithmextractbyattribute.h index 11455795533..aa0cdc815e0 100644 --- a/src/analysis/processing/qgsalgorithmextractbyattribute.h +++ b/src/analysis/processing/qgsalgorithmextractbyattribute.h @@ -49,6 +49,7 @@ class QgsExtractByAttributeAlgorithm : public QgsProcessingAlgorithm }; QgsExtractByAttributeAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmextractbyexpression.cpp b/src/analysis/processing/qgsalgorithmextractbyexpression.cpp index dd9a03579f7..04b2bf4889c 100644 --- a/src/analysis/processing/qgsalgorithmextractbyexpression.cpp +++ b/src/analysis/processing/qgsalgorithmextractbyexpression.cpp @@ -44,6 +44,11 @@ QString QgsExtractByExpressionAlgorithm::groupId() const return QStringLiteral( "vectorselection" ); } +QgsProcessingAlgorithm::Flags QgsExtractByExpressionAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsExtractByExpressionAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) ); diff --git a/src/analysis/processing/qgsalgorithmextractbyexpression.h b/src/analysis/processing/qgsalgorithmextractbyexpression.h index 9ee177a45c1..790eec9b77c 100644 --- a/src/analysis/processing/qgsalgorithmextractbyexpression.h +++ b/src/analysis/processing/qgsalgorithmextractbyexpression.h @@ -34,6 +34,7 @@ class QgsExtractByExpressionAlgorithm : public QgsProcessingAlgorithm public: QgsExtractByExpressionAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmextractbyextent.cpp b/src/analysis/processing/qgsalgorithmextractbyextent.cpp index 75877cbbb61..b3d1ca14ee3 100644 --- a/src/analysis/processing/qgsalgorithmextractbyextent.cpp +++ b/src/analysis/processing/qgsalgorithmextractbyextent.cpp @@ -44,6 +44,11 @@ QString QgsExtractByExtentAlgorithm::groupId() const return QStringLiteral( "vectoroverlay" ); } +QgsProcessingAlgorithm::Flags QgsExtractByExtentAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsExtractByExtentAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) ); diff --git a/src/analysis/processing/qgsalgorithmextractbyextent.h b/src/analysis/processing/qgsalgorithmextractbyextent.h index 87df6a29712..b714a5ed3f3 100644 --- a/src/analysis/processing/qgsalgorithmextractbyextent.h +++ b/src/analysis/processing/qgsalgorithmextractbyextent.h @@ -34,6 +34,7 @@ class QgsExtractByExtentAlgorithm : public QgsProcessingAlgorithm public: QgsExtractByExtentAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmextractbylocation.cpp b/src/analysis/processing/qgsalgorithmextractbylocation.cpp index 8d6927d7cce..d08f0cb22cd 100644 --- a/src/analysis/processing/qgsalgorithmextractbylocation.cpp +++ b/src/analysis/processing/qgsalgorithmextractbylocation.cpp @@ -286,6 +286,11 @@ QVariantMap QgsSelectByLocationAlgorithm::processAlgorithm( const QVariantMap &p // QgsExtractByLocationAlgorithm // +QgsProcessingAlgorithm::Flags QgsExtractByLocationAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsExtractByLocationAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterVectorLayer( QStringLiteral( "INPUT" ), QObject::tr( "Extract features from" ), diff --git a/src/analysis/processing/qgsalgorithmextractbylocation.h b/src/analysis/processing/qgsalgorithmextractbylocation.h index 5a69277e1db..ce1f9cbcbf5 100644 --- a/src/analysis/processing/qgsalgorithmextractbylocation.h +++ b/src/analysis/processing/qgsalgorithmextractbylocation.h @@ -87,6 +87,7 @@ class QgsExtractByLocationAlgorithm : public QgsLocationBasedAlgorithm public: QgsExtractByLocationAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmextractnodes.cpp b/src/analysis/processing/qgsalgorithmextractnodes.cpp index 8b41906084f..22be063b258 100644 --- a/src/analysis/processing/qgsalgorithmextractnodes.cpp +++ b/src/analysis/processing/qgsalgorithmextractnodes.cpp @@ -59,6 +59,11 @@ QgsExtractNodesAlgorithm *QgsExtractNodesAlgorithm::createInstance() const return new QgsExtractNodesAlgorithm(); } +QgsProcessingAlgorithm::Flags QgsExtractNodesAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsExtractNodesAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) ); diff --git a/src/analysis/processing/qgsalgorithmextractnodes.h b/src/analysis/processing/qgsalgorithmextractnodes.h index e1589b2da5b..18e60750048 100644 --- a/src/analysis/processing/qgsalgorithmextractnodes.h +++ b/src/analysis/processing/qgsalgorithmextractnodes.h @@ -34,6 +34,7 @@ class QgsExtractNodesAlgorithm : public QgsProcessingAlgorithm public: QgsExtractNodesAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmfiledownloader.cpp b/src/analysis/processing/qgsalgorithmfiledownloader.cpp index 1ee12618528..2c768ceeb65 100644 --- a/src/analysis/processing/qgsalgorithmfiledownloader.cpp +++ b/src/analysis/processing/qgsalgorithmfiledownloader.cpp @@ -60,6 +60,11 @@ QgsFileDownloaderAlgorithm *QgsFileDownloaderAlgorithm::createInstance() const return new QgsFileDownloaderAlgorithm(); } +QgsProcessingAlgorithm::Flags QgsFileDownloaderAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsFileDownloaderAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterString( QStringLiteral( "URL" ), tr( "URL" ), QVariant(), false, false ) ); diff --git a/src/analysis/processing/qgsalgorithmfiledownloader.h b/src/analysis/processing/qgsalgorithmfiledownloader.h index a6d13f705be..8ad2e56e164 100644 --- a/src/analysis/processing/qgsalgorithmfiledownloader.h +++ b/src/analysis/processing/qgsalgorithmfiledownloader.h @@ -34,6 +34,7 @@ class QgsFileDownloaderAlgorithm : public QgsProcessingAlgorithm, public QObject { public: QgsFileDownloaderAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmfixgeometries.cpp b/src/analysis/processing/qgsalgorithmfixgeometries.cpp index db778a259ec..9fa833ba328 100644 --- a/src/analysis/processing/qgsalgorithmfixgeometries.cpp +++ b/src/analysis/processing/qgsalgorithmfixgeometries.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsFixGeometriesAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsFixGeometriesAlgorithm::name() const { return QStringLiteral( "fixgeometries" ); diff --git a/src/analysis/processing/qgsalgorithmfixgeometries.h b/src/analysis/processing/qgsalgorithmfixgeometries.h index aa46626b938..cc2fa01649c 100644 --- a/src/analysis/processing/qgsalgorithmfixgeometries.h +++ b/src/analysis/processing/qgsalgorithmfixgeometries.h @@ -34,6 +34,7 @@ class QgsFixGeometriesAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsFixGeometriesAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmjoinbyattribute.cpp b/src/analysis/processing/qgsalgorithmjoinbyattribute.cpp index 2c3ad80873b..de7fbc50ccb 100644 --- a/src/analysis/processing/qgsalgorithmjoinbyattribute.cpp +++ b/src/analysis/processing/qgsalgorithmjoinbyattribute.cpp @@ -44,6 +44,11 @@ QString QgsJoinByAttributeAlgorithm::groupId() const return QStringLiteral( "vectorgeneral" ); } +QgsProcessingAlgorithm::Flags QgsJoinByAttributeAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsJoinByAttributeAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), diff --git a/src/analysis/processing/qgsalgorithmjoinbyattribute.h b/src/analysis/processing/qgsalgorithmjoinbyattribute.h index b29b993a6b4..59e717b0404 100644 --- a/src/analysis/processing/qgsalgorithmjoinbyattribute.h +++ b/src/analysis/processing/qgsalgorithmjoinbyattribute.h @@ -34,6 +34,7 @@ class QgsJoinByAttributeAlgorithm : public QgsProcessingAlgorithm public: QgsJoinByAttributeAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmjoinwithlines.cpp b/src/analysis/processing/qgsalgorithmjoinwithlines.cpp index e4a459e909c..98743255a54 100644 --- a/src/analysis/processing/qgsalgorithmjoinwithlines.cpp +++ b/src/analysis/processing/qgsalgorithmjoinwithlines.cpp @@ -45,6 +45,11 @@ QString QgsJoinWithLinesAlgorithm::groupId() const return QStringLiteral( "vectoranalysis" ); } +QgsProcessingAlgorithm::Flags QgsJoinWithLinesAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsJoinWithLinesAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "HUBS" ), diff --git a/src/analysis/processing/qgsalgorithmjoinwithlines.h b/src/analysis/processing/qgsalgorithmjoinwithlines.h index 6212476beb3..c0bfb47415a 100644 --- a/src/analysis/processing/qgsalgorithmjoinwithlines.h +++ b/src/analysis/processing/qgsalgorithmjoinwithlines.h @@ -34,6 +34,7 @@ class QgsJoinWithLinesAlgorithm : public QgsProcessingAlgorithm public: QgsJoinWithLinesAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmlineintersection.cpp b/src/analysis/processing/qgsalgorithmlineintersection.cpp index 7ff1ed6878c..1c83ff37a37 100644 --- a/src/analysis/processing/qgsalgorithmlineintersection.cpp +++ b/src/analysis/processing/qgsalgorithmlineintersection.cpp @@ -45,6 +45,11 @@ QString QgsLineIntersectionAlgorithm::groupId() const return QStringLiteral( "vectoroverlay" ); } +QgsProcessingAlgorithm::Flags QgsLineIntersectionAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsLineIntersectionAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), diff --git a/src/analysis/processing/qgsalgorithmlineintersection.h b/src/analysis/processing/qgsalgorithmlineintersection.h index ae9f8f44ae8..28f98008eca 100644 --- a/src/analysis/processing/qgsalgorithmlineintersection.h +++ b/src/analysis/processing/qgsalgorithmlineintersection.h @@ -34,6 +34,7 @@ class QgsLineIntersectionAlgorithm : public QgsProcessingAlgorithm public: QgsLineIntersectionAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmloadlayer.cpp b/src/analysis/processing/qgsalgorithmloadlayer.cpp index 271640f7f10..46719509b9f 100644 --- a/src/analysis/processing/qgsalgorithmloadlayer.cpp +++ b/src/analysis/processing/qgsalgorithmloadlayer.cpp @@ -26,7 +26,7 @@ QString QgsLoadLayerAlgorithm::name() const QgsProcessingAlgorithm::Flags QgsLoadLayerAlgorithm::flags() const { - return FlagHideFromToolbox; + return FlagHideFromToolbox | QgsProcessingAlgorithm::FlagCanRunInBackground; } QString QgsLoadLayerAlgorithm::displayName() const diff --git a/src/analysis/processing/qgsalgorithmmeancoordinates.cpp b/src/analysis/processing/qgsalgorithmmeancoordinates.cpp index a0c68dd54fc..c447ad37b08 100644 --- a/src/analysis/processing/qgsalgorithmmeancoordinates.cpp +++ b/src/analysis/processing/qgsalgorithmmeancoordinates.cpp @@ -44,6 +44,11 @@ QString QgsMeanCoordinatesAlgorithm::groupId() const return QStringLiteral( "vectoranalysis" ); } +QgsProcessingAlgorithm::Flags QgsMeanCoordinatesAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsMeanCoordinatesAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), diff --git a/src/analysis/processing/qgsalgorithmmeancoordinates.h b/src/analysis/processing/qgsalgorithmmeancoordinates.h index cdcbde630e0..a24207152a0 100644 --- a/src/analysis/processing/qgsalgorithmmeancoordinates.h +++ b/src/analysis/processing/qgsalgorithmmeancoordinates.h @@ -35,6 +35,7 @@ class QgsMeanCoordinatesAlgorithm : public QgsProcessingAlgorithm public: QgsMeanCoordinatesAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmmergelines.cpp b/src/analysis/processing/qgsalgorithmmergelines.cpp index 352ee76ace9..4bae2a471ea 100644 --- a/src/analysis/processing/qgsalgorithmmergelines.cpp +++ b/src/analysis/processing/qgsalgorithmmergelines.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsMergeLinesAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsMergeLinesAlgorithm::name() const { return QStringLiteral( "mergelines" ); diff --git a/src/analysis/processing/qgsalgorithmmergelines.h b/src/analysis/processing/qgsalgorithmmergelines.h index 70245fd2121..6c33940ec38 100644 --- a/src/analysis/processing/qgsalgorithmmergelines.h +++ b/src/analysis/processing/qgsalgorithmmergelines.h @@ -38,6 +38,7 @@ class QgsMergeLinesAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsMergeLinesAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmmergevector.cpp b/src/analysis/processing/qgsalgorithmmergevector.cpp index 19004239d7b..e9cd3dd91ba 100644 --- a/src/analysis/processing/qgsalgorithmmergevector.cpp +++ b/src/analysis/processing/qgsalgorithmmergevector.cpp @@ -39,6 +39,11 @@ QString QgsMergeVectorAlgorithm::group() const return QObject::tr( "Vector general" ); } +QgsProcessingAlgorithm::Flags QgsMergeVectorAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsMergeVectorAlgorithm::groupId() const { return QStringLiteral( "vectorgeneral" ); diff --git a/src/analysis/processing/qgsalgorithmmergevector.h b/src/analysis/processing/qgsalgorithmmergevector.h index 00371453a37..66986ffa6e5 100644 --- a/src/analysis/processing/qgsalgorithmmergevector.h +++ b/src/analysis/processing/qgsalgorithmmergevector.h @@ -34,6 +34,7 @@ class QgsMergeVectorAlgorithm : public QgsProcessingAlgorithm public: QgsMergeVectorAlgorithm() = default; + QgsProcessingAlgorithm::Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmminimumenclosingcircle.cpp b/src/analysis/processing/qgsalgorithmminimumenclosingcircle.cpp index e855bcd3784..ca659d494d3 100644 --- a/src/analysis/processing/qgsalgorithmminimumenclosingcircle.cpp +++ b/src/analysis/processing/qgsalgorithmminimumenclosingcircle.cpp @@ -54,6 +54,11 @@ QgsWkbTypes::Type QgsMinimumEnclosingCircleAlgorithm::outputWkbType( QgsWkbTypes return QgsWkbTypes::Polygon; } +QgsProcessingAlgorithm::Flags QgsMinimumEnclosingCircleAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsMinimumEnclosingCircleAlgorithm::initParameters( const QVariantMap & ) { addParameter( new QgsProcessingParameterNumber( QStringLiteral( "SEGMENTS" ), QObject::tr( "Number of segments in circles" ), QgsProcessingParameterNumber::Integer, diff --git a/src/analysis/processing/qgsalgorithmminimumenclosingcircle.h b/src/analysis/processing/qgsalgorithmminimumenclosingcircle.h index 71e13407427..fec6acf29c8 100644 --- a/src/analysis/processing/qgsalgorithmminimumenclosingcircle.h +++ b/src/analysis/processing/qgsalgorithmminimumenclosingcircle.h @@ -34,6 +34,7 @@ class QgsMinimumEnclosingCircleAlgorithm : public QgsProcessingFeatureBasedAlgor public: QgsMinimumEnclosingCircleAlgorithm() = default; + Flags flags() const override; void initParameters( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmmultiparttosinglepart.cpp b/src/analysis/processing/qgsalgorithmmultiparttosinglepart.cpp index 36f7818c945..69821e29bd8 100644 --- a/src/analysis/processing/qgsalgorithmmultiparttosinglepart.cpp +++ b/src/analysis/processing/qgsalgorithmmultiparttosinglepart.cpp @@ -44,6 +44,11 @@ QString QgsMultipartToSinglepartAlgorithm::groupId() const return QStringLiteral( "vectorgeometry" ); } +QgsProcessingAlgorithm::Flags QgsMultipartToSinglepartAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsMultipartToSinglepartAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) ); diff --git a/src/analysis/processing/qgsalgorithmmultiparttosinglepart.h b/src/analysis/processing/qgsalgorithmmultiparttosinglepart.h index 5adc4e11906..1f93a385c8d 100644 --- a/src/analysis/processing/qgsalgorithmmultiparttosinglepart.h +++ b/src/analysis/processing/qgsalgorithmmultiparttosinglepart.h @@ -34,6 +34,7 @@ class QgsMultipartToSinglepartAlgorithm : public QgsProcessingAlgorithm public: QgsMultipartToSinglepartAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmorderbyexpression.cpp b/src/analysis/processing/qgsalgorithmorderbyexpression.cpp index 6a9b7e4f1ba..faa6b5f10ed 100644 --- a/src/analysis/processing/qgsalgorithmorderbyexpression.cpp +++ b/src/analysis/processing/qgsalgorithmorderbyexpression.cpp @@ -47,6 +47,11 @@ QString QgsOrderByExpressionAlgorithm::groupId() const return QStringLiteral( "vectorgeneral" ); } +QgsProcessingAlgorithm::Flags QgsOrderByExpressionAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsOrderByExpressionAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) ); diff --git a/src/analysis/processing/qgsalgorithmorderbyexpression.h b/src/analysis/processing/qgsalgorithmorderbyexpression.h index 3afc8c66db1..cd2599fc843 100644 --- a/src/analysis/processing/qgsalgorithmorderbyexpression.h +++ b/src/analysis/processing/qgsalgorithmorderbyexpression.h @@ -34,6 +34,7 @@ class QgsOrderByExpressionAlgorithm : public QgsProcessingAlgorithm { public: QgsOrderByExpressionAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmorientedminimumboundingbox.cpp b/src/analysis/processing/qgsalgorithmorientedminimumboundingbox.cpp index 44424341a22..a5154664d53 100644 --- a/src/analysis/processing/qgsalgorithmorientedminimumboundingbox.cpp +++ b/src/analysis/processing/qgsalgorithmorientedminimumboundingbox.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsOrientedMinimumBoundingBoxAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsOrientedMinimumBoundingBoxAlgorithm::name() const { return QStringLiteral( "orientedminimumboundingbox" ); diff --git a/src/analysis/processing/qgsalgorithmorientedminimumboundingbox.h b/src/analysis/processing/qgsalgorithmorientedminimumboundingbox.h index d7056394914..ac7de53d080 100644 --- a/src/analysis/processing/qgsalgorithmorientedminimumboundingbox.h +++ b/src/analysis/processing/qgsalgorithmorientedminimumboundingbox.h @@ -34,6 +34,7 @@ class QgsOrientedMinimumBoundingBoxAlgorithm : public QgsProcessingFeatureBasedA public: QgsOrientedMinimumBoundingBoxAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmpackage.cpp b/src/analysis/processing/qgsalgorithmpackage.cpp index 891f4d46c8f..4661126402b 100644 --- a/src/analysis/processing/qgsalgorithmpackage.cpp +++ b/src/analysis/processing/qgsalgorithmpackage.cpp @@ -47,6 +47,11 @@ QString QgsPackageAlgorithm::groupId() const return QStringLiteral( "database" ); } +QgsProcessingAlgorithm::Flags QgsPackageAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsPackageAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterMultipleLayers( QStringLiteral( "LAYERS" ), QObject::tr( "Input layers" ), QgsProcessing::TypeVector ) ); diff --git a/src/analysis/processing/qgsalgorithmpackage.h b/src/analysis/processing/qgsalgorithmpackage.h index dc818d40577..9ac5e907a9e 100644 --- a/src/analysis/processing/qgsalgorithmpackage.h +++ b/src/analysis/processing/qgsalgorithmpackage.h @@ -36,6 +36,7 @@ class QgsPackageAlgorithm : public QgsProcessingAlgorithm public: QgsPackageAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmpromotetomultipart.cpp b/src/analysis/processing/qgsalgorithmpromotetomultipart.cpp index b761be0123d..05185ad42bf 100644 --- a/src/analysis/processing/qgsalgorithmpromotetomultipart.cpp +++ b/src/analysis/processing/qgsalgorithmpromotetomultipart.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsPromoteToMultipartAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsPromoteToMultipartAlgorithm::name() const { return QStringLiteral( "promotetomulti" ); diff --git a/src/analysis/processing/qgsalgorithmpromotetomultipart.h b/src/analysis/processing/qgsalgorithmpromotetomultipart.h index 2badf961a82..2004c4c39e7 100644 --- a/src/analysis/processing/qgsalgorithmpromotetomultipart.h +++ b/src/analysis/processing/qgsalgorithmpromotetomultipart.h @@ -35,6 +35,7 @@ class QgsPromoteToMultipartAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsPromoteToMultipartAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmrasterlayeruniquevalues.cpp b/src/analysis/processing/qgsalgorithmrasterlayeruniquevalues.cpp index cf5449f9860..b1c21946795 100644 --- a/src/analysis/processing/qgsalgorithmrasterlayeruniquevalues.cpp +++ b/src/analysis/processing/qgsalgorithmrasterlayeruniquevalues.cpp @@ -44,6 +44,11 @@ QString QgsRasterLayerUniqueValuesReportAlgorithm::groupId() const return QStringLiteral( "rasteranalysis" ); } +QgsProcessingAlgorithm::Flags QgsRasterLayerUniqueValuesReportAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsRasterLayerUniqueValuesReportAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterRasterLayer( QStringLiteral( "INPUT" ), diff --git a/src/analysis/processing/qgsalgorithmrasterlayeruniquevalues.h b/src/analysis/processing/qgsalgorithmrasterlayeruniquevalues.h index 172f722fb3c..d230b9582d1 100644 --- a/src/analysis/processing/qgsalgorithmrasterlayeruniquevalues.h +++ b/src/analysis/processing/qgsalgorithmrasterlayeruniquevalues.h @@ -34,6 +34,7 @@ class QgsRasterLayerUniqueValuesReportAlgorithm : public QgsProcessingAlgorithm public: QgsRasterLayerUniqueValuesReportAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmremoveduplicatenodes.cpp b/src/analysis/processing/qgsalgorithmremoveduplicatenodes.cpp index 313b83b9589..597b5aad593 100644 --- a/src/analysis/processing/qgsalgorithmremoveduplicatenodes.cpp +++ b/src/analysis/processing/qgsalgorithmremoveduplicatenodes.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsAlgorithmRemoveDuplicateNodes::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsAlgorithmRemoveDuplicateNodes::name() const { return QStringLiteral( "removeduplicatenodes" ); diff --git a/src/analysis/processing/qgsalgorithmremoveduplicatenodes.h b/src/analysis/processing/qgsalgorithmremoveduplicatenodes.h index 92267bd2f1b..c4a009159ea 100644 --- a/src/analysis/processing/qgsalgorithmremoveduplicatenodes.h +++ b/src/analysis/processing/qgsalgorithmremoveduplicatenodes.h @@ -34,6 +34,7 @@ class QgsAlgorithmRemoveDuplicateNodes : public QgsProcessingFeatureBasedAlgorit public: QgsAlgorithmRemoveDuplicateNodes() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmremovenullgeometry.cpp b/src/analysis/processing/qgsalgorithmremovenullgeometry.cpp index 6ff91765ffc..532d21d8cd1 100644 --- a/src/analysis/processing/qgsalgorithmremovenullgeometry.cpp +++ b/src/analysis/processing/qgsalgorithmremovenullgeometry.cpp @@ -44,6 +44,11 @@ QString QgsRemoveNullGeometryAlgorithm::groupId() const return QStringLiteral( "vectorgeometry" ); } +QgsProcessingAlgorithm::Flags QgsRemoveNullGeometryAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsRemoveNullGeometryAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) ); diff --git a/src/analysis/processing/qgsalgorithmremovenullgeometry.h b/src/analysis/processing/qgsalgorithmremovenullgeometry.h index c93b42830c4..6eb53223261 100644 --- a/src/analysis/processing/qgsalgorithmremovenullgeometry.h +++ b/src/analysis/processing/qgsalgorithmremovenullgeometry.h @@ -34,6 +34,7 @@ class QgsRemoveNullGeometryAlgorithm : public QgsProcessingAlgorithm public: QgsRemoveNullGeometryAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmrenamelayer.cpp b/src/analysis/processing/qgsalgorithmrenamelayer.cpp index 396ffdfb741..b122d979f92 100644 --- a/src/analysis/processing/qgsalgorithmrenamelayer.cpp +++ b/src/analysis/processing/qgsalgorithmrenamelayer.cpp @@ -26,7 +26,7 @@ QString QgsRenameLayerAlgorithm::name() const QgsProcessingAlgorithm::Flags QgsRenameLayerAlgorithm::flags() const { - return FlagHideFromToolbox; + return FlagHideFromToolbox | FlagCanRunInBackground; } QString QgsRenameLayerAlgorithm::displayName() const diff --git a/src/analysis/processing/qgsalgorithmsaveselectedfeatures.cpp b/src/analysis/processing/qgsalgorithmsaveselectedfeatures.cpp index 3182667480e..1fe930c83ef 100644 --- a/src/analysis/processing/qgsalgorithmsaveselectedfeatures.cpp +++ b/src/analysis/processing/qgsalgorithmsaveselectedfeatures.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsSaveSelectedFeatures::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsSaveSelectedFeatures::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterVectorLayer( QStringLiteral( "INPUT" ), QObject::tr( "Input layer" ) ) ); diff --git a/src/analysis/processing/qgsalgorithmsaveselectedfeatures.h b/src/analysis/processing/qgsalgorithmsaveselectedfeatures.h index 9a8c97d2399..f3c9af510ec 100644 --- a/src/analysis/processing/qgsalgorithmsaveselectedfeatures.h +++ b/src/analysis/processing/qgsalgorithmsaveselectedfeatures.h @@ -34,6 +34,7 @@ class QgsSaveSelectedFeatures : public QgsProcessingAlgorithm public: QgsSaveSelectedFeatures() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmsimplify.cpp b/src/analysis/processing/qgsalgorithmsimplify.cpp index 1f4d1523189..2887417decc 100644 --- a/src/analysis/processing/qgsalgorithmsimplify.cpp +++ b/src/analysis/processing/qgsalgorithmsimplify.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsSimplifyAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsSimplifyAlgorithm::name() const { return QStringLiteral( "simplifygeometries" ); diff --git a/src/analysis/processing/qgsalgorithmsimplify.h b/src/analysis/processing/qgsalgorithmsimplify.h index 3028a238169..a716e8b7e33 100644 --- a/src/analysis/processing/qgsalgorithmsimplify.h +++ b/src/analysis/processing/qgsalgorithmsimplify.h @@ -35,6 +35,7 @@ class QgsSimplifyAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsSimplifyAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmsmooth.cpp b/src/analysis/processing/qgsalgorithmsmooth.cpp index b13555d090d..ca1fbb93aa1 100644 --- a/src/analysis/processing/qgsalgorithmsmooth.cpp +++ b/src/analysis/processing/qgsalgorithmsmooth.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsSmoothAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsSmoothAlgorithm::name() const { return QStringLiteral( "smoothgeometry" ); diff --git a/src/analysis/processing/qgsalgorithmsmooth.h b/src/analysis/processing/qgsalgorithmsmooth.h index 6a884543b58..fc9f86069dc 100644 --- a/src/analysis/processing/qgsalgorithmsmooth.h +++ b/src/analysis/processing/qgsalgorithmsmooth.h @@ -34,6 +34,7 @@ class QgsSmoothAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsSmoothAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmsnaptogrid.cpp b/src/analysis/processing/qgsalgorithmsnaptogrid.cpp index aefdfe9b18d..95092e1808c 100644 --- a/src/analysis/processing/qgsalgorithmsnaptogrid.cpp +++ b/src/analysis/processing/qgsalgorithmsnaptogrid.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsSnapToGridAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsSnapToGridAlgorithm::name() const { return QStringLiteral( "snappointstogrid" ); diff --git a/src/analysis/processing/qgsalgorithmsnaptogrid.h b/src/analysis/processing/qgsalgorithmsnaptogrid.h index 50cf1ae68f2..290815f8f73 100644 --- a/src/analysis/processing/qgsalgorithmsnaptogrid.h +++ b/src/analysis/processing/qgsalgorithmsnaptogrid.h @@ -34,6 +34,7 @@ class QgsSnapToGridAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsSnapToGridAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmsplitwithlines.cpp b/src/analysis/processing/qgsalgorithmsplitwithlines.cpp index fcc5acdcfe3..b8bb476ae3f 100644 --- a/src/analysis/processing/qgsalgorithmsplitwithlines.cpp +++ b/src/analysis/processing/qgsalgorithmsplitwithlines.cpp @@ -45,6 +45,11 @@ QString QgsSplitWithLinesAlgorithm::groupId() const return QStringLiteral( "vectoroverlay" ); } +QgsProcessingAlgorithm::Flags QgsSplitWithLinesAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsSplitWithLinesAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), diff --git a/src/analysis/processing/qgsalgorithmsplitwithlines.h b/src/analysis/processing/qgsalgorithmsplitwithlines.h index 23d98466f80..86f3b4655a1 100644 --- a/src/analysis/processing/qgsalgorithmsplitwithlines.h +++ b/src/analysis/processing/qgsalgorithmsplitwithlines.h @@ -35,6 +35,7 @@ class QgsSplitWithLinesAlgorithm : public QgsProcessingAlgorithm public: QgsSplitWithLinesAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmstringconcatenation.cpp b/src/analysis/processing/qgsalgorithmstringconcatenation.cpp index 9bc55b7ea7e..3ec410b6d5d 100644 --- a/src/analysis/processing/qgsalgorithmstringconcatenation.cpp +++ b/src/analysis/processing/qgsalgorithmstringconcatenation.cpp @@ -26,7 +26,7 @@ QString QgsStringConcatenationAlgorithm::name() const QgsProcessingAlgorithm::Flags QgsStringConcatenationAlgorithm::flags() const { - return FlagHideFromToolbox; + return FlagHideFromToolbox | FlagCanRunInBackground; } QString QgsStringConcatenationAlgorithm::displayName() const diff --git a/src/analysis/processing/qgsalgorithmsubdivide.cpp b/src/analysis/processing/qgsalgorithmsubdivide.cpp index ca4cf9419d1..b55a2dba77d 100644 --- a/src/analysis/processing/qgsalgorithmsubdivide.cpp +++ b/src/analysis/processing/qgsalgorithmsubdivide.cpp @@ -20,6 +20,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsSubdivideAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsSubdivideAlgorithm::initParameters( const QVariantMap & ) { addParameter( new QgsProcessingParameterNumber( QStringLiteral( "MAX_NODES" ), QObject::tr( "Maximum nodes in parts" ), QgsProcessingParameterNumber::Integer, diff --git a/src/analysis/processing/qgsalgorithmsubdivide.h b/src/analysis/processing/qgsalgorithmsubdivide.h index bafa370e901..31843c634bc 100644 --- a/src/analysis/processing/qgsalgorithmsubdivide.h +++ b/src/analysis/processing/qgsalgorithmsubdivide.h @@ -34,6 +34,7 @@ class QgsSubdivideAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsSubdivideAlgorithm() = default; + Flags flags() const override; void initParameters( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmtransect.cpp b/src/analysis/processing/qgsalgorithmtransect.cpp index 86582cfa3bc..4e2e643f70b 100644 --- a/src/analysis/processing/qgsalgorithmtransect.cpp +++ b/src/analysis/processing/qgsalgorithmtransect.cpp @@ -46,6 +46,11 @@ QString QgsTransectAlgorithm::groupId() const return QStringLiteral( "vectorgeometry" ); } +QgsProcessingAlgorithm::Flags QgsTransectAlgorithm::flags() const +{ + return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + void QgsTransectAlgorithm::initAlgorithm( const QVariantMap & ) { addParameter( new QgsProcessingParameterFeatureSource( QStringLiteral( "INPUT" ), diff --git a/src/analysis/processing/qgsalgorithmtransect.h b/src/analysis/processing/qgsalgorithmtransect.h index 7593f68186a..1d3efa5c07a 100644 --- a/src/analysis/processing/qgsalgorithmtransect.h +++ b/src/analysis/processing/qgsalgorithmtransect.h @@ -43,6 +43,7 @@ class QgsTransectAlgorithm : public QgsProcessingAlgorithm Both }; QgsTransectAlgorithm() = default; + Flags flags() const override; void initAlgorithm( const QVariantMap &configuration = QVariantMap() ) override; QString name() const override; QString displayName() const override; diff --git a/src/analysis/processing/qgsalgorithmtransform.cpp b/src/analysis/processing/qgsalgorithmtransform.cpp index 3454b1963f4..794fdae4237 100644 --- a/src/analysis/processing/qgsalgorithmtransform.cpp +++ b/src/analysis/processing/qgsalgorithmtransform.cpp @@ -35,6 +35,11 @@ QString QgsTransformAlgorithm::outputName() const return QObject::tr( "Reprojected" ); } +QgsProcessingAlgorithm::Flags QgsTransformAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsTransformAlgorithm::name() const { return QStringLiteral( "reprojectlayer" ); diff --git a/src/analysis/processing/qgsalgorithmtransform.h b/src/analysis/processing/qgsalgorithmtransform.h index 6b41b9ae38f..af5cece1072 100644 --- a/src/analysis/processing/qgsalgorithmtransform.h +++ b/src/analysis/processing/qgsalgorithmtransform.h @@ -34,6 +34,7 @@ class QgsTransformAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsTransformAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override; diff --git a/src/analysis/processing/qgsalgorithmtranslate.cpp b/src/analysis/processing/qgsalgorithmtranslate.cpp index dc98e86e5af..c6d7818e8f4 100644 --- a/src/analysis/processing/qgsalgorithmtranslate.cpp +++ b/src/analysis/processing/qgsalgorithmtranslate.cpp @@ -19,6 +19,11 @@ ///@cond PRIVATE +QgsProcessingAlgorithm::Flags QgsTranslateAlgorithm::flags() const +{ + return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground; +} + QString QgsTranslateAlgorithm::name() const { return QStringLiteral( "translategeometry" ); diff --git a/src/analysis/processing/qgsalgorithmtranslate.h b/src/analysis/processing/qgsalgorithmtranslate.h index 99a1edc15dc..1a5932e7e97 100644 --- a/src/analysis/processing/qgsalgorithmtranslate.h +++ b/src/analysis/processing/qgsalgorithmtranslate.h @@ -34,6 +34,7 @@ class QgsTranslateAlgorithm : public QgsProcessingFeatureBasedAlgorithm public: QgsTranslateAlgorithm() = default; + Flags flags() const override; QString name() const override; QString displayName() const override; QStringList tags() const override;