The UndoManager class is really awesome (took me an hour to implement a custom undo behaviour). I have only one question:
sliderDragStarted() { beginNewTransaction("STUPID STRING WHICH DOES KNOW NOTHING ABOUT THE END VALUE); } sliderValueChanged() { perform(); } sliderValueEnded() { setCurrentTransactionName("CHANGE FROM START TO END"); }
I want to call beginNewTransaction() on a slider drag start and set the name on the transaction with setCurrentTransactionName() on the slider drag end (when I know how much has changed, so I can call it "Change from START to END"). But it doesn't save the new description -UndoManager::getUndoDescription() returns the string passed into beginNewTransaction.
This exact behaviour is also explained in the API, so I don't think I did something wrong:
The description returned is the one that was passed into beginNewTransaction before the set of actions was performed.
Is there a reason why it does not return the most recently passed string?
The rest is working perfectly (calls to perform() get grouped together nicely).