@@ -41,11 +41,14 @@ void QgsLayerTreeViewEmbeddedIndicatorProvider::onAddedChildren( QgsLayerTreeNod
41
41
if ( QgsLayerTree::isGroup ( childNode ) )
42
42
{
43
43
onAddedChildren ( childNode, 0 , childNode->children ().count () - 1 );
44
+ if ( childNode->customProperty ( QStringLiteral ( " embedded" ) ).toInt () )
45
+ {
46
+ addIndicatorForEmbeddedLayer ( childNode );
47
+ }
44
48
}
45
49
else if ( QgsLayerTree::isLayer ( childNode ) && childNode->customProperty ( QStringLiteral ( " embedded" ) ).toInt () )
46
50
{
47
- QgsLayerTreeLayer *childLayerNode = QgsLayerTree::toLayer ( childNode );
48
- addIndicatorForEmbeddedLayer ( childLayerNode );
51
+ addIndicatorForEmbeddedLayer ( childNode );
49
52
}
50
53
}
51
54
}
@@ -61,6 +64,15 @@ QgsLayerTreeViewIndicator *QgsLayerTreeViewEmbeddedIndicatorProvider::newIndicat
61
64
62
65
void QgsLayerTreeViewEmbeddedIndicatorProvider::addIndicatorForEmbeddedLayer ( QgsLayerTreeNode *node )
63
66
{
67
+ QString project = node->customProperty ( QStringLiteral ( " embedded_project" ) ).toString ();
68
+ QgsLayerTreeNode *nextNode = node;
69
+ while ( project.isEmpty () && nextNode )
70
+ {
71
+ nextNode = nextNode->parent ();
72
+ if ( nextNode )
73
+ project = nextNode->customProperty ( QStringLiteral ( " embedded_project" ) ).toString ();
74
+ }
75
+
64
76
const QList<QgsLayerTreeViewIndicator *> nodeIndicators = mLayerTreeView ->indicators ( node );
65
77
66
78
// maybe the indicator exists already
@@ -73,5 +85,5 @@ void QgsLayerTreeViewEmbeddedIndicatorProvider::addIndicatorForEmbeddedLayer( Qg
73
85
}
74
86
75
87
// it does not exist: need to create a new one
76
- mLayerTreeView ->addIndicator ( node, newIndicator ( node-> customProperty ( QStringLiteral ( " embedded_project " ) ). toString () ) );
88
+ mLayerTreeView ->addIndicator ( node, newIndicator ( project ) );
77
89
}
0 commit comments