Opened 13 months ago
Last modified 13 months ago
#7665 new enhancement
merge conflation operations for multiple pairs into one undo-able action
| Reported by: | Cobra | Owned by: | joshdoe |
|---|---|---|---|
| Priority: | normal | Component: | Plugin conflation |
| Version: | Keywords: | ||
| Cc: |
Description
At the moment each conflation operation is added as a single operation to the undo stack, even when conflating a lot of pairs at once.
All core operations add a single atomic operation to the undo stack when manipulating many objects, so this isn't consistent.
Attachments (0)
Change History (3)
comment:1 Changed 13 months ago by joshdoe
comment:2 follow-up: ↓ 3 Changed 13 months ago by skyper
Thanks for this plugin.
Sorry do not have much time for JOSM/OSM right now.
Think this feature would be really nice !
Is it not possible to add/remove all objects at once. Probably does not work directly with the "replace object command".
Cheers
comment:3 in reply to: ↑ 2 Changed 13 months ago by joshdoe
Replying to skyper:
Is it not possible to add/remove all objects at once. Probably does not work directly with the "replace object command".
When objects only exist in the reference layer, conflating simply copies the objects to the subject layer, so multiple objects can be contained in one command, and that's what I do now. Replace Geometry on the other hand currently changes the entire relation member list, so these can't be simply queued up. Hopefully I'll get to some solution soon(ish).



I initially did this, but ran into trouble with the #7616 example you gave. Since the nodes were part of relations, each command to transfer the relation would overwrite the previous one, so only the last match would have the proper relation membership, for all others it simply disappeared.
To bundle this all into one command, I have to break one of two conventions: execute separate commands upon creation of the master command, or prompt the user within the executeCommand() for resolving conflicts (if any). I think either way works for the end user, so I'll try one of them.