27   auto callback = [ = ]( 
const QgsFeature & feature )
    30       mFeedback->reportError( QObject::tr( 
"Encountered a transform error when reprojecting feature with id %1." ).arg( feature.id() ) );
    32   mTransformErrorCallback = callback;
    37   for ( 
auto it = mLayersToLoadOnCompletion.constBegin(); it != mLayersToLoadOnCompletion.constEnd(); ++it )
    39     delete it.value().postProcessor();
    45   for ( 
auto it = mLayersToLoadOnCompletion.constBegin(); it != mLayersToLoadOnCompletion.constEnd(); ++it )
    47     if ( !layers.contains( it.key() ) || layers.value( it.key() ).postProcessor() != it.value().postProcessor() )
    48       delete it.value().postProcessor();
    50   mLayersToLoadOnCompletion = layers;
    55   if ( mLayersToLoadOnCompletion.contains( layer ) && mLayersToLoadOnCompletion.value( layer ).postProcessor() != details.
postProcessor() )
    56     delete mLayersToLoadOnCompletion.value( layer ).postProcessor();
    58   mLayersToLoadOnCompletion.insert( layer, details );
    63   mInvalidGeometryCheck = check;
    65   switch ( mInvalidGeometryCheck )
    69       auto callback = []( 
const QgsFeature & feature )
    71         throw QgsProcessingException( QObject::tr( 
"Feature (%1) has invalid geometry. Please fix the geometry or change the Processing setting to the \"Ignore invalid input features\" option." ).arg( feature.id() ) );
    73       mInvalidGeometryCallback = callback;
    79       auto callback = [ = ]( 
const QgsFeature & feature )
    82           mFeedback->reportError( QObject::tr( 
"Feature (%1) has invalid geometry and has been skipped. Please fix the geometry or change the Processing setting to the \"Ignore invalid input features\" option." ).arg( feature.id() ) );
    84       mInvalidGeometryCallback = callback;
    96   context.mLayersToLoadOnCompletion.clear();
   114   return mPostProcessor;
   119   if ( mPostProcessor && mPostProcessor != processor )
   120     delete mPostProcessor;
   122   mPostProcessor = processor;
   130   const bool preferFilenameAsLayerName = 
QgsSettings().
value( QStringLiteral( 
"Processing/Configuration/PREFER_FILENAME_AS_LAYER_NAME" ), 
true ).toBool();
   133   if ( ( preferFilenameAsLayerName && !layer->
isTemporary() ) || name.isEmpty() )
   136     const QString layerName = sourceParts.value( QStringLiteral( 
"layerName" ) ).toString();
   138     if ( !layerName.isEmpty() )
   142       const QString path = sourceParts.value( QStringLiteral( 
"path" ) ).toString();
   143       if ( !path.isEmpty() )
   145         const QFileInfo fi( path );
   146         layer->
setName( fi.baseName() );
   148       else if ( !name.isEmpty() )
 Base class for all map layer types. 
 
void setLayersToLoadOnCompletion(const QMap< QString, QgsProcessingContext::LayerDetails > &layers)
Sets the map of layers (by ID or datasource) to LayerDetails, to load into the canvas upon completion...
 
An interface for layer post-processing handlers for execution following a processing algorithm operat...
 
This class is a composition of two QSettings instances: 
 
QVariant value(const QString &key, const QVariant &defaultValue=QVariant(), Section section=NoSection) const
Returns the value for setting key. 
 
QString providerType() const
Returns the provider type (provider key) for this layer. 
 
void setPostProcessor(QgsProcessingLayerPostProcessorInterface *processor)
Sets the layer post-processor. 
 
QgsMapLayer * takeResultLayer(const QString &id)
Takes the result map layer with matching id from the context and transfers ownership of it back to th...
 
Skip any features with invalid geometry. This requires a slow geometry validity check for every featu...
 
QVariantMap decodeUri(const QString &providerKey, const QString &uri)
Breaks a provider data source URI into its component paths (e.g. 
 
QgsMapLayer * takeMapLayer(QgsMapLayer *layer)
Takes a layer from the store. 
 
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
 
InvalidGeometryCheck
Handling of features with invalid geometries. 
 
Utility functions for use with processing classes. 
 
static QgsMapLayer * mapLayerFromString(const QString &string, QgsProcessingContext &context, bool allowLoadingNewLayers=true, QgsProcessingUtils::LayerHint typeHint=QgsProcessingUtils::LayerHint::UnknownType)
Interprets a string as a map layer within the supplied context. 
 
QgsProcessingLayerPostProcessorInterface * postProcessor() const
Layer post-processor. 
 
static QgsProviderRegistry * instance(const QString &pluginPath=QString())
Means of accessing canonical single instance. 
 
QgsMapLayerStore * temporaryLayerStore()
Returns a reference to the layer store used for storing temporary layers during algorithm execution...
 
void takeResultsFrom(QgsProcessingContext &context)
Takes the results from another context and merges them with the results currently stored in this cont...
 
Custom exception class for processing related exceptions. 
 
QgsMapLayer * getMapLayer(const QString &identifier)
Returns a map layer from the context with a matching identifier. 
 
void setInvalidGeometryCheck(QgsFeatureRequest::InvalidGeometryCheck check)
Sets the behavior used for checking invalid geometries in input layers. 
 
void setName(const QString &name)
Set the display name of the layer. 
 
Details for layers to load into projects. 
 
void setOutputLayerName(QgsMapLayer *layer) const
Sets a layer name to match this output, respecting any local user settings which affect this name...
 
QgsProcessingContext()
Constructor for QgsProcessingContext. 
 
void addLayerToLoadOnCompletion(const QString &layer, const QgsProcessingContext::LayerDetails &details)
Adds a layer to load (by ID or datasource) into the canvas upon completion of the algorithm or model...
 
QString source() const
Returns the source for the layer. 
 
void transferLayersFromStore(QgsMapLayerStore *other)
Transfers all the map layers contained within another map layer store and adds them to this store...
 
virtual bool isTemporary() const
Returns true if the layer is considered a temporary layer. 
 
QgsMapLayer * mapLayer(const QString &id) const
Retrieve a pointer to a layer by layer id. 
 
Contains information about the context in which a processing algorithm is executed. 
 
Close iterator on encountering any features with invalid geometry. This requires a slow geometry vali...