@@ -119,6 +119,24 @@ bool QgsLayerDefinition::exportLayerDefinition( QString path, const QList<QgsLay
119
119
QFileInfo fileinfo ( file );
120
120
121
121
QDomDocument doc ( " qgis-layer-definition" );
122
+ if ( !exportLayerDefinition ( doc, selectedTreeNodes, errorMessage, fileinfo.canonicalFilePath () ) )
123
+ return false ;
124
+ if ( file.open ( QFile::WriteOnly | QFile::Truncate ) )
125
+ {
126
+ QTextStream qlayerstream ( &file );
127
+ doc.save ( qlayerstream, 2 );
128
+ return true ;
129
+ }
130
+ else
131
+ {
132
+ errorMessage = file.errorString ();
133
+ return false ;
134
+ }
135
+ }
136
+
137
+ bool QgsLayerDefinition::exportLayerDefinition ( QDomDocument doc, const QList<QgsLayerTreeNode*>& selectedTreeNodes, QString &errorMessage, const QString& relativeBasePath )
138
+ {
139
+ Q_UNUSED ( errorMessage );
122
140
QDomElement qgiselm = doc.createElement ( " qlr" );
123
141
doc.appendChild ( qgiselm );
124
142
QList<QgsLayerTreeNode*> nodes = selectedTreeNodes;
@@ -135,20 +153,9 @@ bool QgsLayerDefinition::exportLayerDefinition( QString path, const QList<QgsLay
135
153
Q_FOREACH ( QgsLayerTreeLayer* layer, layers )
136
154
{
137
155
QDomElement layerelm = doc.createElement ( " maplayer" );
138
- layer->layer ()->writeLayerXML ( layerelm, doc, fileinfo. canonicalFilePath () );
156
+ layer->layer ()->writeLayerXML ( layerelm, doc, relativeBasePath );
139
157
layerselm.appendChild ( layerelm );
140
158
}
141
159
qgiselm.appendChild ( layerselm );
142
-
143
- if ( file.open ( QFile::WriteOnly | QFile::Truncate ) )
144
- {
145
- QTextStream qlayerstream ( &file );
146
- doc.save ( qlayerstream, 2 );
147
- return true ;
148
- }
149
- else
150
- {
151
- errorMessage = file.errorString ();
152
- return false ;
153
- }
160
+ return true ;
154
161
}
0 commit comments