@@ -682,14 +682,14 @@ QPair< bool, QList<QDomNode> > QgsProject::_getMapLayers( QDomDocument const &do
682
682
QDomNode node = nl.item ( i );
683
683
QDomElement element = node.toElement ();
684
684
685
- if ( element.attribute (" embedded" ) == " 1" )
685
+ if ( element.attribute ( " embedded" ) == " 1" )
686
686
{
687
687
createEmbeddedLayer ( element.attribute ( " id" ), readPath ( element.attribute ( " project" ) ), brokenNodes, vLayerList );
688
688
continue ;
689
689
}
690
690
else
691
691
{
692
- if ( !addLayer ( element, brokenNodes, vLayerList ) )
692
+ if ( !addLayer ( element, brokenNodes, vLayerList ) )
693
693
{
694
694
returnStatus = false ;
695
695
}
@@ -859,6 +859,7 @@ bool QgsProject::read()
859
859
// project still hanging around
860
860
861
861
imp_->clear ();
862
+ mEmbeddedLayers .clear ();
862
863
863
864
// now get any properties
864
865
_getProperties ( *doc, imp_->properties_ );
@@ -914,52 +915,6 @@ bool QgsProject::read( QDomNode & layerNode )
914
915
QList<QDomNode> brokenNodes;
915
916
QList< QPair< QgsVectorLayer*, QDomElement > > vectorLayerList;
916
917
return addLayer ( layerNode.toElement (), brokenNodes, vectorLayerList );
917
- #if 0
918
- QString type = layerNode.toElement().attribute( "type" );
919
-
920
- QgsMapLayer *mapLayer = NULL;
921
-
922
- if ( type == "vector" )
923
- {
924
- mapLayer = new QgsVectorLayer;
925
- }
926
- else if ( type == "raster" )
927
- {
928
- mapLayer = new QgsRasterLayer;
929
- }
930
- else if ( type == "plugin" )
931
- {
932
- QString typeName = layerNode.toElement().attribute( "name" );
933
- mapLayer = QgsPluginLayerRegistry::instance()->createLayer( typeName );
934
- }
935
- else
936
- {
937
- QgsDebugMsg( "bad layer type" );
938
- return false;
939
- }
940
-
941
- if ( !mapLayer )
942
- {
943
- QgsDebugMsg( "unable to create layer" );
944
- return false;
945
- }
946
-
947
- // have the layer restore state that is stored in Dom node
948
- if ( mapLayer->readXML( layerNode ) )
949
- {
950
- mapLayer = QgsMapLayerRegistry::instance()->addMapLayer( mapLayer );
951
- }
952
- else
953
- {
954
- delete mapLayer;
955
-
956
- QgsDebugMsg( "unable to load " + type + " layer" );
957
-
958
- return false;
959
- }
960
-
961
- return true;
962
- #endif // 0
963
918
} // QgsProject::read( QDomNode & layerNode )
964
919
965
920
@@ -1041,19 +996,19 @@ bool QgsProject::write()
1041
996
{
1042
997
QString externalProjectFile = layerIsEmbedded ( ml->id () );
1043
998
QHash< QString, QPair< QString, bool > >::const_iterator emIt = mEmbeddedLayers .find ( ml->id () );
1044
- if ( emIt == mEmbeddedLayers .constEnd () )
999
+ if ( emIt == mEmbeddedLayers .constEnd () )
1045
1000
{
1046
1001
ml->writeXML ( projectLayersNode, *doc );
1047
1002
}
1048
1003
else // layer defined in an external project file
1049
1004
{
1050
1005
// only save embedded layer if not managed by a legend group
1051
- if ( emIt.value ().second )
1006
+ if ( emIt.value ().second )
1052
1007
{
1053
- QDomElement mapLayerElem = doc->createElement (" maplayer" );
1054
- mapLayerElem.setAttribute (" embedded" , 1 );
1055
- mapLayerElem.setAttribute (" project" , writePath ( emIt.value ().first ) );
1056
- mapLayerElem.setAttribute (" id" , ml->id () );
1008
+ QDomElement mapLayerElem = doc->createElement ( " maplayer" );
1009
+ mapLayerElem.setAttribute ( " embedded" , 1 );
1010
+ mapLayerElem.setAttribute ( " project" , writePath ( emIt.value ().first ) );
1011
+ mapLayerElem.setAttribute ( " id" , ml->id () );
1057
1012
projectLayersNode.appendChild ( mapLayerElem );
1058
1013
}
1059
1014
}
@@ -1566,50 +1521,50 @@ void QgsProject::setBadLayerHandler( QgsProjectBadLayerHandler* handler )
1566
1521
QString QgsProject::layerIsEmbedded ( const QString& id ) const
1567
1522
{
1568
1523
QHash< QString, QPair< QString, bool > >::const_iterator it = mEmbeddedLayers .find ( id );
1569
- if ( it == mEmbeddedLayers .constEnd () )
1524
+ if ( it == mEmbeddedLayers .constEnd () )
1570
1525
{
1571
1526
return QString ();
1572
1527
}
1573
1528
return it.value ().first ;
1574
1529
};
1575
1530
1576
1531
bool QgsProject::createEmbeddedLayer ( const QString& layerId, const QString& projectFilePath, QList<QDomNode>& brokenNodes,
1577
- QList< QPair< QgsVectorLayer*, QDomElement > >& vectorLayerList, bool saveFlag )
1532
+ QList< QPair< QgsVectorLayer*, QDomElement > >& vectorLayerList, bool saveFlag )
1578
1533
{
1579
1534
QFile projectFile ( projectFilePath );
1580
- if ( !projectFile.open ( QIODevice::ReadOnly ) )
1535
+ if ( !projectFile.open ( QIODevice::ReadOnly ) )
1581
1536
{
1582
1537
return false ;
1583
1538
}
1584
1539
1585
1540
QDomDocument projectDocument;
1586
- if ( !projectDocument.setContent ( &projectFile ) )
1541
+ if ( !projectDocument.setContent ( &projectFile ) )
1587
1542
{
1588
1543
return false ;
1589
1544
}
1590
1545
1591
- QDomElement projectLayersElem = projectDocument.documentElement ().firstChildElement (" projectlayers" );
1592
- if ( projectLayersElem.isNull () )
1546
+ QDomElement projectLayersElem = projectDocument.documentElement ().firstChildElement ( " projectlayers" );
1547
+ if ( projectLayersElem.isNull () )
1593
1548
{
1594
1549
return false ;
1595
1550
}
1596
1551
1597
- QDomNodeList mapLayerNodes = projectLayersElem.elementsByTagName (" maplayer" );
1598
- for ( int i = 0 ; i < mapLayerNodes.size (); ++i )
1552
+ QDomNodeList mapLayerNodes = projectLayersElem.elementsByTagName ( " maplayer" );
1553
+ for ( int i = 0 ; i < mapLayerNodes.size (); ++i )
1599
1554
{
1600
1555
// get layer id
1601
- QDomElement mapLayerElem = mapLayerNodes.at (i ).toElement ();
1602
- QString id = mapLayerElem.firstChildElement (" id" ).text ();
1603
- if ( id == layerId )
1556
+ QDomElement mapLayerElem = mapLayerNodes.at ( i ).toElement ();
1557
+ QString id = mapLayerElem.firstChildElement ( " id" ).text ();
1558
+ if ( id == layerId )
1604
1559
{
1605
1560
// layer can be embedded only once
1606
- if ( mapLayerElem.attribute (" embedded" ) == " 1" )
1561
+ if ( mapLayerElem.attribute ( " embedded" ) == " 1" )
1607
1562
{
1608
1563
return false ;
1609
1564
}
1610
1565
1611
1566
mEmbeddedLayers .insert ( layerId, qMakePair ( projectFilePath, saveFlag ) );
1612
- if ( addLayer ( mapLayerElem, brokenNodes, vectorLayerList ) )
1567
+ if ( addLayer ( mapLayerElem, brokenNodes, vectorLayerList ) )
1613
1568
{
1614
1569
return true ;
1615
1570
}
0 commit comments