Skip to content

Commit bc61f75

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

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
@@ -46,6 +46,7 @@
4646
#include "qgsrasterlayer.h"
4747
#include "qgsrectangle.h"
4848
#include "qgsvectorlayer.h"
49+
#include "qgsvectordataprovider.h"
4950

5051

5152
QgsMapLayer::QgsMapLayer( QgsMapLayer::LayerType type,
@@ -559,6 +560,11 @@ bool QgsMapLayer::writeLayerXML( QDomElement& layerElement, QDomDocument& docume
559560
urlDest.setQueryItems( urlSource.queryItems() );
560561
src = QString::fromAscii( urlDest.toEncoded() );
561562
}
563+
else if ( vlayer && vlayer->providerType() == "memory" )
564+
{
565+
// Refetch the source from the provider, because adding fields actually changes the source for this provider.
566+
src = vlayer->dataProvider()->dataSourceUri();
567+
}
562568
else
563569
{
564570
bool handled = false;

0 commit comments

Comments
 (0)
Please sign in to comment.