1
1
/* **************************************************************************
2
2
qgslayertreeviewfilterindicator.cpp
3
3
--------------------------------------
4
- Date : Januray 2018
4
+ Date : January 2018
5
5
Copyright : (C) 2018 by Martin Dobias
6
6
Email : wonder dot sk at gmail dot com
7
7
***************************************************************************
22
22
#include " qgsvectorlayer.h"
23
23
24
24
25
- QgsLayerTreeViewFilterIndicatorManager::QgsLayerTreeViewFilterIndicatorManager ( QgsLayerTreeView *view )
25
+ QgsLayerTreeViewFilterIndicatorProvider::QgsLayerTreeViewFilterIndicatorProvider ( QgsLayerTreeView *view )
26
26
: QObject( view )
27
27
, mLayerTreeView( view )
28
28
{
@@ -31,12 +31,12 @@ QgsLayerTreeViewFilterIndicatorManager::QgsLayerTreeViewFilterIndicatorManager(
31
31
QgsLayerTree *tree = mLayerTreeView ->layerTreeModel ()->rootGroup ();
32
32
onAddedChildren ( tree, 0 , tree->children ().count () - 1 );
33
33
34
- connect ( tree, &QgsLayerTree::addedChildren, this , &QgsLayerTreeViewFilterIndicatorManager ::onAddedChildren );
35
- connect ( tree, &QgsLayerTree::willRemoveChildren, this , &QgsLayerTreeViewFilterIndicatorManager ::onWillRemoveChildren );
34
+ connect ( tree, &QgsLayerTree::addedChildren, this , &QgsLayerTreeViewFilterIndicatorProvider ::onAddedChildren );
35
+ connect ( tree, &QgsLayerTree::willRemoveChildren, this , &QgsLayerTreeViewFilterIndicatorProvider ::onWillRemoveChildren );
36
36
}
37
37
38
38
39
- void QgsLayerTreeViewFilterIndicatorManager ::onAddedChildren ( QgsLayerTreeNode *node, int indexFrom, int indexTo )
39
+ void QgsLayerTreeViewFilterIndicatorProvider ::onAddedChildren ( QgsLayerTreeNode *node, int indexFrom, int indexTo )
40
40
{
41
41
// recursively connect to providers' dataChanged() signal
42
42
@@ -56,22 +56,22 @@ void QgsLayerTreeViewFilterIndicatorManager::onAddedChildren( QgsLayerTreeNode *
56
56
{
57
57
if ( vlayer->dataProvider () )
58
58
{
59
- connect ( vlayer->dataProvider (), &QgsDataProvider::dataChanged, this , &QgsLayerTreeViewFilterIndicatorManager ::onProviderDataChanged );
59
+ connect ( vlayer->dataProvider (), &QgsDataProvider::dataChanged, this , &QgsLayerTreeViewFilterIndicatorProvider ::onProviderDataChanged );
60
60
61
61
addOrRemoveIndicator ( childLayerNode, vlayer->dataProvider () );
62
62
}
63
63
}
64
64
else if ( !childLayerNode->layer () )
65
65
{
66
66
// wait for layer to be loaded (e.g. when loading project, first the tree is loaded, afterwards the references to layers are resolved)
67
- connect ( childLayerNode, &QgsLayerTreeLayer::layerLoaded, this , &QgsLayerTreeViewFilterIndicatorManager ::onLayerLoaded );
67
+ connect ( childLayerNode, &QgsLayerTreeLayer::layerLoaded, this , &QgsLayerTreeViewFilterIndicatorProvider ::onLayerLoaded );
68
68
}
69
69
}
70
70
}
71
71
}
72
72
73
73
74
- void QgsLayerTreeViewFilterIndicatorManager ::onWillRemoveChildren ( QgsLayerTreeNode *node, int indexFrom, int indexTo )
74
+ void QgsLayerTreeViewFilterIndicatorProvider ::onWillRemoveChildren ( QgsLayerTreeNode *node, int indexFrom, int indexTo )
75
75
{
76
76
// recursively disconnect from providers' dataChanged() signal
77
77
@@ -90,14 +90,14 @@ void QgsLayerTreeViewFilterIndicatorManager::onWillRemoveChildren( QgsLayerTreeN
90
90
if ( QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( childLayerNode->layer () ) )
91
91
{
92
92
if ( vlayer->dataProvider () )
93
- disconnect ( vlayer->dataProvider (), &QgsDataProvider::dataChanged, this , &QgsLayerTreeViewFilterIndicatorManager ::onProviderDataChanged );
93
+ disconnect ( vlayer->dataProvider (), &QgsDataProvider::dataChanged, this , &QgsLayerTreeViewFilterIndicatorProvider ::onProviderDataChanged );
94
94
}
95
95
}
96
96
}
97
97
}
98
98
99
99
100
- void QgsLayerTreeViewFilterIndicatorManager ::onLayerLoaded ()
100
+ void QgsLayerTreeViewFilterIndicatorProvider ::onLayerLoaded ()
101
101
{
102
102
QgsLayerTreeLayer *nodeLayer = qobject_cast<QgsLayerTreeLayer *>( sender () );
103
103
if ( !nodeLayer )
@@ -107,15 +107,15 @@ void QgsLayerTreeViewFilterIndicatorManager::onLayerLoaded()
107
107
{
108
108
if ( vlayer->dataProvider () )
109
109
{
110
- connect ( vlayer->dataProvider (), &QgsDataProvider::dataChanged, this , &QgsLayerTreeViewFilterIndicatorManager ::onProviderDataChanged );
110
+ connect ( vlayer->dataProvider (), &QgsDataProvider::dataChanged, this , &QgsLayerTreeViewFilterIndicatorProvider ::onProviderDataChanged );
111
111
112
112
addOrRemoveIndicator ( nodeLayer, vlayer->dataProvider () );
113
113
}
114
114
}
115
115
}
116
116
117
117
118
- void QgsLayerTreeViewFilterIndicatorManager ::onProviderDataChanged ()
118
+ void QgsLayerTreeViewFilterIndicatorProvider ::onProviderDataChanged ()
119
119
{
120
120
QgsVectorDataProvider *provider = qobject_cast<QgsVectorDataProvider *>( sender () );
121
121
if ( !provider )
@@ -134,7 +134,7 @@ void QgsLayerTreeViewFilterIndicatorManager::onProviderDataChanged()
134
134
}
135
135
136
136
137
- void QgsLayerTreeViewFilterIndicatorManager ::onIndicatorClicked ( const QModelIndex &index )
137
+ void QgsLayerTreeViewFilterIndicatorProvider ::onIndicatorClicked ( const QModelIndex &index )
138
138
{
139
139
QgsLayerTreeNode *node = mLayerTreeView ->layerTreeModel ()->index2node ( index );
140
140
if ( !QgsLayerTree::isLayer ( node ) )
@@ -151,23 +151,23 @@ void QgsLayerTreeViewFilterIndicatorManager::onIndicatorClicked( const QModelInd
151
151
vlayer->dataProvider ()->setSubsetString ( qb.sql () );
152
152
}
153
153
154
- QgsLayerTreeViewIndicator *QgsLayerTreeViewFilterIndicatorManager ::newIndicator ( const QString &filter )
154
+ QgsLayerTreeViewIndicator *QgsLayerTreeViewFilterIndicatorProvider ::newIndicator ( const QString &filter )
155
155
{
156
156
QgsLayerTreeViewIndicator *indicator = new QgsLayerTreeViewIndicator ( this );
157
157
indicator->setIcon ( mIcon );
158
158
updateIndicator ( indicator, filter );
159
- connect ( indicator, &QgsLayerTreeViewIndicator::clicked, this , &QgsLayerTreeViewFilterIndicatorManager ::onIndicatorClicked );
159
+ connect ( indicator, &QgsLayerTreeViewIndicator::clicked, this , &QgsLayerTreeViewFilterIndicatorProvider ::onIndicatorClicked );
160
160
mIndicators .insert ( indicator );
161
161
return indicator;
162
162
}
163
163
164
- void QgsLayerTreeViewFilterIndicatorManager ::updateIndicator ( QgsLayerTreeViewIndicator *indicator, const QString &filter )
164
+ void QgsLayerTreeViewFilterIndicatorProvider ::updateIndicator ( QgsLayerTreeViewIndicator *indicator, const QString &filter )
165
165
{
166
166
indicator->setToolTip ( QString ( " <b>%1:</b><br>%2" ).arg ( tr ( " Filter" ) ).arg ( filter ) );
167
167
}
168
168
169
169
170
- void QgsLayerTreeViewFilterIndicatorManager ::addOrRemoveIndicator ( QgsLayerTreeNode *node, QgsVectorDataProvider *provider )
170
+ void QgsLayerTreeViewFilterIndicatorProvider ::addOrRemoveIndicator ( QgsLayerTreeNode *node, QgsVectorDataProvider *provider )
171
171
{
172
172
QString filter = provider->subsetString ();
173
173
if ( !filter.isEmpty () )
0 commit comments