@@ -258,6 +258,26 @@ bool QgsVectorLayerEditBuffer::commitChanges( QStringList& commitErrors )
258258 int cap = provider->capabilities ();
259259 bool success = true ;
260260
261+ //
262+ // update geometries
263+ //
264+ if ( !mChangedGeometries .isEmpty () )
265+ {
266+ if (( cap & QgsVectorDataProvider::ChangeGeometries ) && provider->changeGeometryValues ( mChangedGeometries ) )
267+ {
268+ commitErrors << tr ( " SUCCESS: %n geometries were changed." , " changed geometries count" , mChangedGeometries .size () );
269+
270+ emit committedGeometriesChanges ( L->id (), mChangedGeometries );
271+
272+ mChangedGeometries .clear ();
273+ }
274+ else
275+ {
276+ commitErrors << tr ( " ERROR: %n geometries not changed." , " not changed geometries count" , mChangedGeometries .size () );
277+ success = false ;
278+ }
279+ }
280+
261281 QgsFields oldFields = L->pendingFields ();
262282
263283 //
@@ -500,26 +520,6 @@ bool QgsVectorLayerEditBuffer::commitChanges( QStringList& commitErrors )
500520 success = false ;
501521 }
502522
503- //
504- // update geometries
505- //
506- if ( success && !mChangedGeometries .isEmpty () )
507- {
508- if (( cap & QgsVectorDataProvider::ChangeGeometries ) && provider->changeGeometryValues ( mChangedGeometries ) )
509- {
510- commitErrors << tr ( " SUCCESS: %n geometries were changed." , " changed geometries count" , mChangedGeometries .size () );
511-
512- emit committedGeometriesChanges ( L->id (), mChangedGeometries );
513-
514- mChangedGeometries .clear ();
515- }
516- else
517- {
518- commitErrors << tr ( " ERROR: %n geometries not changed." , " not changed geometries count" , mChangedGeometries .size () );
519- success = false ;
520- }
521- }
522-
523523 if ( !success && provider->hasErrors () )
524524 {
525525 commitErrors << tr ( " \n Provider errors:" );
0 commit comments