Skip to content

Commit a54c31d

Browse files
committedNov 7, 2014
Fix a crash in layer node after removal of layer from registry.
A crash may occur when using custom layer tree in composer legend and layer from that tree is removed from registry. This would happen only in some code paths.
1 parent 2597100 commit a54c31d

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed
 

‎src/core/layertree/qgslayertreelayer.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,11 @@
2323
QgsLayerTreeLayer::QgsLayerTreeLayer( QgsMapLayer *layer )
2424
: QgsLayerTreeNode( NodeLayer )
2525
, mLayerId( layer->id() )
26-
, mLayer( layer )
26+
, mLayer( 0 )
2727
, mVisible( Qt::Checked )
2828
{
2929
Q_ASSERT( QgsMapLayerRegistry::instance()->mapLayer( mLayerId ) == layer );
30+
attachToLayer();
3031
}
3132

3233
QgsLayerTreeLayer::QgsLayerTreeLayer( QString layerId, QString name )
@@ -148,8 +149,8 @@ void QgsLayerTreeLayer::registryLayersAdded( QList<QgsMapLayer*> layers )
148149
{
149150
if ( l->id() == mLayerId )
150151
{
151-
mLayer = l;
152152
disconnect( QgsMapLayerRegistry::instance(), SIGNAL( layersAdded( QList<QgsMapLayer*> ) ), this, SLOT( registryLayersAdded( QList<QgsMapLayer*> ) ) );
153+
attachToLayer();
153154
emit layerLoaded();
154155
break;
155156
}

0 commit comments

Comments
 (0)
Please sign in to comment.