Most c++ algorithms can run safely in background threads

This commit is contained in:
Nyall Dawson 2017-12-05 14:37:42 +10:00
parent 70785f80a3
commit c14e6ca772
92 changed files with 269 additions and 6 deletions

View File

@ -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)

View File

@ -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( ',' );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsAddIncrementalFieldAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsAddIncrementalFieldAlgorithm::name() const
{
return QStringLiteral( "addautoincrementalfield" );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsAssignProjectionAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsAssignProjectionAlgorithm::name() const
{
return QStringLiteral( "assignprojection" );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsBoundaryAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsBoundaryAlgorithm::name() const
{
return QStringLiteral( "boundary" );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsBoundingBoxAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsBoundingBoxAlgorithm::name() const
{
return QStringLiteral( "boundingboxes" );

View File

@ -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;

View File

@ -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"

View File

@ -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;

View File

@ -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" ) ) );

View File

@ -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;

View File

@ -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" );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsConvexHullAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsConvexHullAlgorithm::name() const
{
return QStringLiteral( "convexhull" );

View File

@ -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;

View File

@ -23,6 +23,11 @@
// QgsCollectorAlgorithm
//
QgsProcessingAlgorithm::Flags QgsCollectorAlgorithm::flags() const
{
return QgsProcessingAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QVariantMap QgsCollectorAlgorithm::processCollection( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback,
const std::function<QgsGeometry( const QVector< QgsGeometry >& )> &collector, int maxQueueLength )
{

View File

@ -32,6 +32,7 @@ class QgsCollectorAlgorithm : public QgsProcessingAlgorithm
{
protected:
Flags flags() const override;
QVariantMap processCollection( const QVariantMap &parameters, QgsProcessingContext &context, QgsProcessingFeedback *feedback,
const std::function<QgsGeometry( const QVector<QgsGeometry>& )> &collector, int maxQueueLength = 0 );
};

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsDropGeometryAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsDropGeometryAlgorithm::name() const
{
return QStringLiteral( "dropgeometries" );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsDropMZValuesAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsDropMZValuesAlgorithm::name() const
{
return QStringLiteral( "dropmzvalues" );

View File

@ -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;

View File

@ -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" ) ) );

View File

@ -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" ); }

View File

@ -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" );

View File

@ -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;

View File

@ -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" ) ) );

View File

@ -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;

View File

@ -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" ) ) );

View File

@ -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;

View File

@ -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" ),

View File

@ -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;

View File

@ -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" ) ) );

View File

@ -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;

View File

@ -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 ) );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsFixGeometriesAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsFixGeometriesAlgorithm::name() const
{
return QStringLiteral( "fixgeometries" );

View File

@ -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;

View File

@ -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" ),

View File

@ -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;

View File

@ -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" ),

View File

@ -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;

View File

@ -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" ),

View File

@ -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;

View File

@ -26,7 +26,7 @@ QString QgsLoadLayerAlgorithm::name() const
QgsProcessingAlgorithm::Flags QgsLoadLayerAlgorithm::flags() const
{
return FlagHideFromToolbox;
return FlagHideFromToolbox | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsLoadLayerAlgorithm::displayName() const

View File

@ -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" ),

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsMergeLinesAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsMergeLinesAlgorithm::name() const
{
return QStringLiteral( "mergelines" );

View File

@ -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;

View File

@ -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" );

View File

@ -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;

View File

@ -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,

View File

@ -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;

View File

@ -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" ) ) );

View File

@ -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;

View File

@ -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" ) ) );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsOrientedMinimumBoundingBoxAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsOrientedMinimumBoundingBoxAlgorithm::name() const
{
return QStringLiteral( "orientedminimumboundingbox" );

View File

@ -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;

View File

@ -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 ) );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsPromoteToMultipartAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsPromoteToMultipartAlgorithm::name() const
{
return QStringLiteral( "promotetomulti" );

View File

@ -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;

View File

@ -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" ),

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsAlgorithmRemoveDuplicateNodes::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsAlgorithmRemoveDuplicateNodes::name() const
{
return QStringLiteral( "removeduplicatenodes" );

View File

@ -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;

View File

@ -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" ) ) );

View File

@ -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;

View File

@ -26,7 +26,7 @@ QString QgsRenameLayerAlgorithm::name() const
QgsProcessingAlgorithm::Flags QgsRenameLayerAlgorithm::flags() const
{
return FlagHideFromToolbox;
return FlagHideFromToolbox | FlagCanRunInBackground;
}
QString QgsRenameLayerAlgorithm::displayName() const

View File

@ -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" ) ) );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsSimplifyAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsSimplifyAlgorithm::name() const
{
return QStringLiteral( "simplifygeometries" );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsSmoothAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsSmoothAlgorithm::name() const
{
return QStringLiteral( "smoothgeometry" );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsSnapToGridAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsSnapToGridAlgorithm::name() const
{
return QStringLiteral( "snappointstogrid" );

View File

@ -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;

View File

@ -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" ),

View File

@ -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;

View File

@ -26,7 +26,7 @@ QString QgsStringConcatenationAlgorithm::name() const
QgsProcessingAlgorithm::Flags QgsStringConcatenationAlgorithm::flags() const
{
return FlagHideFromToolbox;
return FlagHideFromToolbox | FlagCanRunInBackground;
}
QString QgsStringConcatenationAlgorithm::displayName() const

View File

@ -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,

View File

@ -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;

View File

@ -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" ),

View File

@ -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;

View File

@ -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" );

View File

@ -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;

View File

@ -19,6 +19,11 @@
///@cond PRIVATE
QgsProcessingAlgorithm::Flags QgsTranslateAlgorithm::flags() const
{
return QgsProcessingFeatureBasedAlgorithm::flags() | QgsProcessingAlgorithm::FlagCanRunInBackground;
}
QString QgsTranslateAlgorithm::name() const
{
return QStringLiteral( "translategeometry" );

View File

@ -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;