Feature/iss 748 - undo redo keyframes #1885
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds the following to the new undo/redo system:
In addition I had to make some changes to the structure of UndoRedoManager, as it wasn't as flexible as I liked it to be. The result of this means you can now add additional state changes to the UndoSaveState once it has been created. This is for example used to add data which is proprietary to the TimeLineCells and can therefore not be fetched from within the state methods of UndoRedoManager. When this is done however, the state should be struct references and not pointers... because we don't want to deal with too much ptr deletion, if any...
I've also introduced a set of guards to avoid dealing with an undo/redo stack that is potentially gone, for example when you delete the layer where there were once keyframes.
Since we don't support that yet, we have to guard against it to avoid crashing.
The way it works is that the the undo command becomes obsolete in those cases and can no longer be accessed on the undo stack.
closes #748