File tree Expand file tree Collapse file tree 1 file changed +14
-11
lines changed Expand file tree Collapse file tree 1 file changed +14
-11
lines changed Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments