[Tutor] how to temporarily disable a function
Peter Otten
__peter__ at web.de
Thu Jul 28 11:08:42 CEST 2011
Pete O'Connell wrote:
> Hi I was wondering if there is a way to disable a function.
> Hi have a GUI grid snapping function that I use in a program called Nuke
> (the film compositing software)
>
> Here is the function (which loads when Nuke loads):
> #######################
> def theAutoplaceSnap():
> try:
> nuke.thisNode().autoplace()
> n = nuke.allNodes();
> for i in n:
> nuke.autoplaceSnap(i)
> except:
> pass
>
> nuke.addOnUserCreate(theAutoplaceSnap)
> ###################################
>
> I have many functions which get loaded, but this particular one needs to
> be disabled when I am viewing another compositors script in the gui.
>
> I have a python script editor in Nuke in which I can run code if need be
> to run code on the fly.
http://docs.thefoundry.co.uk/nuke/63/pythondevguide/callbacks.html#onusercreate
suggests that you can remove the callback with
nuke.removeOnUserCreate(theAutoplaceSnap)
You can later add it back with
nuke.addOnUserCreate(theAutoplaceSnap)
like in the code snippet you provided. If the add/removeOnUserCreate() calls
occur in another module than the one theAutplaceSnap() is defined in you
need to import that first and use qualified names (e. g.
some_module.theAutoplaceSnap).
More information about the Tutor
mailing list