Skip to content

Commit f28a6d1

Browse files
committed
Fix #11703 and #11704
Do not create a layer node if the passed layer cannot be used (not in registry)
1 parent 1614ac8 commit f28a6d1

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

src/core/layertree/qgslayertreegroup.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
#include "qgslayertree.h"
1919
#include "qgslayertreeutils.h"
20+
#include "qgsmaplayer.h"
21+
#include "qgsmaplayerregistry.h"
2022

2123
#include <QDomElement>
2224
#include <QStringList>
@@ -57,13 +59,19 @@ QgsLayerTreeGroup* QgsLayerTreeGroup::addGroup( const QString &name )
5759

5860
QgsLayerTreeLayer*QgsLayerTreeGroup::insertLayer( int index, QgsMapLayer* layer )
5961
{
62+
if ( !layer || QgsMapLayerRegistry::instance()->mapLayer( layer->id() ) != layer )
63+
return 0;
64+
6065
QgsLayerTreeLayer* ll = new QgsLayerTreeLayer( layer );
6166
insertChildNode( index, ll );
6267
return ll;
6368
}
6469

6570
QgsLayerTreeLayer* QgsLayerTreeGroup::addLayer( QgsMapLayer* layer )
6671
{
72+
if ( !layer || QgsMapLayerRegistry::instance()->mapLayer( layer->id() ) != layer )
73+
return 0;
74+
6775
QgsLayerTreeLayer* ll = new QgsLayerTreeLayer( layer );
6876
addChildNode( ll );
6977
return ll;

0 commit comments

Comments
 (0)