@@ -260,6 +260,26 @@ bool QgsVectorLayerEditBuffer::commitChanges( QStringList& commitErrors )
260260 int cap = provider->capabilities ();
261261 bool success = true ;
262262
263+ //
264+ // update geometries
265+ //
266+ if ( !mChangedGeometries .isEmpty () )
267+ {
268+ if (( cap & QgsVectorDataProvider::ChangeGeometries ) && provider->changeGeometryValues ( mChangedGeometries ) )
269+ {
270+ commitErrors << tr ( " SUCCESS: %n geometries were changed." , " changed geometries count" , mChangedGeometries .size () );
271+
272+ emit committedGeometriesChanges ( L->id (), mChangedGeometries );
273+
274+ mChangedGeometries .clear ();
275+ }
276+ else
277+ {
278+ commitErrors << tr ( " ERROR: %n geometries not changed." , " not changed geometries count" , mChangedGeometries .size () );
279+ success = false ;
280+ }
281+ }
282+
263283 QgsFields oldFields = L->fields ();
264284
265285 //
@@ -502,26 +522,6 @@ bool QgsVectorLayerEditBuffer::commitChanges( QStringList& commitErrors )
502522 success = false ;
503523 }
504524
505- //
506- // update geometries
507- //
508- if ( success && !mChangedGeometries .isEmpty () )
509- {
510- if (( cap & QgsVectorDataProvider::ChangeGeometries ) && provider->changeGeometryValues ( mChangedGeometries ) )
511- {
512- commitErrors << tr ( " SUCCESS: %n geometries were changed." , " changed geometries count" , mChangedGeometries .size () );
513-
514- emit committedGeometriesChanges ( L->id (), mChangedGeometries );
515-
516- mChangedGeometries .clear ();
517- }
518- else
519- {
520- commitErrors << tr ( " ERROR: %n geometries not changed." , " not changed geometries count" , mChangedGeometries .size () );
521- success = false ;
522- }
523- }
524-
525525 if ( !success && provider->hasErrors () )
526526 {
527527 commitErrors << tr ( " \n Provider errors:" );
0 commit comments