@@ -684,7 +684,10 @@ QPair< bool, QList<QDomNode> > QgsProject::_getMapLayers( QDomDocument const &do
684
684
685
685
if ( element.attribute (" embedded" ) == " 1" )
686
686
{
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
+ }
688
691
continue ;
689
692
}
690
693
else
@@ -960,6 +963,10 @@ bool QgsProject::read()
960
963
961
964
bool QgsProject::read ( QDomNode & layerNode )
962
965
{
966
+ QList<QDomNode> brokenNodes;
967
+ QList< QPair< QgsVectorLayer*, QDomElement > > vectorLayerList;
968
+ return addLayer ( layerNode.toElement (), brokenNodes, vectorLayerList );
969
+ #if 0
963
970
QString type = layerNode.toElement().attribute( "type" );
964
971
965
972
QgsMapLayer *mapLayer = NULL;
@@ -1004,6 +1011,7 @@ bool QgsProject::read( QDomNode & layerNode )
1004
1011
}
1005
1012
1006
1013
return true;
1014
+ #endif // 0
1007
1015
} // QgsProject::read( QDomNode & layerNode )
1008
1016
1009
1017
@@ -1617,24 +1625,24 @@ QString QgsProject::layerIsEmbedded( const QString& id ) const
1617
1625
return it.value ();
1618
1626
};
1619
1627
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 )
1621
1629
{
1622
1630
QFile projectFile ( projectFilePath );
1623
1631
if ( !projectFile.open ( QIODevice::ReadOnly ) )
1624
1632
{
1625
- return 0 ;
1633
+ return false ;
1626
1634
}
1627
1635
1628
1636
QDomDocument projectDocument;
1629
1637
if ( !projectDocument.setContent ( &projectFile ) )
1630
1638
{
1631
- return 0 ;
1639
+ return false ;
1632
1640
}
1633
1641
1634
1642
QDomElement projectLayersElem = projectDocument.documentElement ().firstChildElement (" projectlayers" );
1635
1643
if ( projectLayersElem.isNull () )
1636
1644
{
1637
- return 0 ;
1645
+ return false ;
1638
1646
}
1639
1647
1640
1648
QDomNodeList mapLayerNodes = projectLayersElem.elementsByTagName (" maplayer" );
@@ -1645,12 +1653,8 @@ QgsMapLayer* QgsProject::createEmbeddedLayer( const QString& layerId, const QStr
1645
1653
QString id = mapLayerElem.firstChildElement (" id" ).text ();
1646
1654
if ( id == layerId )
1647
1655
{
1656
+ return addLayer ( mapLayerElem, brokenNodes, vectorLayerList );
1648
1657
#if 0
1649
- if( !addLayer( element, brokenNodes, vLayerList ) )
1650
- {
1651
- returnStatus = false;
1652
- }
1653
- #endif // 0
1654
1658
QString type = mapLayerElem.attribute("type");
1655
1659
QgsMapLayer* layer = 0;
1656
1660
if( type == "vector" )
@@ -1684,10 +1688,12 @@ QgsMapLayer* QgsProject::createEmbeddedLayer( const QString& layerId, const QStr
1684
1688
return 0;
1685
1689
}
1686
1690
return layer;
1691
+ #endif // 0
1687
1692
}
1688
1693
}
1689
1694
1690
- return 0 ;
1695
+ // brokenNodes.push_back( );
1696
+ return false ;
1691
1697
}
1692
1698
1693
1699
void QgsProjectBadLayerDefaultHandler::handleBadLayers ( QList<QDomNode> /* layers*/ , QDomDocument /* projectDom*/ )
0 commit comments