File tree 1 file changed +13
-10
lines changed
1 file changed +13
-10
lines changed Original file line number Diff line number Diff line change @@ -1150,21 +1150,24 @@ QList<QgsLayerTreeModelLegendNode*> QgsLayerTreeModel::filterLegendNodes( const
1150
1150
}
1151
1151
else if ( mLegendFilterMapSettings )
1152
1152
{
1153
- Q_FOREACH ( QgsLayerTreeModelLegendNode* node, nodes )
1153
+ if ( !nodes. isEmpty () && mLegendFilterMapSettings -> layers (). contains ( nodes. at ( 0 )-> layerNode ()-> layerId () ) )
1154
1154
{
1155
- QgsSymbolV2* ruleKey = reinterpret_cast < QgsSymbolV2* >( node->data ( QgsSymbolV2LegendNode::SymbolV2LegacyRuleKeyRole ).value <void *>() );
1156
- bool checked = mLegendFilterUsesExtent || node->data ( Qt::CheckStateRole ).toInt () == Qt::Checked;
1157
- if ( ruleKey && checked )
1155
+ Q_FOREACH ( QgsLayerTreeModelLegendNode* node, nodes )
1158
1156
{
1159
- QString ruleKey = node->data ( QgsSymbolV2LegendNode::RuleKeyRole ).toString ();
1160
- if ( QgsVectorLayer* vl = qobject_cast<QgsVectorLayer*>( node->layerNode ()->layer () ) )
1157
+ QgsSymbolV2* ruleKey = reinterpret_cast < QgsSymbolV2* >( node->data ( QgsSymbolV2LegendNode::SymbolV2LegacyRuleKeyRole ).value <void *>() );
1158
+ bool checked = mLegendFilterUsesExtent || node->data ( Qt::CheckStateRole ).toInt () == Qt::Checked;
1159
+ if ( ruleKey && checked )
1161
1160
{
1162
- if ( mLegendFilterHitTest ->legendKeyVisible ( ruleKey, vl ) )
1163
- filtered << node;
1161
+ QString ruleKey = node->data ( QgsSymbolV2LegendNode::RuleKeyRole ).toString ();
1162
+ if ( QgsVectorLayer* vl = qobject_cast<QgsVectorLayer*>( node->layerNode ()->layer () ) )
1163
+ {
1164
+ if ( mLegendFilterHitTest ->legendKeyVisible ( ruleKey, vl ) )
1165
+ filtered << node;
1166
+ }
1164
1167
}
1168
+ else // unknown node type or unchecked
1169
+ filtered << node;
1165
1170
}
1166
- else // unknown node type or unchecked
1167
- filtered << node;
1168
1171
}
1169
1172
}
1170
1173
else
You can’t perform that action at this time.
0 commit comments