Skip to content

Commit 2c20afd

Browse files
committed
restore previous Qgs(App)LegendInterface behaviour
1 parent 02e1e12 commit 2c20afd

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

src/app/legend/qgsapplegendinterface.cpp

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,23 @@ int QgsAppLegendInterface::addGroup( QString name, bool expand, QTreeWidgetItem*
4545
return addGroup( name, expand, -1 );
4646
}
4747

48+
void QgsAppLegendInterface::setExpanded( QgsLayerTreeNode *node, bool expand )
49+
{
50+
QModelIndex idx = mLayerTreeView->layerTreeModel()->node2index( node );
51+
if ( expand )
52+
mLayerTreeView->expand( idx );
53+
else
54+
mLayerTreeView->collapse( idx );
55+
}
56+
4857
int QgsAppLegendInterface::addGroup( QString name, bool expand, int parentIndex )
4958
{
5059
QgsLayerTreeGroup* parentGroup = parentIndex == -1 ? mLayerTreeView->layerTreeModel()->rootGroup() : groupIndexToNode( parentIndex );
5160
if ( !parentGroup )
5261
return -1;
5362

5463
QgsLayerTreeGroup* group = parentGroup->addGroup( name );
55-
group->setExpanded( expand );
64+
setExpanded( group, expand );
5665
return groupNodeToIndex( group );
5766
}
5867

@@ -76,7 +85,7 @@ void QgsAppLegendInterface::moveLayer( QgsMapLayer * ml, int groupIndex )
7685
if ( !nodeLayer || !QgsLayerTree::isGroup( nodeLayer->parent() ) )
7786
return;
7887

79-
group->addLayer( ml );
88+
group->insertLayer( 0, ml );
8089

8190
QgsLayerTreeGroup* nodeLayerParentGroup = QgsLayerTree::toGroup( nodeLayer->parent() );
8291
nodeLayerParentGroup->removeChildNode( nodeLayer );
@@ -85,7 +94,7 @@ void QgsAppLegendInterface::moveLayer( QgsMapLayer * ml, int groupIndex )
8594
void QgsAppLegendInterface::setGroupExpanded( int groupIndex, bool expand )
8695
{
8796
if ( QgsLayerTreeGroup* group = groupIndexToNode( groupIndex ) )
88-
group->setExpanded( expand );
97+
setExpanded( group, expand );
8998
}
9099

91100
void QgsAppLegendInterface::setGroupVisible( int groupIndex, bool visible )
@@ -155,7 +164,7 @@ void QgsAppLegendInterface::setLayerVisible( QgsMapLayer * ml, bool visible )
155164
void QgsAppLegendInterface::setLayerExpanded( QgsMapLayer * ml, bool expand )
156165
{
157166
if ( QgsLayerTreeLayer* nodeLayer = mLayerTreeView->layerTreeModel()->rootGroup()->findLayer( ml->id() ) )
158-
nodeLayer->setExpanded( expand );
167+
setExpanded( nodeLayer, expand );
159168
}
160169

161170
static void _collectGroups( QgsLayerTreeGroup* parentGroup, QStringList& list )

src/app/legend/qgsapplegendinterface.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,11 @@ class QgsAppLegendInterface : public QgsLegendInterface
111111
void onRemovedChildren();
112112

113113
private:
114-
115114
//! Pointer to QgsLegend object
116115
QgsLayerTreeView* mLayerTreeView;
117116
QgsLayerTreeGroup* groupIndexToNode( int itemIndex );
118117
int groupNodeToIndex( QgsLayerTreeGroup* group );
118+
void setExpanded( QgsLayerTreeNode *node, bool expand );
119119
};
120120

121121
#endif //QGSLEGENDAPPIFACE_H

0 commit comments

Comments
 (0)