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
-~----------~----~----~----~------~----~------~--~---

Reply via email to