Skip to content

Commit a3bd321

Browse files
arnaud-morvanwonder-sk
authored andcommitted
Remove invisible layers from legend
Do not show invisible layers in composer legend. Useful for raster layers as QgsMapHitTest only take care of vector layers. Related with #14194 Related with #11641
1 parent b0c29da commit a3bd321

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

src/core/layertree/qgslayertreemodel.cpp

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1138,24 +1138,27 @@ QList<QgsLayerTreeModelLegendNode *> QgsLayerTreeModel::filterLegendNodes( const
11381138
}
11391139
else if ( mLegendFilterMapSettings )
11401140
{
1141-
Q_FOREACH ( QgsLayerTreeModelLegendNode *node, nodes )
1141+
if ( !nodes.isEmpty() && mLegendFilterMapSettings->layers().contains( nodes.at( 0 )->layerNode()->layer() ) )
11421142
{
1143-
QString ruleKey = node->data( QgsSymbolLegendNode::RuleKeyRole ).toString();
1144-
bool checked = mLegendFilterUsesExtent || node->data( Qt::CheckStateRole ).toInt() == Qt::Checked;
1145-
if ( checked )
1143+
Q_FOREACH ( QgsLayerTreeModelLegendNode *node, nodes )
11461144
{
1147-
if ( QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( node->layerNode()->layer() ) )
1145+
QString ruleKey = node->data( QgsSymbolLegendNode::RuleKeyRole ).toString();
1146+
bool checked = mLegendFilterUsesExtent || node->data( Qt::CheckStateRole ).toInt() == Qt::Checked;
1147+
if ( checked )
11481148
{
1149-
if ( mLegendFilterHitTest->legendKeyVisible( ruleKey, vl ) )
1149+
if ( QgsVectorLayer *vl = qobject_cast<QgsVectorLayer *>( node->layerNode()->layer() ) )
1150+
{
1151+
if ( mLegendFilterHitTest->legendKeyVisible( ruleKey, vl ) )
1152+
filtered << node;
1153+
}
1154+
else
1155+
{
11501156
filtered << node;
1157+
}
11511158
}
1152-
else
1153-
{
1159+
else // unknown node type or unchecked
11541160
filtered << node;
1155-
}
11561161
}
1157-
else // unknown node type or unchecked
1158-
filtered << node;
11591162
}
11601163
}
11611164
else

0 commit comments

Comments
 (0)