@@ -974,7 +974,7 @@ void QgsProject::loadEmbeddedNodes( QgsLayerTreeGroup* group )
974
974
QString projectPath = readPath ( childGroup->customProperty ( " embedded_project" ).toString () );
975
975
childGroup->setCustomProperty ( " embedded_project" , projectPath );
976
976
977
- QgsLayerTreeGroup* newGroup = createEmbeddedGroup ( childGroup->name (), projectPath );
977
+ QgsLayerTreeGroup* newGroup = createEmbeddedGroup ( childGroup->name (), projectPath, childGroup-> customProperty ( " embedded-invisible-layers " ). toStringList () );
978
978
if ( newGroup )
979
979
{
980
980
QList<QgsLayerTreeNode*> clonedChildren;
@@ -1083,7 +1083,7 @@ bool QgsProject::write()
1083
1083
1084
1084
// write layer tree - make sure it is without embedded subgroups
1085
1085
QgsLayerTreeNode* clonedRoot = mRootGroup ->clone ();
1086
- QgsLayerTreeUtils::removeChildrenOfEmbeddedGroups ( QgsLayerTree::toGroup ( clonedRoot ) );
1086
+ QgsLayerTreeUtils::replaceChildrenOfEmbeddedGroups ( QgsLayerTree::toGroup ( clonedRoot ) );
1087
1087
QgsLayerTreeUtils::updateEmbeddedGroupsProjectPath ( QgsLayerTree::toGroup ( clonedRoot ) ); // convert absolute paths to relative paths if required
1088
1088
clonedRoot->writeXML ( qgisNode );
1089
1089
delete clonedRoot;
@@ -1794,7 +1794,7 @@ bool QgsProject::createEmbeddedLayer( const QString& layerId, const QString& pro
1794
1794
}
1795
1795
1796
1796
1797
- QgsLayerTreeGroup* QgsProject::createEmbeddedGroup ( const QString& groupName, const QString& projectFilePath )
1797
+ QgsLayerTreeGroup* QgsProject::createEmbeddedGroup ( const QString& groupName, const QString& projectFilePath, const QStringList &invisibleLayers )
1798
1798
{
1799
1799
// open project file, get layer ids in group, add the layers
1800
1800
QFile projectFile ( projectFilePath );
@@ -1863,6 +1863,12 @@ QgsLayerTreeGroup* QgsProject::createEmbeddedGroup( const QString& groupName, co
1863
1863
thisProjectIdentifyDisabledLayers.append ( layerId );
1864
1864
QgsProject::instance ()->writeEntry ( " Identify" , " /disabledLayers" , thisProjectIdentifyDisabledLayers );
1865
1865
}
1866
+
1867
+ QgsLayerTreeLayer *layer = newGroup->findLayer ( layerId );
1868
+ if ( layer )
1869
+ {
1870
+ layer->setVisible ( invisibleLayers.contains ( layerId ) ? Qt::Unchecked : Qt::Checked );
1871
+ }
1866
1872
}
1867
1873
1868
1874
return newGroup;
0 commit comments