fix QgsLayerTreeModel::refreshLayerLegend (#9785)

* fix QgsLayerTreeModel::refreshLayerLegend

Guard if the QModelIndex (idx) has no children.

* Update qgslayertreemodel.cpp

* Update qgslayertreemodel.cpp

* Update qgslayertreemodel.cpp

* Apply suggestions from code review

Co-Authored-By: vcloarec <vcloarec@gmail.com>
This commit is contained in:
vcloarec 2019-04-16 11:37:26 -04:00 committed by Matthias Kuhn
parent 891ea18bab
commit bed3da4308

View File

@ -539,9 +539,12 @@ void QgsLayerTreeModel::refreshLayerLegend( QgsLayerTreeLayer *nodeLayer )
// update children
int oldNodeCount = rowCount( idx );
beginRemoveRows( idx, 0, std::max( oldNodeCount - 1, 0 ) );
removeLegendFromLayer( nodeLayer );
endRemoveRows();
if ( oldNodeCount > 0 )
{
beginRemoveRows( idx, 0, oldNodeCount - 1 );
removeLegendFromLayer( nodeLayer );
endRemoveRows();
}
addLegendToLayer( nodeLayer );
int newNodeCount = rowCount( idx );