QGIS API Documentation 3.99.0-Master (f78f5286a64)
qgsfeatureexpressionfilterprovider.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsfeatureexpressionfilterprovider.cpp
3 ------------------
4 begin : 2025-07-26
5 copyright : (C) 2025 by Mathieu Pellerin
6 email : mathieu at opengis dot ch
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
19#include "qgsfeaturerequest.h"
20#include "qgsvectorlayer.h"
21#include "qgsexpression.h"
22
24{
25 this->filterFeatures( layer->id(), filterFeatures );
26}
27
28void QgsFeatureExpressionFilterProvider::filterFeatures( const QString &layerId, QgsFeatureRequest &filterFeatures ) const
29{
30 const QString expr = mFilters[layerId];
31 if ( !expr.isEmpty() )
32 {
33 filterFeatures.setFilterExpression( expr );
34 }
35}
36
37QStringList QgsFeatureExpressionFilterProvider::layerAttributes( const QgsVectorLayer *, const QStringList &attributes ) const
38{
39 // Do nothing
40 return attributes;
41}
42
49
50void QgsFeatureExpressionFilterProvider::setFilter( const QString &layerId, const QgsExpression &filter )
51{
52 mFilters[layerId] = filter.dump();
53}
Handles parsing and evaluation of expressions (formerly called "search strings").
QString dump() const
Returns an expression string, constructed from the internal abstract syntax tree.
A feature filter provider allowing to set filter expressions on a per-layer basis.
QgsFeatureExpressionFilterProvider * clone() const override
Create a clone of the feature filter provider.
QStringList layerAttributes(const QgsVectorLayer *layer, const QStringList &attributes) const override
Returns the list of visible attribute names from a list of attributes names for the given layer.
QgsFeatureExpressionFilterProvider()=default
Constructor.
void setFilter(const QString &layerId, const QgsExpression &expression)
Set a filter for the given layer.
Q_DECL_DEPRECATED void filterFeatures(const QgsVectorLayer *layer, QgsFeatureRequest &filterFeatures) const override
Add additional filters to the feature request to further restrict the features returned by the reques...
Wraps a request for features to a vector layer (or directly its vector data provider).
QString id
Definition qgsmaplayer.h:81
Represents a vector layer which manages a vector based dataset.