Example #1
0
def __savePresetMenuModifier(menuDefinition, parameter, node, parent=None):

    fnPh = FnParameterisedHolder(node)
    plugPath = fnPh.parameterPlugPath(parameter)

    if len(menuDefinition.items()):
        menuDefinition.append("/PresetsDivider", {"divider": True})

    saveItemName = "/Presets/Save Preset..."
    loadItemName = "/Presets/Load Preset..."

    # If we are actually a class in a vector, use slightly different names
    # so that its more obvious whats going on
    ## \todo Add an item to save the class as a preset, rather than its values.
    if parent is not None and (isinstance(parent, IECore.ClassVectorParameter)
                               or isinstance(parent, IECore.ClassParameter)):
        saveItemName = "/Presets/Save Parameter Values Preset..."
        loadItemName = "/Presets/Load Parameter Values Preset..."

    menuDefinition.append(
        saveItemName, {
            "command":
            IECore.curry(
                maya.cmds.evalDeferred,
                'import IECoreMaya; IECoreMaya.SavePresetUI( "%s", "%s" )' %
                (fnPh.fullPathName(), plugPath))
        })
    menuDefinition.append(
        loadItemName, {
            "command":
            IECore.curry(
                maya.cmds.evalDeferred,
                'import IECoreMaya; IECoreMaya.LoadPresetUI( "%s", "%s" )' %
                (fnPh.fullPathName(), plugPath))
        })
Example #2
0
	def __init__( self, node, rootParameter=None, buttonTitle="Select", autoCollapseDepth=2 ) :

		self._fnP = FnParameterisedHolder( node )

		parameterised = self._fnP.getParameterised()
		self._rootParameter = rootParameter if rootParameter else parameterised[0].parameters()

		self._window = maya.cmds.window(
			title="%s: %s" % ( buttonTitle, node ),
			width=500,
			height=600
		)

		UIElement.__init__( self, self._window )

		self._form = maya.cmds.formLayout()

		self._scroll = maya.cmds.scrollLayout( parent=self._form )

		self._selector = ParameterSelector( self._rootParameter, self._scroll, autoCollapseDepth=autoCollapseDepth )

		maya.cmds.formLayout( self._form, edit=True,

			attachForm=[	( self._scroll, 			"top",  	0  ),
							( self._scroll, 			"left", 	0  ),
							( self._scroll, 			"right",	0  ),
							( self._scroll, 			"bottom",	0  ), ],
		)
Example #3
0
	def __init__( self, node, rootParameter=None ) :

		fn = FnParameterisedHolder( node )
		parameterised = fn.getParameterised()

		self.__parameterised = parameterised

		# Just using 'not' on a ClassVector takes its length, which equates to False if its empty.
		self.__rootParameter = rootParameter if rootParameter is not None else parameterised[0].parameters()

		self.__fnP = fn
		self.__envVar = parameterised[3].replace( "_PATHS", "_PRESET_PATHS" )

		if self.__envVar not in os.environ :
			maya.cmds.confirmDialog( message="Environment variable not set:\n\n$%s\n\nPlease set "%self.__envVar+\
			"this variable to point to one or more paths.\nPresets can then be loaded from these "+\
			"locations.", button="OK" )
			return

		paths = os.environ[self.__envVar]
		sp = IECore.SearchPath( os.path.expandvars( paths ) )
		self.__classLoader = IECore.ClassLoader( sp )

		presets = self.__getPresets( parameterised[0], self.__rootParameter )
		if not presets:
			maya.cmds.confirmDialog( message="No presets applicable to %s found in the current search paths ($%s)." % ( self.__rootParameter.name, self.__envVar ), button="OK" )
			return

		self.__loadedPresets = {}

		self.__window = maya.cmds.window( title="Load: %s" % node, width=300, height=500 )

		UIElement.__init__( self, self.__window )

		self.__form = maya.cmds.formLayout()

		self.__infoColumn = PresetInfo( parent=self.__form )
		self.__selector = PresetSelector( presets, self.__form, allowMultiSelection=True, selectCommand=self._createCallback( self.__selectionChanged ) )
		self.__loadButton = maya.cmds.button( l="Load", parent=self.__form, height=30, c=self._createCallback( self.__doLoad ) )

		if not presets:
			maya.cmds.control( self.__loadButton, edit=True, enable=False )

		maya.cmds.formLayout( self.__form, edit=True,

			attachForm=[	( self.__selector.list(), 		"top" ,		0 ),
							( self.__selector.list(),		"left" , 	0 ),
							( self.__selector.list(),		"right" , 	0 ),
							( self.__infoColumn.layout(),	"left" ,   	5 ),
							( self.__infoColumn.layout(),	"right" ,   0 ),
							( self.__loadButton,			"bottom",   0 ),
							( self.__loadButton,			"left" ,	0 ),
							( self.__loadButton,			"right" ,   0 )  ],

			attachControl=[	( self.__selector.list(), 	"bottom", 	4, 	self.__infoColumn.layout() ),
							( self.__infoColumn.layout(), 	"bottom", 	5, 	self.__loadButton ), ]
		)

		maya.cmds.showWindow( self.__window )
Example #4
0
	def __init__( self, node, rootParameter=None ) :

		fn = FnParameterisedHolder( node )
		parameterised = fn.getParameterised()

		self.__parameterised = parameterised

		# Just using 'not' on a ClassVector takes its length, which equates to False if its empty.
		self.__rootParameter = rootParameter if rootParameter is not None else parameterised[0].parameters()

		self.__fnP = fn
		self.__envVar = parameterised[3].replace( "_PATHS", "_PRESET_PATHS" )

		if self.__envVar not in os.environ :
			maya.cmds.confirmDialog( message="Environment variable not set:\n\n$%s\n\nPlease set "%self.__envVar+\
			"this variable to point to one or more paths.\nPresets can then be loaded from these "+\
			"locations.", button="OK" )
			return

		paths = os.environ[self.__envVar]
		sp = IECore.SearchPath( os.path.expandvars( paths ), ":" )
		self.__classLoader = IECore.ClassLoader( sp )

		presets = self.__getPresets( parameterised[0], self.__rootParameter )
		if not presets:
			maya.cmds.confirmDialog( message="No presets applicable to %s found in the current search paths ($%s)." % ( self.__rootParameter.name, self.__envVar ), button="OK" )
			return

		self.__loadedPresets = {}

		self.__window = maya.cmds.window( title="Load: %s" % node, width=300, height=500 )

		UIElement.__init__( self, self.__window )

		self.__form = maya.cmds.formLayout()

		self.__infoColumn = PresetInfo( parent=self.__form )
		self.__selector = PresetSelector( presets, self.__form, allowMultiSelection=True, selectCommand=self._createCallback( self.__selectionChanged ) )
		self.__loadButton = maya.cmds.button( l="Load", parent=self.__form, height=30, c=self._createCallback( self.__doLoad ) )

		if not presets:
			maya.cmds.control( self.__loadButton, edit=True, enable=False )

		maya.cmds.formLayout( self.__form, edit=True,

			attachForm=[	( self.__selector.list(), 		"top" ,		0 ),
							( self.__selector.list(),		"left" , 	0 ),
							( self.__selector.list(),		"right" , 	0 ),
							( self.__infoColumn.layout(),	"left" ,   	5 ),
							( self.__infoColumn.layout(),	"right" ,   0 ),
							( self.__loadButton,			"bottom",   0 ),
							( self.__loadButton,			"left" ,	0 ),
							( self.__loadButton,			"right" ,   0 )  ],

			attachControl=[	( self.__selector.list(), 	"bottom", 	4, 	self.__infoColumn.layout() ),
							( self.__infoColumn.layout(), 	"bottom", 	5, 	self.__loadButton ), ]
		)

		maya.cmds.showWindow( self.__window )
Example #5
0
	def __init__( self, node, rootParameter=None, buttonTitle="Select", autoCollapseDepth=2 ) :

		self._fnP = FnParameterisedHolder( node )

		parameterised = self._fnP.getParameterised()
		self._rootParameter = rootParameter if rootParameter else parameterised[0].parameters()

		self._window = maya.cmds.window(
			title="%s: %s" % ( buttonTitle, node ),
			width=500,
			height=600
		)

		UIElement.__init__( self, self._window )

		self._form = maya.cmds.formLayout()

		self._scroll = maya.cmds.scrollLayout( parent=self._form )

		self._selector = ParameterSelector( self._rootParameter, self._scroll, autoCollapseDepth=autoCollapseDepth )

		maya.cmds.formLayout( self._form, edit=True,

			attachForm=[	( self._scroll, 			"top",  	0  ),
							( self._scroll, 			"left", 	0  ),
							( self._scroll, 			"right",	0  ),
							( self._scroll, 			"bottom",	0  ), ],
		)
Example #6
0
    def __init__(self, node, rootParameter=None):

        try:
            fn = FnParameterisedHolder(node)
        except:
            raise ValueError, 'PresetsUI: "%s" is not a valid Parameterised object.' % node

        self.__node = node
        self.__rootParameter = rootParameter
Example #7
0
def __savePresetMenuModifier( menuDefinition, parameter, node, parent=None ) :

	fnPh = FnParameterisedHolder( node )
	plugPath = fnPh.parameterPlugPath( parameter )

	if len( menuDefinition.items() ):
		menuDefinition.append( "/PresetsDivider", { "divider" : True } )

	saveItemName = "/Presets/Save Preset..."
	loadItemName = "/Presets/Load Preset..."

	# If we are actually a class in a vector, use slightly different names
	# so that its more obvious whats going on
	## \todo Add an item to save the class as a preset, rather than its values.
	if parent is not None and (
		 isinstance( parent, IECore.ClassVectorParameter )
		 or isinstance( parent, IECore.ClassParameter )
	):
		saveItemName = "/Presets/Save Parameter Values Preset..."
		loadItemName = "/Presets/Load Parameter Values Preset..."

	menuDefinition.append( saveItemName, { "command" : IECore.curry( maya.cmds.evalDeferred, 'import IECoreMaya; IECoreMaya.SavePresetUI( "%s", "%s" )' % ( fnPh.fullPathName(), plugPath ) ) } )
	menuDefinition.append( loadItemName, { "command" : IECore.curry( maya.cmds.evalDeferred, 'import IECoreMaya; IECoreMaya.LoadPresetUI( "%s", "%s" )' % ( fnPh.fullPathName(), plugPath ) ) } )
Example #8
0
	def __init__( self, node, rootParameter=None, autoCollapseDepth=2 ) :

		fnP = FnParameterisedHolder( node )
		parameterised = fnP.getParameterised()

		self.__envVar = parameterised[3].replace( "_PATHS", "_PRESET_PATHS" )

		if self.__envVar not in os.environ :
			maya.cmds.confirmDialog( message="Environment variable not set:\n\n$%s\n\nPlease set "%self.__envVar+\
			"this variable to point to one or more paths.\nPresets can then be saved to these "+\
			"locations.", button="OK" )
			return

		ParamSelectUI.__init__( self, node, rootParameter, autoCollapseDepth=autoCollapseDepth )

		self.__location = SearchPathMenu(
			os.getenv( self.__envVar ),
			self._form,
			label = "Save to:",
			ann = self.__envVar,
			cw = ( 1, 65 ),
			adj = 2,
		)

		self.__name = maya.cmds.textFieldGrp(
			parent = self._form,
			label = "Name:",
			adj = 2,
			columnWidth = ( 1, 65 )
		)

		descripLabel = maya.cmds.text(
			parent = self._form,
			label = "Description:",
			align = "left",
		)

		self.__description = maya.cmds.scrollField(
			parent = self._form,
			numberOfLines = 5,
			height = 100,
		)

		self.__saveButton = maya.cmds.button(
			l = "Save",
			parent = self._form,
			height = 30,
			c = self._createCallback( self.__doSave )
		)

		maya.cmds.formLayout( self._form, edit=True,

			attachForm=[	( self._scroll, 			"top",  	0  ),
							( self._scroll, 			"left", 	0  ),
							( self._scroll, 			"right",	0  ),
							( self.__location.menu(),	"left", 	10 ),
							( self.__location.menu(),	"right",	10 ),
							( self.__name,				"left", 	10 ),
							( self.__name,				"right",	10 ),
							( descripLabel,				"left", 	10 ),
							( descripLabel,				"right",	10 ),
							( self.__description,		"left", 	10 ),
							( self.__description,		"right",	10 ),
							( self.__saveButton, 		"bottom",	0  ),
							( self.__saveButton, 		"left", 	0  ),
							( self.__saveButton, 		"right",	0  ) ],

			attachControl=[	( self._scroll, 	 		"bottom",	5,	self.__location.menu() 	),
							( self.__location.menu(),	"bottom",   3,  self.__name  		    ),
							( self.__name,				"bottom",   5,  descripLabel	    ),
							( descripLabel,				"bottom",   5,  self.__description	    ),
							( self.__description,				"bottom",   5,  self.__saveButton	    ), ]
		)


		maya.cmds.showWindow( self._window )
Example #9
0
	def __init__( self, objectOrObjectName ) :

		FnParameterisedHolder.__init__( self, objectOrObjectName )
Example #10
0
	def __init__( self, object ) :

		FnParameterisedHolder.__init__( self, object )
Example #11
0
def LoadPresetUI(nodeName, attribute):

    fnPh = FnParameterisedHolder(nodeName)
    rootParam = fnPh.plugParameter(attribute)

    PresetsUI(nodeName, rootParam).load()
Example #12
0
def SavePresetUI(nodeName, attribute):

    fnPh = FnParameterisedHolder(nodeName)
    rootParam = fnPh.plugParameter(attribute)

    PresetsUI(nodeName, rootParam).save()
Example #13
0
    def __init__(self, objectOrObjectName):

        FnParameterisedHolder.__init__(self, objectOrObjectName)
Example #14
0
def SavePresetUI( nodeName, attribute ) :

	fnPh = FnParameterisedHolder( nodeName )
	rootParam = fnPh.plugParameter( attribute )

	PresetsUI( nodeName, rootParam ).save()
Example #15
0
    def __init__(self, node, rootParameter=None, autoCollapseDepth=2):

        fnP = FnParameterisedHolder(node)
        parameterised = fnP.getParameterised()

        self.__envVar = parameterised[3].replace("_PATHS", "_PRESET_PATHS")

        if self.__envVar not in os.environ:
            maya.cmds.confirmDialog( message="Environment variable not set:\n\n$%s\n\nPlease set "%self.__envVar+\
            "this variable to point to one or more paths.\nPresets can then be saved to these "+\
            "locations.", button="OK" )
            return

        ParamSelectUI.__init__(self,
                               node,
                               rootParameter,
                               autoCollapseDepth=autoCollapseDepth)

        self.__location = SearchPathMenu(
            os.getenv(self.__envVar),
            self._form,
            label="Save to:",
            ann=self.__envVar,
            cw=(1, 65),
            adj=2,
        )

        self.__name = maya.cmds.textFieldGrp(parent=self._form,
                                             label="Name:",
                                             adj=2,
                                             columnWidth=(1, 65))

        descripLabel = maya.cmds.text(
            parent=self._form,
            label="Description:",
            align="left",
        )

        self.__description = maya.cmds.scrollField(
            parent=self._form,
            numberOfLines=5,
            height=100,
        )

        self.__saveButton = maya.cmds.button(l="Save",
                                             parent=self._form,
                                             height=30,
                                             c=self._createCallback(
                                                 self.__doSave))

        maya.cmds.formLayout(
            self._form,
            edit=True,
            attachForm=[(self._scroll, "top", 0), (self._scroll, "left", 0),
                        (self._scroll, "right", 0),
                        (self.__location.menu(), "left", 10),
                        (self.__location.menu(), "right", 10),
                        (self.__name, "left", 10), (self.__name, "right", 10),
                        (descripLabel, "left", 10),
                        (descripLabel, "right", 10),
                        (self.__description, "left", 10),
                        (self.__description, "right", 10),
                        (self.__saveButton, "bottom", 0),
                        (self.__saveButton, "left", 0),
                        (self.__saveButton, "right", 0)],
            attachControl=[
                (self._scroll, "bottom", 5, self.__location.menu()),
                (self.__location.menu(), "bottom", 3, self.__name),
                (self.__name, "bottom", 5, descripLabel),
                (descripLabel, "bottom", 5, self.__description),
                (self.__description, "bottom", 5, self.__saveButton),
            ])

        maya.cmds.showWindow(self._window)
Example #16
0
def LoadPresetUI( nodeName, attribute ) :

	fnPh = FnParameterisedHolder( nodeName )
	rootParam = fnPh.plugParameter( attribute )

	PresetsUI( nodeName, rootParam ).load()
    def __init__(self, object):

        FnParameterisedHolder.__init__(self, object)