diff --git a/src/gui/qgisapp.cpp b/src/gui/qgisapp.cpp index 6c536055c13..5533a4c9564 100644 --- a/src/gui/qgisapp.cpp +++ b/src/gui/qgisapp.cpp @@ -1803,7 +1803,6 @@ bool QgisApp::addLayer(QStringList const &theLayerQStringList, const QString& en // Register this layer with the layers registry QgsMapLayerRegistry::instance()->addMapLayer(layer); - layer->refreshLegend(); // connect up any keypresses to be passed tot he layer (e.g. so esc can stop rendering) #ifdef QGISDEBUG diff --git a/src/legend/qgslegend.cpp b/src/legend/qgslegend.cpp index b47196595a7..0b2903dce48 100755 --- a/src/legend/qgslegend.cpp +++ b/src/legend/qgslegend.cpp @@ -511,14 +511,11 @@ void QgsLegend::addLayer( QgsMapLayer * layer ) blockSignals(false); layer->setLegend(this); - //QgsLegendPropertyGroup * lpgroup = new QgsLegendPropertyGroup(llayer,QString("Properties")); layer->setLegendLayerFile(llfile); layer->initContextMenu(mApp); - insertTopLevelItem(0, llayer); - - setExpanded(indexFromItem(llayer), true); - setExpanded(indexFromItem(llfgroup), false); + setItemExpanded(llayer, true); + setItemExpanded(llfgroup, false); //only if qsetting for 'legend layer file visible' is not set if(!mShowLegendLayerFiles) { @@ -530,8 +527,10 @@ void QgsLegend::addLayer( QgsMapLayer * layer ) // first layer? if (mMapCanvas->layerCount() == 1) mMapCanvas->zoomFullExtent(); - setCurrentItem(llayer); + //make the QTreeWidget item up-to-date + doItemsLayout(); + layer->refreshLegend(); } QgsMapLayer* QgsLegend::currentLayer() @@ -1384,7 +1383,7 @@ void QgsLegend::changeSymbologySettings(const QString& key, const std::list< std //restore the current item again setCurrentItem(theCurrentItem); adjustIconSize(); - setExpanded(indexFromItem(theLegendLayer), true);//make sure the symbology items are visible + setItemExpanded(theLegendLayer, true);//make sure the symbology items are visible } void QgsLegend::addPixmapWidthValue(int width)