Oops... forgot to add that code to play with: http://pastebin.com/m177e22bc
Execute it, then change the value of .translateX, and undo / redo to see when various callbacks are triggered - Paul On Sat, Mar 21, 2009 at 5:32 PM, barnabas79 <[email protected]> wrote: > > 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 -~----------~----~----~----~------~----~------~--~---
