diff --git a/python/core/processing/qgsprocessingcontext.sip b/python/core/processing/qgsprocessingcontext.sip index 3173c853274..ea9b25ca7bb 100644 --- a/python/core/processing/qgsprocessingcontext.sip +++ b/python/core/processing/qgsprocessingcontext.sip @@ -37,6 +37,7 @@ class QgsProcessingContext Constructor for QgsProcessingContext. %End +// QgsProcessingContext &operator=( const QgsProcessingContext &other ) = delete; QgsProcessingContext::Flags flags() const; %Docstring Returns any flags set in the context. @@ -74,6 +75,9 @@ class QgsProcessingContext Sets the expression ``context``. %End + + + QgsFeatureRequest::InvalidGeometryCheck invalidGeometryCheck() const; %Docstring Returns the behavior used for checking invalid geometries in input layers. @@ -110,6 +114,8 @@ class QgsProcessingContext %End + private: + QgsProcessingContext( const QgsProcessingContext &other ); }; QFlags operator|(QgsProcessingContext::Flag f1, QFlags f2); diff --git a/src/core/processing/qgsprocessingcontext.h b/src/core/processing/qgsprocessingcontext.h index 03e411fb7b4..81e8927cb22 100644 --- a/src/core/processing/qgsprocessingcontext.h +++ b/src/core/processing/qgsprocessingcontext.h @@ -50,6 +50,9 @@ class CORE_EXPORT QgsProcessingContext */ QgsProcessingContext() = default; + QgsProcessingContext( const QgsProcessingContext &other ) = delete; + QgsProcessingContext &operator=( const QgsProcessingContext &other ) = delete; + /** * Returns any flags set in the context. * \see setFlags() @@ -84,6 +87,17 @@ class CORE_EXPORT QgsProcessingContext */ void setExpressionContext( const QgsExpressionContext &context ) { mExpressionContext = context; } +///@cond NOT_STABLE_API + + /** + * Returns a reference to the project used for storing temporary layers during + * algorithm execution. + * \note not available in Python bindings + */ + SIP_SKIP QgsProject &temporaryLayerStore() { return tempProject; } + +///@endcond + /** * Returns the behavior used for checking invalid geometries in input layers. * \see setInvalidGeometryCheck() @@ -135,10 +149,15 @@ class CORE_EXPORT QgsProcessingContext QgsProcessingContext::Flags mFlags = 0; QPointer< QgsProject > mProject; + //! Temporary project owned by the context, used for storing temporarily loaded map layers + QgsProject tempProject; QgsExpressionContext mExpressionContext; QgsFeatureRequest::InvalidGeometryCheck mInvalidGeometryCheck = QgsFeatureRequest::GeometryNoCheck; std::function< void( const QgsFeature & ) > mInvalidGeometryCallback; +#ifdef SIP_RUN + QgsProcessingContext( const QgsProcessingContext &other ); +#endif }; Q_DECLARE_OPERATORS_FOR_FLAGS( QgsProcessingContext::Flags )