Skip to content

Commit e3197a6

Browse files
committedMay 31, 2011
remove more redundancy in qgsproject
1 parent 017db9c commit e3197a6

File tree

3 files changed

+23
-13
lines changed

3 files changed

+23
-13
lines changed
 

‎src/app/qgisapp.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5056,7 +5056,10 @@ void QgisApp::embedLayers()
50565056
//hardcoded for debugging
50575057
QString filepath="/home/marco/geodaten/projekte/composertest.qgs";
50585058
QString id="komb113320110516093016594";
5059-
QgsProject::instance()->createEmbeddedLayer( id, filepath );
5059+
5060+
QList<QDomNode> brokenNodes;
5061+
QList< QPair< QgsVectorLayer*, QDomElement > > vectorLayerList;
5062+
QgsProject::instance()->createEmbeddedLayer( id, filepath, brokenNodes, vectorLayerList );
50605063
}
50615064

50625065
void QgisApp::setExtent( QgsRectangle theRect )

‎src/core/qgsproject.cpp

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

961964
bool 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

16931699
void QgsProjectBadLayerDefaultHandler::handleBadLayers( QList<QDomNode> /*layers*/, QDomDocument /*projectDom*/ )

‎src/core/qgsproject.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,8 @@ class CORE_EXPORT QgsProject : public QObject
286286
/**Creates a maplayer instance defined in an arbitrary project file. Caller takes ownership
287287
@return the layer or 0 in case of error
288288
@note: added in version 1.8*/
289-
static QgsMapLayer* createEmbeddedLayer( const QString& layerId, const QString& projectFilePath );
289+
//static QgsMapLayer* createEmbeddedLayer( const QString& layerId, const QString& projectFilePath );
290+
bool createEmbeddedLayer( const QString& layerId, const QString& projectFilePath, QList<QDomNode>& brokenNodes, QList< QPair< QgsVectorLayer*, QDomElement > >& vectorLayerList );
290291

291292
protected:
292293

0 commit comments

Comments
 (0)
Please sign in to comment.