Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
vector layer: update geometries first before feature id might change (f…
…ixes #8255)
  • Loading branch information
jef-n committed Oct 13, 2015
1 parent 957d826 commit 24b6e63
Showing 1 changed file with 20 additions and 20 deletions.
40 changes: 20 additions & 20 deletions src/core/qgsvectorlayereditbuffer.cpp
Expand Up @@ -260,6 +260,26 @@ bool QgsVectorLayerEditBuffer::commitChanges( QStringList& commitErrors )
int cap = provider->capabilities();
bool success = true;

//
// update geometries
//
if ( !mChangedGeometries.isEmpty() )
{
if (( cap & QgsVectorDataProvider::ChangeGeometries ) && provider->changeGeometryValues( mChangedGeometries ) )
{
commitErrors << tr( "SUCCESS: %n geometries were changed.", "changed geometries count", mChangedGeometries.size() );

emit committedGeometriesChanges( L->id(), mChangedGeometries );

mChangedGeometries.clear();
}
else
{
commitErrors << tr( "ERROR: %n geometries not changed.", "not changed geometries count", mChangedGeometries.size() );
success = false;
}
}

QgsFields oldFields = L->fields();

//
Expand Down Expand Up @@ -502,26 +522,6 @@ bool QgsVectorLayerEditBuffer::commitChanges( QStringList& commitErrors )
success = false;
}

//
// update geometries
//
if ( success && !mChangedGeometries.isEmpty() )
{
if (( cap & QgsVectorDataProvider::ChangeGeometries ) && provider->changeGeometryValues( mChangedGeometries ) )
{
commitErrors << tr( "SUCCESS: %n geometries were changed.", "changed geometries count", mChangedGeometries.size() );

emit committedGeometriesChanges( L->id(), mChangedGeometries );

mChangedGeometries.clear();
}
else
{
commitErrors << tr( "ERROR: %n geometries not changed.", "not changed geometries count", mChangedGeometries.size() );
success = false;
}
}

if ( !success && provider->hasErrors() )
{
commitErrors << tr( "\n Provider errors:" );
Expand Down

0 comments on commit 24b6e63

Please sign in to comment.