Skip to content

Commit 177e5a1

Browse files
olivierdalangnyalldawson
authored andcommittedJan 27, 2014
[composer] ComposerLegend update all now only applies to referenced map's layers (in case they are locked) (fix #7177)
1 parent cac7790 commit 177e5a1

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed
 

‎src/app/composer/qgscomposerlegendwidget.cpp

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -888,16 +888,27 @@ void QgsComposerLegendWidget::updateLegend()
888888

889889
//get layer id list
890890
QStringList layerIdList;
891-
QgsMapCanvas* canvas = app->mapCanvas();
892-
if ( canvas )
891+
const QgsComposerMap* linkedMap = mLegend->composerMap();
892+
if ( linkedMap && linkedMap->keepLayerSet() )
893893
{
894-
QgsMapRenderer* renderer = canvas->mapRenderer();
895-
if ( renderer )
894+
//if there is a linked map, and if that linked map has a locked layer set, we take the layerIdList from that ComposerMap
895+
layerIdList = linkedMap->layerSet();
896+
}
897+
else
898+
{
899+
//we take the layerIdList from the Canvas
900+
QgsMapCanvas* canvas = app->mapCanvas();
901+
if ( canvas )
896902
{
897-
layerIdList = renderer->layerSet();
903+
QgsMapRenderer* renderer = canvas->mapRenderer();
904+
if ( renderer )
905+
{
906+
layerIdList = renderer->layerSet();
907+
}
898908
}
899909
}
900910

911+
901912
//and also group info
902913
QgsAppLegendInterface legendIface( app->legend() );
903914
QList< GroupLayerInfo > groupInfo = legendIface.groupLayerRelationship();

0 commit comments

Comments
 (0)
Please sign in to comment.