QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
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
18
#include "
qgsfeatureexpressionfilterprovider.h
"
19
20
#include "
qgsexpression.h
"
21
#include "
qgsfeaturerequest.h
"
22
#include "
qgsvectorlayer.h
"
23
24
void
QgsFeatureExpressionFilterProvider::filterFeatures
(
const
QgsVectorLayer
*layer,
QgsFeatureRequest
&
filterFeatures
)
const
25
{
26
this->
filterFeatures
( layer->
id
(),
filterFeatures
);
27
}
28
29
void
QgsFeatureExpressionFilterProvider::filterFeatures
(
const
QString &layerId,
QgsFeatureRequest
&
filterFeatures
)
const
30
{
31
const
QString expr = mFilters[layerId];
32
if
( !expr.isEmpty() )
33
{
34
filterFeatures
.setFilterExpression( expr );
35
}
36
}
37
38
QStringList
QgsFeatureExpressionFilterProvider::layerAttributes
(
const
QgsVectorLayer
*,
const
QStringList &attributes )
const
39
{
40
// Do nothing
41
return
attributes;
42
}
43
44
QgsFeatureExpressionFilterProvider
*
QgsFeatureExpressionFilterProvider::clone
()
const
45
{
46
QgsFeatureExpressionFilterProvider
*filter =
new
QgsFeatureExpressionFilterProvider
();
47
filter->mFilters = mFilters;
48
return
filter;
49
}
50
51
void
QgsFeatureExpressionFilterProvider::setFilter
(
const
QString &layerId,
const
QgsExpression
&filter )
52
{
53
mFilters[layerId] = filter.
dump
();
54
}
QgsExpression
Handles parsing and evaluation of expressions (formerly called "search strings").
Definition
qgsexpression.h:197
QgsExpression::dump
QString dump() const
Returns an expression string, constructed from the internal abstract syntax tree.
Definition
qgsexpression.cpp:439
QgsFeatureExpressionFilterProvider::clone
QgsFeatureExpressionFilterProvider * clone() const override
Create a clone of the feature filter provider.
Definition
qgsfeatureexpressionfilterprovider.cpp:44
QgsFeatureExpressionFilterProvider::layerAttributes
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.
Definition
qgsfeatureexpressionfilterprovider.cpp:38
QgsFeatureExpressionFilterProvider::QgsFeatureExpressionFilterProvider
QgsFeatureExpressionFilterProvider()=default
Constructor.
QgsFeatureExpressionFilterProvider::setFilter
void setFilter(const QString &layerId, const QgsExpression &expression)
Set a filter for the given layer.
Definition
qgsfeatureexpressionfilterprovider.cpp:51
QgsFeatureExpressionFilterProvider::filterFeatures
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...
Definition
qgsfeatureexpressionfilterprovider.cpp:24
QgsFeatureRequest
Wraps a request for features to a vector layer (or directly its vector data provider).
Definition
qgsfeaturerequest.h:85
QgsMapLayer::id
QString id
Definition
qgsmaplayer.h:86
QgsVectorLayer
Represents a vector layer which manages a vector based dataset.
Definition
qgsvectorlayer.h:414
qgsexpression.h
qgsfeatureexpressionfilterprovider.h
qgsfeaturerequest.h
qgsvectorlayer.h
Generated on
for QGIS API Documentation by
1.17.0