QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
qgsfeaturefilter.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsfeaturefilter.cpp
3 --------------------
4 begin : 26-10-2017
5 copyright : (C) 2017 by Patrick Valsecchi
6 email : patrick dot valsecchi at camptocamp dot com
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 "qgsfeaturefilter.h"
19
20#include "qgsexpression.h"
21#include "qgsfeaturerequest.h"
22#include "qgsvectorlayer.h"
23
25{
26 const QString expr = mFilters[layer->id()];
27 if ( !expr.isEmpty() )
28 {
29 filterFeatures.setFilterExpression( expr );
30 }
31}
32
33QStringList QgsFeatureFilter::layerAttributes( const QgsVectorLayer *, const QStringList &attributes ) const
34{
35 // Do nothing
36 return attributes;
37}
38
40{
41 auto result = new QgsFeatureFilter();
42 result->mFilters = mFilters;
43 return result;
44}
45
46void QgsFeatureFilter::setFilter( const QgsVectorLayer *layer, const QgsExpression &filter )
47{
48 mFilters[layer->id()] = filter.dump();
49}
Handles parsing and evaluation of expressions (formerly called "search strings").
QString dump() const
Returns an expression string, constructed from the internal abstract syntax tree.
QgsFeatureFilterProvider()=default
void setFilter(const QgsVectorLayer *layer, const QgsExpression &expression)
Set a filter for the given layer.
QgsFeatureFilter()=default
Constructor.
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.
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...
QgsFeatureFilterProvider * clone() const override
Create a clone of the feature filter provider.
Wraps a request for features to a vector layer (or directly its vector data provider).
QString id
Definition qgsmaplayer.h:83
Represents a vector layer which manages a vector based dataset.