23 QString QgsFilterAlgorithm::name()
 const    25   return QStringLiteral( 
"filter" );
    28 QString QgsFilterAlgorithm::displayName()
 const    30   return QObject::tr( 
"Feature filter" );
    33 QStringList QgsFilterAlgorithm::tags()
 const    35   return QObject::tr( 
"filter,proxy,redirect,route" ).split( 
',' );
    38 QString QgsFilterAlgorithm::group()
 const    40   return QObject::tr( 
"Vector table" );
    43 QString QgsFilterAlgorithm::groupId()
 const    45   return QStringLiteral( 
"vectortable" );
    48 QgsProcessingAlgorithm::Flags QgsFilterAlgorithm::flags()
 const    50   return FlagHideFromToolbox;
    53 QString QgsFilterAlgorithm::shortHelpString()
 const    55   return QObject::tr( 
"This algorithm filters features from the input layer and redirects them to one or several outputs." );
    58 QgsFilterAlgorithm *QgsFilterAlgorithm::createInstance()
 const    60   return new QgsFilterAlgorithm();
    63 QgsFilterAlgorithm::~QgsFilterAlgorithm()
    65   qDeleteAll( mOutputs );
    68 void QgsFilterAlgorithm::initAlgorithm( 
const QVariantMap &configuration )
    72   const QVariantList outputs = configuration.value( QStringLiteral( 
"outputs" ) ).toList();
    73   for ( 
const QVariant &output : outputs )
    75     const QVariantMap outputDef = output.toMap();
    76     const QString name = QStringLiteral( 
"OUTPUT_%1" ).arg( outputDef.value( QStringLiteral( 
"name" ) ).toString() );
    78     QgsProcessingParameterDefinition::Flags flags = QgsProcessingParameterDefinition::Flags();
    80     if ( outputDef.value( QStringLiteral( 
"isModelOutput" ) ).toBool() )
    83     addParameter( outputParam );
    84     mOutputs.append( 
new Output( name, outputDef.value( QStringLiteral( 
"expression" ) ).toString() ) );
    91   std::unique_ptr< QgsProcessingFeatureSource > source( parameterAsSource( parameters, QStringLiteral( 
"INPUT" ), context ) );
    95   QgsExpressionContext expressionContext = createExpressionContext( parameters, context, source.get() );
    96   for ( Output *output : qgis::as_const( mOutputs ) )
    98     output->sink.reset( parameterAsSink( parameters, output->name, context, output->destinationIdentifier, source->fields(), source->wkbType(), source->sourceCrs() ) );
   101     output->expression.prepare( &expressionContext );
   104   long count = source->featureCount();
   109   double step = count > 0 ? 100.0 / count : 1;
   121     for ( Output *output : qgis::as_const( mOutputs ) )
   123       if ( output->expression.evaluate( &expressionContext ).toBool() )
   134   for ( 
const Output *output : qgis::as_const( mOutputs ) )
   136     outputs.insert( output->name, output->destinationIdentifier );
   138   qDeleteAll( mOutputs );
 Wrapper for iterator of features from vector data provider or vector layer. 
 
Use faster inserts, at the cost of updating the passed features to reflect changes made at the provid...
 
Base class for providing feedback from a processing algorithm. 
 
Invalid geometry checks should always be skipped. This flag can be useful for algorithms which always...
 
void setFeature(const QgsFeature &feature)
Convenience function for setting a feature for the context. 
 
void setProgress(double progress)
Sets the current progress for the feedback object. 
 
void setFlags(Flags flags)
Sets the flags associated with the parameter. 
 
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
 
A feature sink output for processing algorithms. 
 
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
 
This class wraps a request for features to a vector layer (or directly its vector data provider)...
 
Custom exception class for processing related exceptions. 
 
Destination parameter is final output. The parameter name will be used. 
 
bool isCanceled() const
Tells whether the operation has been canceled already. 
 
An input feature source (such as vector layers) parameter for processing algorithms. 
 
bool nextFeature(QgsFeature &f)
 
Parameter is hidden and should not be shown to users. 
 
Contains information about the context in which a processing algorithm is executed.