@@ -686,7 +686,7 @@ bool QgsProject::_getMapLayers( const QDomDocument &doc, QList<QDomNode> &broken
686
686
}
687
687
else
688
688
{
689
- if ( !addLayer ( element, brokenNodes ) )
689
+ if ( !addLayer ( element, brokenNodes, pathResolver () ) )
690
690
{
691
691
returnStatus = false ;
692
692
}
@@ -698,7 +698,7 @@ bool QgsProject::_getMapLayers( const QDomDocument &doc, QList<QDomNode> &broken
698
698
return returnStatus;
699
699
}
700
700
701
- bool QgsProject::addLayer ( const QDomElement &layerElem, QList<QDomNode> &brokenNodes )
701
+ bool QgsProject::addLayer ( const QDomElement &layerElem, QList<QDomNode> &brokenNodes, const QgsPathResolver &pathResolver )
702
702
{
703
703
QString type = layerElem.attribute ( QStringLiteral ( " type" ) );
704
704
QgsDebugMsgLevel ( " Layer type is " + type, 4 );
@@ -728,7 +728,7 @@ bool QgsProject::addLayer( const QDomElement &layerElem, QList<QDomNode> &broken
728
728
Q_CHECK_PTR ( mapLayer ); // NOLINT
729
729
730
730
// have the layer restore state that is stored in Dom node
731
- if ( mapLayer->readLayerXml ( layerElem, pathResolver () ) && mapLayer->isValid () )
731
+ if ( mapLayer->readLayerXml ( layerElem, pathResolver ) && mapLayer->isValid () )
732
732
{
733
733
emit readMapLayer ( mapLayer, layerElem );
734
734
@@ -1190,7 +1190,7 @@ void QgsProject::cleanTransactionGroups( bool force )
1190
1190
bool QgsProject::readLayer ( const QDomNode &layerNode )
1191
1191
{
1192
1192
QList<QDomNode> brokenNodes;
1193
- if ( addLayer ( layerNode.toElement (), brokenNodes ) )
1193
+ if ( addLayer ( layerNode.toElement (), brokenNodes, pathResolver () ) )
1194
1194
{
1195
1195
// have to try to update joins for all layers now - a previously added layer may be dependent on this newly
1196
1196
// added layer for joins
@@ -1720,6 +1720,10 @@ bool QgsProject::createEmbeddedLayer( const QString &layerId, const QString &pro
1720
1720
}
1721
1721
}
1722
1722
1723
+ QgsPathResolver embeddedPathResolver;
1724
+ if ( !useAbsolutePaths )
1725
+ embeddedPathResolver = QgsPathResolver ( projectFilePath );
1726
+
1723
1727
QDomElement projectLayersElem = sProjectDocument .documentElement ().firstChildElement ( QStringLiteral ( " projectlayers" ) );
1724
1728
if ( projectLayersElem.isNull () )
1725
1729
{
@@ -1811,7 +1815,7 @@ bool QgsProject::createEmbeddedLayer( const QString &layerId, const QString &pro
1811
1815
dsElem.appendChild ( sProjectDocument .createTextNode ( datasource ) );
1812
1816
}
1813
1817
1814
- if ( addLayer ( mapLayerElem, brokenNodes ) )
1818
+ if ( addLayer ( mapLayerElem, brokenNodes, embeddedPathResolver ) )
1815
1819
{
1816
1820
return true ;
1817
1821
}
0 commit comments