@@ -511,14 +511,11 @@ void QgsLegend::addLayer( QgsMapLayer * layer )
511511 blockSignals (false );
512512
513513 layer->setLegend (this );
514- // QgsLegendPropertyGroup * lpgroup = new QgsLegendPropertyGroup(llayer,QString("Properties"));
515514 layer->setLegendLayerFile (llfile);
516515 layer->initContextMenu (mApp );
517-
518516 insertTopLevelItem (0 , llayer);
519-
520- setExpanded (indexFromItem (llayer), true );
521- setExpanded (indexFromItem (llfgroup), false );
517+ setItemExpanded (llayer, true );
518+ setItemExpanded (llfgroup, false );
522519 // only if qsetting for 'legend layer file visible' is not set
523520 if (!mShowLegendLayerFiles )
524521 {
@@ -530,8 +527,10 @@ void QgsLegend::addLayer( QgsMapLayer * layer )
530527 // first layer?
531528 if (mMapCanvas ->layerCount () == 1 )
532529 mMapCanvas ->zoomFullExtent ();
533-
534530 setCurrentItem (llayer);
531+ // make the QTreeWidget item up-to-date
532+ doItemsLayout ();
533+ layer->refreshLegend ();
535534}
536535
537536QgsMapLayer* QgsLegend::currentLayer ()
@@ -1384,7 +1383,7 @@ void QgsLegend::changeSymbologySettings(const QString& key, const std::list< std
13841383 // restore the current item again
13851384 setCurrentItem (theCurrentItem);
13861385 adjustIconSize ();
1387- setExpanded ( indexFromItem ( theLegendLayer) , true );// make sure the symbology items are visible
1386+ setItemExpanded ( theLegendLayer, true );// make sure the symbology items are visible
13881387}
13891388
13901389void QgsLegend::addPixmapWidthValue (int width)
0 commit comments