It is not hard to find undo/redo not doing what it is supposed to do while fiddling around with segmentation tools. We may want to assess the situation in detail before fixing it but I assume it is a bigger effort to get everything working with undo/redo. I add a few subtasks in regard to undo/redo, that I already found.
Description
Description
Status | Assigned | Task | ||
---|---|---|---|---|
Open | None | T30267 [Segmentation] Undo/Redo does not work for many aspects of segmentation | ||
Open | None | T29582 [Segmentation] Error when pressing "Undo" after undoing all fill changes | ||
Open | None | T29562 [GrowCut] "Undo" only changes slices with seed images |
Event Timeline
Comment Actions
In particular working with different groups seems to have impact on the amount of undo/redo shenanigans.
Comment Actions
I assume that most problems stem from the following error/problem:
WriteSliceToVolume / DiffSliceOperation are not Group/Layer aware. Therefore DiffSliceOperation always returns the LabelSetImage instance which means that the Undo/Redo operation will always be done on the active layer (even if it is meant for another layer. To change that we would need to do the following
- Rework DiffSliceOperation to always return the needed GroupImage via DiffSliceOperation::GetImage.
- Therefore WriteSliceToVolume must be reworked so that the function also knows which labels are group is meant (and we should change them to only accept LabelSetImage*)
- Therefore WriteSliceToVolume must be reworked so that the function also knows which labels are group is meant (and we should change them to only accept LabelSetImage*)