Skip to content

Commit a6f10f4

Browse files
SebDieBlnjef-n
authored andcommittedJan 1, 2016
read source from provider before saving memory layer (fixes #8997)
(cherry picked from commit dbc0f07)
1 parent 4c3cf64 commit a6f10f4

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed
 

‎src/core/qgsmaplayer.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
#include "qgsrasterlayer.h"
4646
#include "qgsrectangle.h"
4747
#include "qgsvectorlayer.h"
48+
#include "qgsvectordataprovider.h"
4849

4950

5051
QgsMapLayer::QgsMapLayer( QgsMapLayer::LayerType type,
@@ -549,6 +550,11 @@ bool QgsMapLayer::writeLayerXML( QDomElement& layerElement, QDomDocument& docume
549550
urlDest.setQueryItems( urlSource.queryItems() );
550551
src = QString::fromAscii( urlDest.toEncoded() );
551552
}
553+
else if ( vlayer && vlayer->providerType() == "memory" )
554+
{
555+
// Refetch the source from the provider, because adding fields actually changes the source for this provider.
556+
src = vlayer->dataProvider()->dataSourceUri();
557+
}
552558
else
553559
{
554560
bool handled = false;

0 commit comments

Comments
 (0)
Please sign in to comment.