On Tue, Apr 16, 2013 at 11:26 AM, Nathan Woodrow <[email protected]> wrote: > Personally I'm not a fan of that. > > Why don't we make startEditing() return a edit buffer/edit session. So you > could do this: > > session = layer.editSession() > session.addFeature(feature) > ... > session.commitChanges() > > This would mean that everyone can keep their own edit buffers and can do > what they want. Means you could also doing this: > > with layer.editSession() as session: > session.addFeature(...) > > which will commit the features at the end.
But I think this is exactly what the 3rd party code should not be doing (to automatically create and commit changes). If a developer wants to do that, they should call layer.dataProvider().addFeatures(...). It will be faster and it will not mess the user's edit buffer - IMHO 3rd party code should not call startEditing() or commitChanges()/rollback() at its will. And the only case where you may want to use the editing buffer directly is when e.g. creating a new tool for vector layer editing or something similar where the user should be able to undo/redo the action performed by the plugin code. Martin _______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
