@@ -684,7 +684,10 @@ QPair< bool, QList<QDomNode> > QgsProject::_getMapLayers( QDomDocument const &do
684684
685685 if ( element.attribute (" embedded" ) == " 1" )
686686 {
687- createEmbeddedLayer ( element.attribute ( " id" ), readPath ( element.attribute ( " project" ) ) );
687+ if ( !createEmbeddedLayer ( element.attribute ( " id" ), readPath ( element.attribute ( " project" ) ), brokenNodes, vLayerList ) )
688+ {
689+ returnStatus = false ;
690+ }
688691 continue ;
689692 }
690693 else
@@ -960,6 +963,10 @@ bool QgsProject::read()
960963
961964bool QgsProject::read ( QDomNode & layerNode )
962965{
966+ QList<QDomNode> brokenNodes;
967+ QList< QPair< QgsVectorLayer*, QDomElement > > vectorLayerList;
968+ return addLayer ( layerNode.toElement (), brokenNodes, vectorLayerList );
969+ #if 0
963970 QString type = layerNode.toElement().attribute( "type" );
964971
965972 QgsMapLayer *mapLayer = NULL;
@@ -1004,6 +1011,7 @@ bool QgsProject::read( QDomNode & layerNode )
10041011 }
10051012
10061013 return true;
1014+ #endif // 0
10071015} // QgsProject::read( QDomNode & layerNode )
10081016
10091017
@@ -1617,24 +1625,24 @@ QString QgsProject::layerIsEmbedded( const QString& id ) const
16171625 return it.value ();
16181626};
16191627
1620- QgsMapLayer* QgsProject::createEmbeddedLayer ( const QString& layerId, const QString& projectFilePath )
1628+ bool QgsProject::createEmbeddedLayer ( const QString& layerId, const QString& projectFilePath, QList<QDomNode>& brokenNodes, QList< QPair< QgsVectorLayer*, QDomElement > >& vectorLayerList )
16211629{
16221630 QFile projectFile ( projectFilePath );
16231631 if ( !projectFile.open ( QIODevice::ReadOnly ) )
16241632 {
1625- return 0 ;
1633+ return false ;
16261634 }
16271635
16281636 QDomDocument projectDocument;
16291637 if ( !projectDocument.setContent ( &projectFile ) )
16301638 {
1631- return 0 ;
1639+ return false ;
16321640 }
16331641
16341642 QDomElement projectLayersElem = projectDocument.documentElement ().firstChildElement (" projectlayers" );
16351643 if ( projectLayersElem.isNull () )
16361644 {
1637- return 0 ;
1645+ return false ;
16381646 }
16391647
16401648 QDomNodeList mapLayerNodes = projectLayersElem.elementsByTagName (" maplayer" );
@@ -1645,12 +1653,8 @@ QgsMapLayer* QgsProject::createEmbeddedLayer( const QString& layerId, const QStr
16451653 QString id = mapLayerElem.firstChildElement (" id" ).text ();
16461654 if ( id == layerId )
16471655 {
1656+ return addLayer ( mapLayerElem, brokenNodes, vectorLayerList );
16481657#if 0
1649- if( !addLayer( element, brokenNodes, vLayerList ) )
1650- {
1651- returnStatus = false;
1652- }
1653- #endif // 0
16541658 QString type = mapLayerElem.attribute("type");
16551659 QgsMapLayer* layer = 0;
16561660 if( type == "vector" )
@@ -1684,10 +1688,12 @@ QgsMapLayer* QgsProject::createEmbeddedLayer( const QString& layerId, const QStr
16841688 return 0;
16851689 }
16861690 return layer;
1691+ #endif // 0
16871692 }
16881693 }
16891694
1690- return 0 ;
1695+ // brokenNodes.push_back( );
1696+ return false ;
16911697}
16921698
16931699void QgsProjectBadLayerDefaultHandler::handleBadLayers ( QList<QDomNode> /* layers*/ , QDomDocument /* projectDom*/ )
0 commit comments