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

Reply via email to