Index: src/app/legend/qgslegend.cpp =================================================================== --- src/app/legend/qgslegend.cpp (revision 7675) +++ src/app/legend/qgslegend.cpp (working copy) @@ -480,7 +480,7 @@ } llfile->updateLegendItem(); - refreshLayerSymbology(layer->getLayerID()); + refreshLayerSymbology(layer->getLayerID(), true); updateMapCanvasLayerSet(); @@ -650,7 +650,7 @@ else { rlp = new QgsRasterLayerProperties(ml); - connect(rlp, SIGNAL(refreshLegend(QString)), this, SLOT(refreshLayerSymbology(QString))); + connect(rlp, SIGNAL(refreshLegend(QString,bool)), this, SLOT(refreshLayerSymbology(QString,bool))); } rlp->exec(); delete rlp; // delete since dialog cannot be reused without updating code @@ -667,7 +667,7 @@ else { vlp = new QgsVectorLayerProperties(vlayer); - connect(vlp, SIGNAL(refreshLegend(QString)), this, SLOT(refreshLayerSymbology(QString))); + connect(vlp, SIGNAL(refreshLegend(QString,bool)), this, SLOT(refreshLayerSymbology(QString,bool))); } vlp->exec(); delete vlp; // delete since dialog cannot be reused without updating code @@ -1017,7 +1017,7 @@ } theLegendLayerFile->updateLegendItem(); - refreshLayerSymbology(theMapLayer->getLayerID()); + refreshLayerSymbology(theMapLayer->getLayerID(), true); } } else if(childelem.tagName()=="filegroup") @@ -1405,7 +1405,7 @@ } -void QgsLegend::refreshLayerSymbology(QString key) +void QgsLegend::refreshLayerSymbology(QString key, bool expandItem) { QgsLegendLayer* theLegendLayer = findLegendLayer(key); if(!theLegendLayer) @@ -1421,7 +1421,10 @@ //restore the current item again setCurrentItem(theCurrentItem); adjustIconSize(); - setItemExpanded(theLegendLayer, true);//make sure the symbology items are visible + if (expandItem) + { + setItemExpanded(theLegendLayer, true);//make sure the symbology items are visible + } } Index: src/app/legend/qgslegend.h =================================================================== --- src/app/legend/qgslegend.h (revision 7675) +++ src/app/legend/qgslegend.h (working copy) @@ -188,7 +188,7 @@ void setMapCanvas(QgsMapCanvas * canvas){mMapCanvas = canvas;} /**Updates symbology items for a layer*/ - void refreshLayerSymbology(QString key); + void refreshLayerSymbology(QString key, bool expandItem); /*! * Slot called to clear the tree of all items Index: src/app/qgsrasterlayerproperties.h =================================================================== --- src/app/qgsrasterlayerproperties.h (revision 7675) +++ src/app/qgsrasterlayerproperties.h (working copy) @@ -64,7 +64,7 @@ signals: /** emitted when changes to layer were saved to update legend */ - void refreshLegend(QString layerID); + void refreshLegend(QString layerID, bool expandItem); private: Index: src/app/qgsvectorlayerproperties.h =================================================================== --- src/app/qgsvectorlayerproperties.h (revision 7675) +++ src/app/qgsvectorlayerproperties.h (working copy) @@ -67,7 +67,7 @@ signals: /** emitted when changes to layer were saved to update legend */ - void refreshLegend(QString layerID); + void refreshLegend(QString layerID, bool expandItem); protected: QgsVectorLayer *layer; Index: src/app/qgsrasterlayerproperties.cpp =================================================================== --- src/app/qgsrasterlayerproperties.cpp (revision 7675) +++ src/app/qgsrasterlayerproperties.cpp (working copy) @@ -431,7 +431,7 @@ pixmapThumbnail->setPixmap(myQPixmap); // update symbology - emit refreshLegend(rasterLayer->getLayerID()); + emit refreshLegend(rasterLayer->getLayerID(), false); //make sure the layer is redrawn rasterLayer->triggerRepaint(); Index: src/app/qgsvectorlayerproperties.cpp =================================================================== --- src/app/qgsvectorlayerproperties.cpp (revision 7675) +++ src/app/qgsvectorlayerproperties.cpp (working copy) @@ -312,7 +312,7 @@ layer->setTransparency(static_cast < unsigned int >(255 - sliderTransparency->value())); // update symbology - emit refreshLegend(layer->getLayerID()); + emit refreshLegend(layer->getLayerID(), false); layer->triggerRepaint(); Index: src/app/qgisappinterface.cpp =================================================================== --- src/app/qgisappinterface.cpp (revision 7675) +++ src/app/qgisappinterface.cpp (working copy) @@ -145,6 +145,6 @@ { if(l && qgis && qgis->legend()) { - qgis->legend()->refreshLayerSymbology( l->getLayerID() ); + qgis->legend()->refreshLayerSymbology( l->getLayerID(), true ); } }