Hi all - so, I'm wondering if there's a way to detect when changes to an attribute are caused by an undo / redo.
Ie, I have a script that that, whenever a certain attribute is changed, automatically makes some other changes to the scene as well. In other words, the flow looks like: state1 --(attrChange)--> state2 -->(scriptTriggered) ---> (scriptChanges) ---> state3 (Note - I've tried having the script triggered by MNodeMessage.addAttributeChangedCallback and a scriptJob (attributeChange=[...]), and have the same problem with both...) Everything is working fine and dandy... until I tried to get things working with undo. The problem here is that, if I change my target attribute (which triggers my script), then later undo the change to the target attribute, this registers as another attribute change, which triggers my script again. The obvious solution would be to add an undo callback which would temporarily disable my script, then re-enable when the undo was finished (for instance, when maya is idle) - the problem is that the undo callback is triggered AFTER the attribute changed callback. Is there any way to have my script know that it's actually been triggered by an undo? - Paul PS - Here's some code that will give feedback on when attribute change / undo / redo callbacks are triggered, that will allow you to see for yourself that A) an undo triggers and attribute change callback, and B) the undo callback is triggered AFTER this attribute change callback --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/python_inside_maya -~----------~----~----~----~------~----~------~--~---
