QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
server
qgsfeaturefilterprovidergroup.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsfeaturefilterprovidergroup.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 "
qgsfeaturefilterprovidergroup.h
"
19
20
#include "
qgsfeaturerequest.h
"
21
22
void
QgsFeatureFilterProviderGroup::filterFeatures
(
const
QgsVectorLayer
*layer,
QgsFeatureRequest
&
filterFeatures
)
const
23
{
24
for
(
const
QgsFeatureFilterProvider
*provider : mProviders )
25
{
26
QgsFeatureRequest
temp;
27
Q_NOWARN_DEPRECATED_PUSH
28
provider->filterFeatures( layer, temp );
29
Q_NOWARN_DEPRECATED_POP
30
if
(
auto
*lFilterExpression = temp.
filterExpression
() )
31
{
32
filterFeatures
.combineFilterExpression( lFilterExpression->dump() );
33
}
34
}
35
}
36
37
QStringList
QgsFeatureFilterProviderGroup::layerAttributes
(
const
QgsVectorLayer
*layer,
const
QStringList &attributes )
const
38
{
39
QStringList allowedAttributes { attributes };
40
for
(
const
QgsFeatureFilterProvider
*provider : mProviders )
41
{
42
const
QgsFeatureRequest
temp;
43
allowedAttributes = provider->layerAttributes( layer, allowedAttributes );
44
}
45
return
allowedAttributes;
46
}
47
48
QgsFeatureFilterProviderGroup
*
QgsFeatureFilterProviderGroup::clone
()
const
49
{
50
auto
result =
new
QgsFeatureFilterProviderGroup
();
51
result->mProviders = mProviders;
52
return
result;
53
}
54
55
QgsFeatureFilterProviderGroup
&
QgsFeatureFilterProviderGroup::addProvider
(
const
QgsFeatureFilterProvider
*provider )
56
{
57
if
( provider )
58
{
59
mProviders.append( provider );
60
}
61
return
*
this
;
62
}
QgsFeatureFilterProviderGroup::filterFeatures
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
qgsfeaturefilterprovidergroup.cpp:22
QgsFeatureFilterProviderGroup::addProvider
QgsFeatureFilterProviderGroup & addProvider(const QgsFeatureFilterProvider *provider)
Add another filter provider to the group.
Definition
qgsfeaturefilterprovidergroup.cpp:55
QgsFeatureFilterProviderGroup::clone
QgsFeatureFilterProviderGroup * clone() const override
Create a clone of the feature filter provider.
Definition
qgsfeaturefilterprovidergroup.cpp:48
QgsFeatureFilterProviderGroup::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
qgsfeaturefilterprovidergroup.cpp:37
QgsFeatureFilterProviderGroup::QgsFeatureFilterProviderGroup
QgsFeatureFilterProviderGroup()=default
Constructor.
QgsFeatureFilterProvider::QgsFeatureFilterProvider
QgsFeatureFilterProvider()=default
QgsFeatureRequest
Wraps a request for features to a vector layer (or directly its vector data provider).
Definition
qgsfeaturerequest.h:85
QgsFeatureRequest::filterExpression
QgsExpression * filterExpression() const
Returns the filter expression (if set).
Definition
qgsfeaturerequest.h:525
QgsVectorLayer
Represents a vector layer which manages a vector based dataset.
Definition
qgsvectorlayer.h:414
Q_NOWARN_DEPRECATED_POP
#define Q_NOWARN_DEPRECATED_POP
Definition
qgis.h:8379
Q_NOWARN_DEPRECATED_PUSH
#define Q_NOWARN_DEPRECATED_PUSH
Definition
qgis.h:8378
qgsfeaturefilterprovidergroup.h
qgsfeaturerequest.h
Generated on
for QGIS API Documentation by
1.17.0