Skip to content

Commit

Permalink
Turn relative path into absolute path for reading embedded projects.
Browse files Browse the repository at this point in the history
  • Loading branch information
pblottiere authored and nyalldawson committed Feb 27, 2020
1 parent b162215 commit e37610e
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
13 changes: 9 additions & 4 deletions src/core/qgsproject.cpp
Expand Up @@ -972,7 +972,7 @@ bool QgsProject::_getMapLayers( const QDomDocument &doc, QList<QDomNode> &broken

if ( element.attribute( QStringLiteral( "embedded" ) ) == QLatin1String( "1" ) )
{
createEmbeddedLayer( element.attribute( QStringLiteral( "id" ) ), readPath( element.attribute( QStringLiteral( "project" ) ) ), brokenNodes, flags );
createEmbeddedLayer( element.attribute( QStringLiteral( "id" ) ), readPath( element.attribute( QStringLiteral( "project" ) ) ), brokenNodes, true, flags );
}
else
{
Expand Down Expand Up @@ -1543,9 +1543,9 @@ bool QgsProject::readProjectFile( const QString &filename, QgsProject::ReadFlags
}


void QgsProject::loadEmbeddedNodes( QgsLayerTreeGroup *group, QgsProject::ReadFlags flags )
bool QgsProject::loadEmbeddedNodes( QgsLayerTreeGroup *group, QgsProject::ReadFlags flags )
{

bool valid = true;
const auto constChildren = group->children();
for ( QgsLayerTreeNode *child : constChildren )
{
Expand Down Expand Up @@ -1579,11 +1579,16 @@ void QgsProject::loadEmbeddedNodes( QgsLayerTreeGroup *group, QgsProject::ReadFl
if ( child->customProperty( QStringLiteral( "embedded" ) ).toInt() )
{
QList<QDomNode> brokenNodes;
createEmbeddedLayer( QgsLayerTree::toLayer( child )->layerId(), child->customProperty( QStringLiteral( "embedded_project" ) ).toString(), brokenNodes, flags );
if ( ! createEmbeddedLayer( QgsLayerTree::toLayer( child )->layerId(), readPath( child->customProperty( QStringLiteral( "embedded_project" ) ).toString() ), brokenNodes, true, flags ) )
{
valid = valid && false;
}
}
}

}

return valid;
}

QVariantMap QgsProject::customVariables() const
Expand Down
4 changes: 3 additions & 1 deletion src/core/qgsproject.h
Expand Up @@ -1703,7 +1703,7 @@ class CORE_EXPORT QgsProject : public QObject, public QgsExpressionContextGenera
* The optional \a flags argument can be used to control layer reading behavior.
* \note not available in Python bindings
*/
void loadEmbeddedNodes( QgsLayerTreeGroup *group, QgsProject::ReadFlags flags = nullptr ) SIP_SKIP;
bool loadEmbeddedNodes( QgsLayerTreeGroup *group, QgsProject::ReadFlags flags = nullptr ) SIP_SKIP;

//! Read .qgs file
bool readProjectFile( const QString &filename, QgsProject::ReadFlags flags = nullptr );
Expand Down Expand Up @@ -1798,6 +1798,8 @@ class CORE_EXPORT QgsProject : public QObject, public QgsExpressionContextGenera

// Required by QGIS Server for switching the current project instance
friend class QgsConfigCache;

friend class TestQgsProject;
};

Q_DECLARE_OPERATORS_FOR_FLAGS( QgsProject::ReadFlags )
Expand Down

0 comments on commit e37610e

Please sign in to comment.