20
20
#include " qgslayertreeutils.h"
21
21
#include " qgslayertreeview.h"
22
22
#include " qgsvectorlayer.h"
23
+ #include " qgsrasterlayer.h"
23
24
#include " qgisapp.h"
24
25
25
26
QgsLayerTreeViewIndicatorProvider::QgsLayerTreeViewIndicatorProvider ( QgsLayerTreeView *view )
@@ -89,16 +90,20 @@ void QgsLayerTreeViewIndicatorProvider::onWillRemoveChildren( QgsLayerTreeNode *
89
90
90
91
void QgsLayerTreeViewIndicatorProvider::onLayerLoaded ()
91
92
{
93
+
92
94
QgsLayerTreeLayer *layerNode = qobject_cast<QgsLayerTreeLayer *>( sender () );
93
95
if ( !layerNode )
94
96
return ;
95
97
96
- if ( QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( layerNode->layer () ) )
98
+ if ( !( qobject_cast<QgsVectorLayer *>( layerNode->layer () ) || qobject_cast<QgsRasterLayer *>( layerNode->layer () ) ) )
99
+ return ;
100
+
101
+ if ( QgsMapLayer *mapLayer = qobject_cast<QgsMapLayer *>( layerNode->layer () ) )
97
102
{
98
- if ( vlayer )
103
+ if ( mapLayer )
99
104
{
100
- connectSignals ( vlayer );
101
- addOrRemoveIndicator ( layerNode, vlayer );
105
+ connectSignals ( mapLayer );
106
+ addOrRemoveIndicator ( layerNode, mapLayer );
102
107
}
103
108
}
104
109
}
@@ -123,18 +128,18 @@ void QgsLayerTreeViewIndicatorProvider::onLayerChanged()
123
128
124
129
void QgsLayerTreeViewIndicatorProvider::connectSignals ( QgsMapLayer *layer )
125
130
{
126
- QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( layer );
127
- if ( !vlayer )
131
+ if ( !( qobject_cast<QgsVectorLayer *>( layer ) || qobject_cast<QgsRasterLayer *>( layer ) ) )
128
132
return ;
129
- connect ( vlayer, &QgsVectorLayer::dataSourceChanged, this , &QgsLayerTreeViewIndicatorProvider::onLayerChanged );
133
+ QgsMapLayer *mapLayer = qobject_cast<QgsMapLayer *>( layer );
134
+ connect ( mapLayer, &QgsMapLayer::dataSourceChanged, this , &QgsLayerTreeViewIndicatorProvider::onLayerChanged );
130
135
}
131
136
132
137
void QgsLayerTreeViewIndicatorProvider::disconnectSignals ( QgsMapLayer *layer )
133
138
{
134
- QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( layer );
135
- if ( !vlayer )
139
+ if ( !( qobject_cast<QgsVectorLayer *>( layer ) || qobject_cast<QgsRasterLayer *>( layer ) ) )
136
140
return ;
137
- disconnect ( vlayer, &QgsVectorLayer::dataSourceChanged, this , &QgsLayerTreeViewIndicatorProvider::onLayerChanged );
141
+ QgsMapLayer *mapLayer = qobject_cast<QgsMapLayer *>( layer );
142
+ disconnect ( mapLayer, &QgsMapLayer::dataSourceChanged, this , &QgsLayerTreeViewIndicatorProvider::onLayerChanged );
138
143
}
139
144
140
145
std::unique_ptr< QgsLayerTreeViewIndicator > QgsLayerTreeViewIndicatorProvider::newIndicator ( QgsMapLayer *layer )
0 commit comments