-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bugfix gh41477 editbuffer passthrough #41539
Bugfix gh41477 editbuffer passthrough #41539
Conversation
Shall we defer to post 3.18.0? |
Definitely. Some of the changes are rather risky. |
@nyalldawson I don't think this qualifies as a feature, it is a bugfix. I agree it is safer to wait a cycle but IMO it should eventually land in 3.18. |
Agreed. The "3.20 (feature)" milestone just means the feature freeze date for 3.20. maybe I should rename this as "3.20 (feature freeze)" to clarify? |
Should we merge this and delay 3.18 backport by one cycle to 3.18.2? Or is this safe enough to ship with 3.18.1 already? |
I'm not really sure: the test coverage is decent but there are some changes in the transactions code that make me scary. I suspect that the underlying issues never surfaced because the client code in app wraps all commands into macros and does not perform atomic redo/undo. I think it's safer if we proceed as you suggest. |
…hrough Bugfix gh41477 editbuffer passthrough
…assthrough Bugfix gh41477 editbuffer passthrough
- fix signal not emitted - fix wrong value emitted in signal - remove layer clone The schema editing + rollback is still broken because fields are not restored to the original state after the rollback (at least for GPKG). Followup to qgis#41539
This started as a fix for #41477 but ended up with quite a refactoring.
The basic idea is to make the pass through buffer that we use in transactions to behave like the standard buffer from an API point of view.
I wrote a new test that covers all the cases and expects the same results for transactional and standard buffers:
The test also checks the return values of
QgsVectorLayerEditBuffer
:changedAttributeValues
deletedAttributeIds
addedAttributes
changedGeometries
deletedFeatureIds
addedFeatures