Exemple #1
0
    def popupMenu(self, *args):
        cmds.popupMenu()
        cmds.menuItem(subMenu=True,
                      label='Show',
                      tearOff=True,
                      postMenuCommand=self.updateshowColorsMenu)

        for loopColor in self.colors:
            colorName = loopColor["name"]
            cmds.menuItem('colorMenu_%s' % colorName,
                          label=utilMod.toTitle(colorName),
                          checkBox=False,
                          command=lambda x, colorName=colorName, *args: self.
                          switchColor(colorName))

        cmds.menuItem(divider=True)
        cmds.menuItem(subMenu=True, label="Show Only")
        for loopColor in self.colors:
            colorName = loopColor["name"]
            cmds.menuItem(label=utilMod.toTitle(colorName),
                          command=lambda x, colorName=colorName, *args: self.
                          isolateColor(colorName))

        cmds.setParent('..', menu=True)
        cmds.menuItem('colorMenuShowAll',
                      label="Show All Colors",
                      command=self.showAllColors)

        cmds.setParent('..', menu=True)
        cmds.menuItem(label="Import Select Sets", command=self.importSets)
        cmds.menuItem(label="Export Select Sets", command=self.exportSets)
        cmds.menuItem(label="Delete All", command=self.deleteAllSets)
Exemple #2
0
    def populateSelSetButtonsMenu(self, menu, selSet, *args):
        
        extracted   = self.extractInfoFromSelSet(selSet)
        colorName   = extracted["colorName"]

        cmds.radioMenuItemCollection(parent=menu)
        
        for loopColor in self.colors:
            loopColorName  = loopColor["name"]
            radioSelected = (colorName == loopColorName)
            cmds.menuItem(label=utilMod.toTitle(loopColorName),   radioButton=radioSelected,        command=lambda x, selSet=selSet, loopColorName=loopColorName, *args: self.renameSelectSetColor([selSet], loopColorName),  parent=menu)
            
         
        cmds.menuItem(divider=True,  parent=menu)
        cmds.menuItem(label='Add Selection',    command=lambda *args: self.addSelection(selSet),  parent=menu)
        cmds.menuItem(label='Remove Selection', command=lambda *args: self.removeSelection(selSet),  parent=menu)
        cmds.menuItem(label='Update Selection', command=lambda *args: self.updateSelection(selSet),  parent=menu)
        cmds.menuItem(divider=True,  parent=menu)
        cmds.menuItem(label='Rename',           command=lambda *args: self.turnOnRenameSetField(selSet),  parent=menu)
        cmds.menuItem(label='Delete',           command=lambda *args: self.deleteSets([selSet]),  parent=menu)
        cmds.menuItem(label='Delete All %s'%utilMod.toTitle(colorName),    command=lambda *args: self.deleteAllColorSet(colorName),  parent=menu)
        cmds.menuItem(divider=True,  parent=menu)
        
        duplicateToOtherMenu = cmds.menuItem(subMenu=True, label='Duplicate To Other Character', parent=menu, postMenuCommandOnce=True)
        cmds.menuItem(duplicateToOtherMenu, edit=True,  postMenuCommand=lambda *args:self.populateDuplicateToOtherMenu(duplicateToOtherMenu, selSet))
        cmds.setParent( '..', menu=True ) 
               
        
        cmds.menuItem(label='Show Only %s'%utilMod.toTitle(colorName),  command=lambda *args: self.isolateColor(colorName),  parent=menu)
        cmds.menuItem(label='Hide %s'%utilMod.toTitle(colorName),       command=lambda *args: self.hideColor(colorName),  parent=menu)
Exemple #3
0
    def populateSelSetButtonsMenu(self, menu, selSet, *args):

        extracted = self.extractInfoFromSelSet(selSet)
        colorName = extracted["colorName"]

        cmds.radioMenuItemCollection(parent=menu)

        for loopColor in self.colors:
            loopColorName = loopColor["name"]
            radioSelected = (colorName == loopColorName)
            cmds.menuItem(
                label=utilMod.toTitle(loopColorName),
                radioButton=radioSelected,
                command=lambda x, selSet=selSet, loopColorName=loopColorName, *
                args: self.renameSelectSetColor([selSet], loopColorName),
                parent=menu)

        cmds.menuItem(divider=True, parent=menu)
        cmds.menuItem(label='Add Selection',
                      command=lambda *args: self.addSelection(selSet),
                      parent=menu)
        cmds.menuItem(label='Remove Selection',
                      command=lambda *args: self.removeSelection(selSet),
                      parent=menu)
        cmds.menuItem(label='Update Selection',
                      command=lambda *args: self.updateSelection(selSet),
                      parent=menu)
        cmds.menuItem(divider=True, parent=menu)
        cmds.menuItem(label='Rename',
                      command=lambda *args: self.turnOnRenameSetField(selSet),
                      parent=menu)
        cmds.menuItem(label='Delete',
                      command=lambda *args: self.deleteSets([selSet]),
                      parent=menu)
        cmds.menuItem(label='Delete All %s' % utilMod.toTitle(colorName),
                      command=lambda *args: self.deleteAllColorSet(colorName),
                      parent=menu)
        cmds.menuItem(divider=True, parent=menu)

        duplicateToOtherMenu = cmds.menuItem(
            subMenu=True,
            label='Duplicate To Other Character',
            parent=menu,
            postMenuCommandOnce=True)
        cmds.menuItem(
            duplicateToOtherMenu,
            edit=True,
            postMenuCommand=lambda *args: self.populateDuplicateToOtherMenu(
                duplicateToOtherMenu, selSet))
        cmds.setParent('..', menu=True)

        cmds.menuItem(label='Show Only %s' % utilMod.toTitle(colorName),
                      command=lambda *args: self.isolateColor(colorName),
                      parent=menu)
        cmds.menuItem(label='Hide %s' % utilMod.toTitle(colorName),
                      command=lambda *args: self.hideColor(colorName),
                      parent=menu)
Exemple #4
0
   def populateMenu(self, menu, *args):
       uiMod.clearMenuItems(menu)
       #cmds.menuItem(label="Camera Relative", parent=menu, checkBox=self.cameraRelativeOnOff, command=self.cameraRelativeSwitch)
 
       
       if cmds.objExists(self.mainGroupNode):
           cmds.menuItem(label="Add Selection", parent=menu, command=self.addSelection)
           cmds.menuItem(label="Remove Selection", parent=menu, command=self.removeSelection)
           cmds.menuItem(label="Set Frame Range", parent=menu, command=self.setFrameRange)
           cmds.menuItem( divider=True, parent=menu)
           
           
       if cmds.objExists(self.mainGroupNode):        
           for loopMotionTrail in self.nodeInfo.keys():
               ctrl    =  self.nodeInfo[loopMotionTrail]["ctrlNode"]
               cmds.menuItem(label="Grab Offset Ctrl (%s)"%ctrl, parent=menu, command=lambda x, loopMotionTrail=loopMotionTrail, *args:self.grabOffsetCtrl(loopMotionTrail))
       
           cmds.menuItem( divider=True, parent=menu)
           
       subMenu = cmds.menuItem(label="Preferences", subMenu=True, parent=menu, tearOff=True)
        
       #Pre pos range           
       cmds.radioMenuItemCollection(parent=subMenu)
       rangeSelected = self.getPrePosRange()
       for loopPref in self.prePosRanges:    
           radioSelected = (str(rangeSelected) == str(loopPref))
           cmds.menuItem(label="%s"%loopPref, radioButton=radioSelected, command=lambda x, loopPref=loopPref, *args:self.savePrePosRange(loopPref), parent=subMenu)
       
       #Size     
       cmds.menuItem( divider=True, parent=subMenu)
       cmds.radioMenuItemCollection(parent=subMenu)
       sizeSelected = self.getPrefSize()
       for loopSize in self.customSizes:
           sizeName        = loopSize[0]
           radioSelected   = (str(sizeSelected) == str(sizeName))
           cmds.menuItem(label=utilMod.toTitle(sizeName), radioButton=radioSelected, command=lambda x, sizeName=sizeName, *args:self.savePrefSize(sizeName), parent=subMenu)
       
       # Keys    
       cmds.menuItem( divider=True, parent=subMenu)
       cmds.radioMenuItemCollection(parent=subMenu)
       keySelected = self.getPrefKey()
       for loopPref in self.prefKeys:  
           radioSelected = (str(keySelected) == str(loopPref))
           cmds.menuItem(label="Show %s Keys"%utilMod.toTitle(loopPref), radioButton=radioSelected, command=lambda x, loopPref=loopPref, *args:self.savePrefKey(loopPref), parent=subMenu)
      
       # Camera Relative    
       cmds.menuItem( divider=True, parent=subMenu)
       cmds.menuItem(label="Camera Relative", checkBox=self.cameraRelativeMode, command=self.setCameraRelativeMode, parent=subMenu)
   
       
       cmds.menuItem(divider=True, parent=menu)
       cmds.menuItem(label="Refresh", parent=menu, command=self.refreshMotionTrail)
Exemple #5
0
 def createNewSelectSet(self, setName=None, colorName=None):
     
     if colorName: 
         G.SS_lastColorUsed  = colorName
         setName             = cmds.textField(self.createNewSetTextField, query=True, text=True)
         self.highlightColorSelection()
     
     tmpSetName  = setName.replace(" ", "")
     if tmpSetName == "": return
     
     sel        = cmds.ls(selection=True)
     
     if len(sel) == 0: 
         cmds.warning("Please select some objects.")
         return
      
     if not self.testRepeated(sel):              
         newSelSetName  = "%s%s_%s"%(self.defaultSetName, G.SS_lastColorUsed, utilMod.toTitle(setName))
         with G.aToolsBar.createAToolsNode: newSelSet      = cmds.sets(sel, name=newSelSetName, text="gCharacterSet")
         
         self.showColor(G.SS_lastColorUsed)
         self.turnOffCreateNewSetField()
         self.aToolsSets.append(newSelSet)
         self.aToolsSets = sorted(self.aToolsSets)
         self.createSelSetButton(newSelSet)
         self.aToolsSetsDict[newSelSet] = sel
         self.sortSelSetButtons(newSelSet)
         self.blinkButton(newSelSet, 3)            
         self.highlightSelectedButtons(newSelSet)
Exemple #6
0
    def populateMenu(self, menu, *args):

        cmds.radioMenuItemCollection(parent=menu)
        for loopOption in self.multiplierValues:
            radioSelected   = (self.multiplier == loopOption["value"])
            option          = loopOption["name"]
            cmds.menuItem (label=utilMod.toTitle(loopOption["name"]), radioButton=radioSelected, command=lambda x, option=option, *args: self.setMultiplier(option),  parent=menu)
Exemple #7
0
    def populateMenu(self, menu, *args):

        cmds.radioMenuItemCollection(parent=menu)
        for loopOption in self.multiplierValues:
            radioSelected = (self.multiplier == loopOption["value"])
            option = loopOption["name"]
            cmds.menuItem(label=utilMod.toTitle(loopOption["name"]),
                          radioButton=radioSelected,
                          command=lambda x, option=option, *args: self.
                          setMultiplier(option),
                          parent=menu)
Exemple #8
0
    def popupMenu(self, *args):
        cmds.popupMenu()
        cmds.menuItem(subMenu=True, label='Show' , tearOff=True, postMenuCommand=self.updateshowColorsMenu)
        
        for loopColor in self.colors:
            colorName  = loopColor["name"]
            cmds.menuItem('colorMenu_%s'%colorName, label=utilMod.toTitle(colorName),   checkBox=False,  command=lambda x, colorName=colorName, *args: self.switchColor(colorName))
        
        cmds.menuItem( divider=True )
        cmds.menuItem(subMenu=True, label="Show Only")
        for loopColor in self.colors:
            colorName  = loopColor["name"]
            cmds.menuItem(label=utilMod.toTitle(colorName),   command=lambda x, colorName=colorName, *args: self.isolateColor(colorName))
        
        cmds.setParent( '..', menu=True ) 
        cmds.menuItem('colorMenuShowAll', label="Show All Colors", command=self.showAllColors)
 
        cmds.setParent( '..', menu=True )   
        cmds.menuItem(                          label="Import Select Sets",                      command=self.importSets)
        cmds.menuItem(                          label="Export Select Sets",                      command=self.exportSets)
        cmds.menuItem(                          label="Delete All",                             command=self.deleteAllSets)
Exemple #9
0
 def populateaToolsMenu(self, menu, button, *args):
     
     #print menu
     #print button
     #menu = menu[0]
     
     uiMod.clearMenuItems(menu)
     
     shortPrefs =    PREFS[:4]
     for loopPref in shortPrefs:
         name    = loopPref["name"]
         cmds.menuItem('%sMenu'%name, label=utilMod.toTitle(name), command=lambda x, name=name, *args: self.setPref(name), checkBox=self.getPref(name), parent=menu)
     
     #ANIMATION CRASH RECOVERY      
     animationCrashRecoveryPref =    PREFS[4]
     cmds.menuItem("animationCrashRecoveryMenu", label='Animation Crash Recovery' , command=lambda *args: self.setPref(animationCrashRecoveryPref["name"]), checkBox=self.getPref(animationCrashRecoveryPref["name"]), parent=menu)
     cmds.menuItem(optionBox=True, command=animationCrashRecovery.optionBoxWindow, parent=menu)
     
     cmds.menuItem(divider=True, parent=menu)
     
     subMenu = cmds.menuItem("prefsMenu", subMenu=True, label='Preferences' , tearOff=True, parent=menu)
     
     self.commandsAndHotkeys      = CommandsAndHotkeys()
     cmds.menuItem(label="Commands and Hotkeys",         command=self.commandsAndHotkeys.openGui, parent=subMenu)
     cmds.menuItem(divider=True, parent=subMenu)
     shortPrefs =    PREFS[5:]
     for loopPref in shortPrefs:
         name    = loopPref["name"]
         cmds.menuItem('%sMenu'%name,            label=utilMod.toTitle(name),        command=lambda x, name=name, *args: self.setPref(name), checkBox=self.getPref(name), parent=subMenu)
     
     cmds.menuItem(divider=True, parent=subMenu)
     cmds.menuItem("loadDefaultsMenu",          label="Load Defaults",     command=self.loadDefaultPrefs, parent=subMenu)
     
     cmds.menuItem("shelfButtonMenu",          label="Create Toggle on Shelf",           command=shelfButton, parent=menu)
     cmds.menuItem(                            label="Refresh", command=refreshATools, parent=menu)
     cmds.menuItem(                            label="Uninstall", command=self.uninstall, parent=menu)
     cmds.menuItem( divider=True )
     cmds.menuItem(                            label="Help", command=self.help, parent=menu)
     cmds.menuItem(                            label="About", command=self.about, parent=menu)
Exemple #10
0
 def populateaToolsMenu(self, menu, button, *args):
     
     #print menu
     #print button
     #menu = menu[0]
     
     uiMod.clearMenuItems(menu)
     
     shortPrefs =    PREFS[:4]
     for loopPref in shortPrefs:
         name    = loopPref["name"]
         cmds.menuItem('%sMenu'%name, label=utilMod.toTitle(name), command=lambda x, name=name, *args: self.setPref(name), checkBox=self.getPref(name), parent=menu)
     
     #ANIMATION CRASH RECOVERY      
     animationCrashRecoveryPref =    PREFS[4]
     cmds.menuItem("animationCrashRecoveryMenu", label='Animation Crash Recovery' , command=lambda *args: self.setPref(animationCrashRecoveryPref["name"]), checkBox=self.getPref(animationCrashRecoveryPref["name"]), parent=menu)
     cmds.menuItem(optionBox=True, command=animationCrashRecovery.optionBoxWindow, parent=menu)
     
     cmds.menuItem(divider=True, parent=menu)
     
     subMenu = cmds.menuItem("prefsMenu", subMenu=True, label='Preferences' , tearOff=True, parent=menu)
     
     self.commandsAndHotkeys      = CommandsAndHotkeys()
     cmds.menuItem(label="Commands and Hotkeys",         command=self.commandsAndHotkeys.openGui, parent=subMenu)
     cmds.menuItem(divider=True, parent=subMenu)
     shortPrefs =    PREFS[5:]
     for loopPref in shortPrefs:
         name    = loopPref["name"]
         cmds.menuItem('%sMenu'%name,            label=utilMod.toTitle(name),        command=lambda x, name=name, *args: self.setPref(name), checkBox=self.getPref(name), parent=subMenu)
     
     cmds.menuItem(divider=True, parent=subMenu)
     cmds.menuItem("loadDefaultsMenu",          label="Load Defaults",     command=self.loadDefaultPrefs, parent=subMenu)
     
     cmds.menuItem("shelfButtonMenu",          label="Create Toggle on Shelf",           command=shelfButton, parent=menu)
     cmds.menuItem(                            label="Refresh", command=refreshATools, parent=menu)
     cmds.menuItem(                            label="Uninstall", command=self.uninstall, parent=menu)
     cmds.menuItem( divider=True )
     cmds.menuItem(                            label="Help", command=self.help, parent=menu)
     cmds.menuItem(                            label="About", command=self.about, parent=menu)
Exemple #11
0
 def populateDuplicateButtonMenu(self, menu, selSet, colorName):
     
     outputNameSpaces    = utilMod.listAllNamespaces()
             
     uiMod.clearMenuItems(menu)
     if not outputNameSpaces: return
             
     for loopNameSpace in outputNameSpaces:
         newMenu = cmds.menuItem(subMenu=True, label=loopNameSpace, parent=menu)
         for loopColor in self.colors:                
             loopColorName  = loopColor["name"]
             
             if colorName != loopColorName:
                 cmds.menuItem(label=utilMod.toTitle(loopColorName), parent=newMenu, command=lambda x, loopNameSpace=loopNameSpace, loopColorName=loopColorName, *args:self.duplicateSet(selSet,loopNameSpace,loopColorName))
Exemple #12
0
 def delayedUpdateHotkeyCheck(self, name): 
     command = cmds.button("command%s"%name, query=True, label=True)
     key     = cmds.scrollField("key%s"%name, query=True, text=True)
     ctl     = cmds.checkBox("ctl%s"%name, query=True, value=True)
     alt     = cmds.checkBox("alt%s"%name, query=True, value=True) 
     
     
     if len(key) > 1 and key not in KEYSLIST: 
         key = key[0]
         cmds.scrollField("key%s"%name, edit=True, text=key)
     
     
     label = self.hotkeyCheck(key, ctl, alt)
     
     
     if label == None: label = ""
     
     cmds.text("query%s"%name, edit=True, label=label, font="plainLabelFont")    
     if utilMod.toTitle(label) != command: cmds.text("query%s"%name, edit=True, font="boldLabelFont")
Exemple #13
0
 def popupMenu(self):
     cmds.popupMenu()
     cmds.menuItem("autoSelectMirrorObjectsMenu", label='Auto Select Mirror Objects' , checkBox=False, command=self.toggleAutoSelectMirrorObjects)
     cmds.menuItem("invertRulesMenu", subMenu=True, label='Invert Rules' , tearOff=True)
     for n, loopPref in enumerate(self.INVERT_RULES_PREFS):
         name    = loopPref["name"]
         if n == 6: cmds.menuItem( divider=True )
             
         cmds.menuItem('%sMenu'%name,            label=utilMod.toTitle(name[11:]),        command=lambda x, name=name, *args: aToolsMod.setPref(name, self.INVERT_RULES_PREFS), checkBox=aToolsMod.getPref(name, self.INVERT_RULES_PREFS))
     
     cmds.menuItem( divider=True )
     cmds.menuItem("loadDefaultsInvertRulesMenu",          label="Load Defaults",     command=lambda *args:utilMod.loadDefaultPrefs(self.INVERT_RULES_PREFS))
     cmds.setParent( '..', menu=True )
     cmds.menuItem( divider=True )        
     cmds.menuItem(label="Unselect Right",  command=lambda *args: self.unselectMirrorObjs("right"))
     cmds.menuItem(label="Unselect Left",   command=lambda *args: self.unselectMirrorObjs("left"))
     cmds.menuItem(label="Unselect Center", command=lambda *args: self.unselectMirrorObjs("center"))
     cmds.menuItem( divider=True )
     cmds.menuItem(label="Paste And Invert Cycle",   command=lambda *args: self.applyMirror(pasteAndCycle=True))
Exemple #14
0
 def delayedUpdateHotkeyCheck(self, name): 
     command = cmds.button("command%s"%name, query=True, label=True)
     key     = cmds.scrollField("key%s"%name, query=True, text=True)
     ctl     = cmds.checkBox("ctl%s"%name, query=True, value=True)
     alt     = cmds.checkBox("alt%s"%name, query=True, value=True) 
     
     
     if len(key) > 1 and key not in KEYSLIST: 
         key = key[0]
         cmds.scrollField("key%s"%name, edit=True, text=key)
     
     
     label = self.hotkeyCheck(key, ctl, alt)
     
     
     if label == None: label = ""
     
     cmds.text("query%s"%name, edit=True, label=label, font="plainLabelFont")    
     if utilMod.toTitle(label) != command: cmds.text("query%s"%name, edit=True, font="boldLabelFont")
Exemple #15
0
    def populateDuplicateButtonMenu(self, menu, selSet, colorName):

        outputNameSpaces = utilMod.listAllNamespaces()

        uiMod.clearMenuItems(menu)
        if not outputNameSpaces: return

        for loopNameSpace in outputNameSpaces:
            newMenu = cmds.menuItem(subMenu=True,
                                    label=loopNameSpace,
                                    parent=menu)
            for loopColor in self.colors:
                loopColorName = loopColor["name"]

                if colorName != loopColorName:
                    cmds.menuItem(
                        label=utilMod.toTitle(loopColorName),
                        parent=newMenu,
                        command=lambda x, loopNameSpace=loopNameSpace,
                        loopColorName=loopColorName, *args: self.duplicateSet(
                            selSet, loopNameSpace, loopColorName))
Exemple #16
0
    def popupMenu(self):
        cmds.popupMenu()
        cmds.menuItem("autoSelectMirrorObjectsMenu",
                      label='Auto Select Mirror Objects',
                      checkBox=False,
                      command=self.toggleAutoSelectMirrorObjects)
        cmds.menuItem("invertRulesMenu",
                      subMenu=True,
                      label='Invert Rules',
                      tearOff=True)
        for n, loopPref in enumerate(self.INVERT_RULES_PREFS):
            name = loopPref["name"]
            if n == 6: cmds.menuItem(divider=True)

            cmds.menuItem('%sMenu' % name,
                          label=utilMod.toTitle(name[11:]),
                          command=lambda x, name=name, *args: aToolsMod.
                          setPref(name, self.INVERT_RULES_PREFS),
                          checkBox=aToolsMod.getPref(name,
                                                     self.INVERT_RULES_PREFS))

        cmds.menuItem(divider=True)
        cmds.menuItem("loadDefaultsInvertRulesMenu",
                      label="Load Defaults",
                      command=lambda *args: utilMod.loadDefaultPrefs(
                          self.INVERT_RULES_PREFS))
        cmds.setParent('..', menu=True)
        cmds.menuItem(divider=True)
        cmds.menuItem(label="Unselect Right",
                      command=lambda *args: self.unselectMirrorObjs("right"))
        cmds.menuItem(label="Unselect Left",
                      command=lambda *args: self.unselectMirrorObjs("left"))
        cmds.menuItem(label="Unselect Center",
                      command=lambda *args: self.unselectMirrorObjs("center"))
        cmds.menuItem(divider=True)
        cmds.menuItem(
            label="Paste And Invert Cycle",
            command=lambda *args: self.applyMirror(pasteAndCycle=True))
Exemple #17
0
    def createNewSelectSet(self, setName=None, colorName=None):

        if colorName:
            G.SS_lastColorUsed = colorName
            setName = cmds.textField(self.createNewSetTextField,
                                     query=True,
                                     text=True)
            self.highlightColorSelection()

        tmpSetName = setName.replace(" ", "")
        if tmpSetName == "": return

        sel = cmds.ls(selection=True)

        if len(sel) == 0:
            cmds.warning("Please select some objects.")
            return

        if not self.testRepeated(sel):
            newSelSetName = "%s%s_%s" % (self.defaultSetName,
                                         G.SS_lastColorUsed,
                                         utilMod.toTitle(setName))
            with G.aToolsBar.createAToolsNode:
                newSelSet = cmds.sets(sel,
                                      name=newSelSetName,
                                      text="gCharacterSet")

            self.showColor(G.SS_lastColorUsed)
            self.turnOffCreateNewSetField()
            self.aToolsSets.append(newSelSet)
            self.aToolsSets = sorted(self.aToolsSets)
            self.createSelSetButton(newSelSet)
            self.aToolsSetsDict[newSelSet] = sel
            self.sortSelSetButtons(newSelSet)
            self.blinkButton(newSelSet, 3)
            self.highlightSelectedButtons(newSelSet)
Exemple #18
0
    def populateMenu(self, menu, *args):
                  
        uiMod.clearMenuItems(menu)
        
        tokenCustomDivider  = False 
        selObjects          = cmds.ls(selection=True)
        
        if not selObjects: return    
        
        channels    = animMod.getAllChannels()
        channelList = {}
        tokenList   = []
               
        for n, loopObjectChannel in enumerate(channels):
            obj = selObjects[n]
            if loopObjectChannel:
                for loopChannel in loopObjectChannel:
                    tokens = animMod.getTokens(obj, loopChannel)
                    if tokens and len(tokens) > 1: 
                        if not channelList.has_key(loopChannel): channelList[loopChannel] = {"objects":[], "tokens":[]}
                        channelList[loopChannel]["objects"].append(obj)
                        channelList[loopChannel]["tokens"].append(tokens)
                        
        
        for loopChannelList in channelList:
            newMenu         = cmds.menuItem(subMenu=True, label=utilMod.toTitle(loopChannelList), parent=menu)
            objects         = channelList[loopChannelList]["objects"]
            tokens          = channelList[loopChannelList]["tokens"]
            mergedTokens    = utilMod.mergeLists(tokens)                      
            tokenDict       = []
            
            for loopMergedTokens in mergedTokens:
                tokenDict.append({"token":loopMergedTokens, "objects":[]})
                for n, loopObject in enumerate(objects):
                    t = tokens[n]
                    if loopMergedTokens in t:
                        tokenDict[-1]["objects"].append(loopObject)  
        
            cmds.radioMenuItemCollection(parent=menu)            
            
            for n, loopTokenDict in enumerate(tokenDict):
                tokenCustomDivider  = True
                token               = loopTokenDict["token"]
                objects             = loopTokenDict["objects"]
                selectedList        = [cmds.getAttr("%s.%s"%(loopObj, loopChannelList)) for loopObj in objects]                
                radioSelected       = False
                
                
                if len(set(selectedList)) == 1:
                    if selectedList[0] == n:
                        radioSelected   = True
                
                cmds.menuItem(label=utilMod.toTitle(token), radioButton=radioSelected, parent=newMenu, command=lambda x, objects=objects, channel=loopChannelList, token=token, *args:self.spaceSwitch([objects, channel, token]))
            
             
            #ALL KEYS
            cmds.menuItem( divider=True, parent=newMenu)
            newMenu = cmds.menuItem(subMenu=True, label='All Keys', parent=newMenu)
            
            cmds.radioMenuItemCollection(parent=newMenu)
            
            for n, loopTokenDict in enumerate(tokenDict):
                token           = loopTokenDict["token"]
                objects         = loopTokenDict["objects"]
                selectedList    = [cmds.getAttr("%s.%s"%(loopObj, loopChannelList)) for loopObj in objects]                
                radioSelected   = False
                
                if len(set(selectedList)) == 1:
                    if selectedList[0] == n:
                        radioSelected   = True
                
                cmds.menuItem(label=utilMod.toTitle(token), radioButton=radioSelected, parent=newMenu, command=lambda x, objects=objects, channel=loopChannelList, token=token, *args:self.spaceSwitch([objects, channel, token], all=True))

        # CUSTOM SWITCH
        allCustomSwitch     = aToolsMod.loadInfoWithUser("spaceSwitch", "customSwitch") or []
        channelboxSelObjs   = animMod.channelBoxSel()
        
        if channelboxSelObjs:
            obj            = ".".join(channelboxSelObjs[0].split(".")[:-1])
            selectedSwitch = [loopAttr.split(".")[-1] for loopAttr in channelboxSelObjs if utilMod.isDynamic(obj, loopAttr.split(".")[-1])]
            if len(selectedSwitch) > 0 and selectedSwitch not in allCustomSwitch: 
                allCustomSwitch.append(selectedSwitch)            
                aToolsMod.saveInfoWithUser("spaceSwitch", "customSwitch", allCustomSwitch)  
        
        
        # populate menu
        if len(allCustomSwitch) > 0:  
                
            divider             = False
            customSwitchesAdded = []
            customSwitchesMenu  = []
            
            for loopObj in selObjects:
                       
                for loopCustomSwitch in sorted(allCustomSwitch, key=len, reverse=True):
                    
                    if len(loopCustomSwitch) == 0: continue                    
                    
                    switchName  = utilMod.getNameSpace([loopObj])[1][0].split(".")[0]
                    exit        = False
                    
                    for loopAttr in loopCustomSwitch:
                        objAttr = "%s.%s"%(loopObj, loopAttr)
                        if not cmds.objExists(objAttr):
                            exit = True
                            break
                            
                    if exit: continue
                         
                    customSwitchesMenu.append({"objects":[loopObj], "switches":loopCustomSwitch})
                    
                    for loopMenu in customSwitchesMenu[:-1]:
                        if loopObj in loopMenu["objects"] and len(loopCustomSwitch) < len(loopMenu["switches"]) and utilMod.listIntersection(loopMenu["switches"], loopCustomSwitch) == loopCustomSwitch:
                            customSwitchesMenu.pop()
                            break
                        if loopCustomSwitch == loopMenu["switches"]:
                            loopMenu["objects"].append(loopObj)
                            customSwitchesMenu.pop()
                            break
                     
                    
            for loopSwitchMenu in customSwitchesMenu:
                
                objects     = loopSwitchMenu["objects"]
                switches    = loopSwitchMenu["switches"]
                switchName  = ", ".join(list(set(utilMod.getNameSpace(objects)[1])))
                    
                if not divider and tokenCustomDivider: divider = cmds.menuItem(divider=True, parent=menu)  
  
                cmds.radioMenuItemCollection(parent=menu)
                
                newMenu         = cmds.menuItem(subMenu=True, label=switchName, parent=menu)
                radioSelected   = []
                 
                for loopCustomSwitchAttr in switches:
                    switchAttr      = loopCustomSwitchAttr.split(".")[-1]
                    objAttr         = "%s.%s"%(objects[0], switchAttr)
                    minValue        = cmds.addAttr(objAttr, query=True, minValue=True)
                    maxValue        = cmds.addAttr(objAttr, query=True, maxValue=True)
                    currValue       = cmds.getAttr(objAttr)
                    radioSelected.append((currValue == maxValue))
                    
                    cmds.menuItem(label=switchAttr, radioButton=radioSelected[-1], parent=newMenu, command=lambda x, objects=objects, switchAttr=switchAttr, switches=switches, *args:self.spaceSwitch([objects, switchAttr, switches], mode="custom"))
                
                switchAttr      = "message"
                radioSelected   = (list(set(radioSelected)) == [False])                    
                cmds.menuItem(label="None", radioButton=radioSelected, parent=newMenu, command=lambda x, objects=objects, switchAttr=switchAttr, switches=switches, *args:self.spaceSwitch([objects, switchAttr, switches], mode="custom"))
                    
                #ALL KEYS
                
                cmds.menuItem( divider=True, parent=newMenu)
                allMenu = cmds.menuItem(subMenu=True, label='All Keys', parent=newMenu) 
                radioSelected   = []
                cmds.radioMenuItemCollection(parent=menu)
                
                
                for loopCustomSwitchAttr in switches:
                    switchAttr      = loopCustomSwitchAttr.split(".")[-1]
                    objAttr         = "%s.%s"%(objects[0], switchAttr)
                    minValue        = cmds.addAttr(objAttr, query=True, minValue=True)
                    maxValue        = cmds.addAttr(objAttr, query=True, maxValue=True)
                    currValue       = cmds.getAttr(objAttr)
                    radioSelected.append((currValue == maxValue))
                    cmds.menuItem(label=switchAttr, radioButton=radioSelected[-1], parent=allMenu, command=lambda x, objects=objects, switchAttr=switchAttr, switches=switches, *args:self.spaceSwitch([objects, switchAttr, switches], all=True, mode="custom"))
                
                switchAttr      = "message"
                radioSelected   = (list(set(radioSelected)) == [False])  
                cmds.menuItem(label="None", radioButton=radioSelected, parent=allMenu, command=lambda x, objects=objects, switchAttr=switchAttr, switches=switches, *args:self.spaceSwitch([objects, switchAttr, switches], all=True, mode="custom"))
                
                #DELETE
                
                cmds.menuItem(label="Remove", parent=newMenu, command=lambda x, switches=switches, *args:self.removeCustomSwitch(switches))
Exemple #19
0
 def openGui(self, *args):
     
     winName     = "commandsWindow"
     height      = 26
     commands    = []
     names       = [] 
     hotkeysDict = [[]]
     allHotkeys  = hotkeys.getHotkeys()
     totalItems  = sum(len(x) for x in allHotkeys)
     itemsCount  = 0
     aB          = 0
     totalColums = 2
     
     for n, loopHotkey in enumerate(allHotkeys):  
         if itemsCount > (totalItems/totalColums) * (aB+1): 
             aB += 1
             hotkeysDict.append([])        
         itemsCount += len(loopHotkey)
         for loopItem in loopHotkey:
             hotkeysDict[aB].append(loopItem)
             hotkeysDict[aB][-1]["colorValue"] = self.colorValues[self.allColors[n]]
             
     if cmds.window(winName, query=True, exists=True): cmds.deleteUI(winName)
     
     window          = cmds.window( winName, title = "Commands and Hotkeys")    
     mainLayout      = cmds.columnLayout(adjustableColumn=True)
     columnsLayout   = cmds.rowColumnLayout(numberOfColumns=totalColums)
     
     for loopColumn in xrange(totalColums):
     
         parent = cmds.rowColumnLayout(numberOfColumns=7, columnSpacing=([2,5], [3,3], [4,3], [5,1], [6,5], [7,5]), parent=columnsLayout)
           
         cmds.text(label='Command', h=height)
         cmds.text(label='Ctl', h=height)
         cmds.text(label='Alt', h=height)
         cmds.text(label='Key', h=height)
         cmds.text(label='', h=height)
         cmds.text(label='Set Hotkey', h=height)
         cmds.text(label='Assigned to', align="left", h=height)
     
         for loopIndex, loopCommand in enumerate(hotkeysDict[loopColumn]):  
             
                       
             command = loopCommand["command"]
             name    = loopCommand["name"] 
             key     = loopCommand["hotkey"]
             alt     = loopCommand["alt"]
             ctl     = loopCommand["ctl"]  
             toolTip = loopCommand["toolTip"]  
             color   = loopCommand["colorValue"]
             
             hotkeyData = aToolsMod.loadInfoWithUser("hotkeys", name) 
             if hotkeyData != None: 
                 key     = hotkeyData[0]
                 alt     = hotkeyData[1]
                 ctl     = hotkeyData[2]
             
             cmds.button("command%s"%name, label=utilMod.toTitle(name), command=command, annotation=toolTip, h=height, bgc=color, parent=parent)
             cmds.checkBox('ctl%s'%name, label='', value=ctl, changeCommand=lambda x, name=name, *args:self.updateHotkeyCheck(name), h=height, parent=parent)
             cmds.checkBox('alt%s'%name, label='', value=alt, changeCommand=lambda x, name=name, *args:self.updateHotkeyCheck(name), h=height, parent=parent)
             cmds.scrollField('key%s'%name, w=80, text=key, keyPressCommand=lambda x, name=name, *args:self.updateHotkeyCheck(name), h=height, parent=parent)
             cmds.button(label=" ", h=height, parent=parent)
             self.popSpecialHotkeys(name)
             cmds.button(label='>',           command=lambda x, name=name, command=command, *args: self.setHotkey(self.getHotkeyDict([name], [command])), h=height, parent=parent)
             cmds.text("query%s"%name, align="left", label=self.hotkeyCheck(key, ctl, alt), font="plainLabelFont", h=height, parent=parent)
             
             commands.append(command)
             names.append(name)
             
             #cmds.button(label="Set Hotkey", command=lambda *args: getHotkeyDict([name], [command], [key], [alt], [ctl], [cmd]))
             self.updateHotkeyCheck(name)        
             
             
     #cmds.rowLayout(numberOfColumns=2, columnAttach=([1, 'left', 0],[2, 'right', 0]), adjustableColumn=2)
     cmds.button(label="Load Defaults", command=lambda *args: self.loadHotkeys(True), parent=mainLayout)
     cmds.button(label="Set All Hotkeys", command=lambda *args: self.setHotkey(self.getHotkeyDict(names, commands)), parent=mainLayout)
     
     cmds.showWindow( window )
Exemple #20
0
 def openGui(self, *args):
     
     winName     = "commandsWindow"
     height      = 26
     commands    = []
     names       = [] 
     hotkeysDict = [[]]
     allHotkeys  = hotkeys.getHotkeys()
     totalItems  = sum(len(x) for x in allHotkeys)
     itemsCount  = 0
     aB          = 0
     totalColums = 2
     
     for n, loopHotkey in enumerate(allHotkeys):  
         if itemsCount > (totalItems/totalColums) * (aB+1): 
             aB += 1
             hotkeysDict.append([])        
         itemsCount += len(loopHotkey)
         for loopItem in loopHotkey:
             hotkeysDict[aB].append(loopItem)
             hotkeysDict[aB][-1]["colorValue"] = self.colorValues[self.allColors[n]]
             
     if cmds.window(winName, query=True, exists=True): cmds.deleteUI(winName)
     
     window          = cmds.window( winName, title = "Commands and Hotkeys")    
     mainLayout      = cmds.columnLayout(adjustableColumn=True)
     columnsLayout   = cmds.rowColumnLayout(numberOfColumns=totalColums)
     
     for loopColumn in xrange(totalColums):
     
         parent = cmds.rowColumnLayout(numberOfColumns=7, columnSpacing=([2,5], [3,3], [4,3], [5,1], [6,5], [7,5]), parent=columnsLayout)
           
         cmds.text(label='Command', h=height)
         cmds.text(label='Ctl', h=height)
         cmds.text(label='Alt', h=height)
         cmds.text(label='Key', h=height)
         cmds.text(label='', h=height)
         cmds.text(label='Set Hotkey', h=height)
         cmds.text(label='Assigned to', align="left", h=height)
     
         for loopIndex, loopCommand in enumerate(hotkeysDict[loopColumn]):  
             
                       
             command = loopCommand["command"]
             name    = loopCommand["name"] 
             key     = loopCommand["hotkey"]
             alt     = loopCommand["alt"]
             ctl     = loopCommand["ctl"]  
             toolTip = loopCommand["toolTip"]  
             color   = loopCommand["colorValue"]
             
             hotkeyData = aToolsMod.loadInfoWithUser("hotkeys", name) 
             if hotkeyData != None: 
                 key     = hotkeyData[0]
                 alt     = hotkeyData[1]
                 ctl     = hotkeyData[2]
             
             cmds.button("command%s"%name, label=utilMod.toTitle(name), command=command, annotation=toolTip, h=height, bgc=color, parent=parent)
             cmds.checkBox('ctl%s'%name, label='', value=ctl, changeCommand=lambda x, name=name, *args:self.updateHotkeyCheck(name), h=height, parent=parent)
             cmds.checkBox('alt%s'%name, label='', value=alt, changeCommand=lambda x, name=name, *args:self.updateHotkeyCheck(name), h=height, parent=parent)
             cmds.scrollField('key%s'%name, w=80, text=key, keyPressCommand=lambda x, name=name, *args:self.updateHotkeyCheck(name), h=height, parent=parent)
             cmds.button(label=" ", h=height, parent=parent)
             self.popSpecialHotkeys(name)
             cmds.button(label='>',           command=lambda x, name=name, command=command, *args: self.setHotkey(self.getHotkeyDict([name], [command])), h=height, parent=parent)
             cmds.text("query%s"%name, align="left", label=self.hotkeyCheck(key, ctl, alt), font="plainLabelFont", h=height, parent=parent)
             
             commands.append(command)
             names.append(name)
             
             #cmds.button(label="Set Hotkey", command=lambda *args: getHotkeyDict([name], [command], [key], [alt], [ctl], [cmd]))
             self.updateHotkeyCheck(name)        
             
             
     #cmds.rowLayout(numberOfColumns=2, columnAttach=([1, 'left', 0],[2, 'right', 0]), adjustableColumn=2)
     cmds.button(label="Load Defaults", command=lambda *args: self.loadHotkeys(True), parent=mainLayout)
     cmds.button(label="Set All Hotkeys", command=lambda *args: self.setHotkey(self.getHotkeyDict(names, commands)), parent=mainLayout)
     
     cmds.showWindow( window )
Exemple #21
0
    def populateMenu(self, menu, *args):
        uiMod.clearMenuItems(menu)
        #cmds.menuItem(label="Camera Relative", parent=menu, checkBox=self.cameraRelativeOnOff, command=self.cameraRelativeSwitch)

        if cmds.objExists(self.mainGroupNode):
            cmds.menuItem(label="Add Selection",
                          parent=menu,
                          command=self.addSelection)
            cmds.menuItem(label="Remove Selection",
                          parent=menu,
                          command=self.removeSelection)
            cmds.menuItem(label="Set Frame Range",
                          parent=menu,
                          command=self.setFrameRange)
            cmds.menuItem(divider=True, parent=menu)

        if cmds.objExists(self.mainGroupNode):
            for loopMotionTrail in self.nodeInfo.keys():
                ctrl = self.nodeInfo[loopMotionTrail]["ctrlNode"]
                cmds.menuItem(
                    label="Grab Offset Ctrl (%s)" % ctrl,
                    parent=menu,
                    command=lambda x, loopMotionTrail=loopMotionTrail, *args:
                    self.grabOffsetCtrl(loopMotionTrail))

            cmds.menuItem(divider=True, parent=menu)

        subMenu = cmds.menuItem(label="Preferences",
                                subMenu=True,
                                parent=menu,
                                tearOff=True)

        #Pre pos range
        cmds.radioMenuItemCollection(parent=subMenu)
        rangeSelected = self.getPrePosRange()
        for loopPref in self.prePosRanges:
            radioSelected = (str(rangeSelected) == str(loopPref))
            cmds.menuItem(label="%s" % loopPref,
                          radioButton=radioSelected,
                          command=lambda x, loopPref=loopPref, *args: self.
                          savePrePosRange(loopPref),
                          parent=subMenu)

        #Size
        cmds.menuItem(divider=True, parent=subMenu)
        cmds.radioMenuItemCollection(parent=subMenu)
        sizeSelected = self.getPrefSize()
        for loopSize in self.customSizes:
            sizeName = loopSize[0]
            radioSelected = (str(sizeSelected) == str(sizeName))
            cmds.menuItem(label=utilMod.toTitle(sizeName),
                          radioButton=radioSelected,
                          command=lambda x, sizeName=sizeName, *args: self.
                          savePrefSize(sizeName),
                          parent=subMenu)

        # Keys
        cmds.menuItem(divider=True, parent=subMenu)
        cmds.radioMenuItemCollection(parent=subMenu)
        keySelected = self.getPrefKey()
        for loopPref in self.prefKeys:
            radioSelected = (str(keySelected) == str(loopPref))
            cmds.menuItem(label="Show %s Keys" % utilMod.toTitle(loopPref),
                          radioButton=radioSelected,
                          command=lambda x, loopPref=loopPref, *args: self.
                          savePrefKey(loopPref),
                          parent=subMenu)

        # Camera Relative
        cmds.menuItem(divider=True, parent=subMenu)
        cmds.menuItem(label="Camera Relative",
                      checkBox=self.cameraRelativeMode,
                      command=self.setCameraRelativeMode,
                      parent=subMenu)

        cmds.menuItem(divider=True, parent=menu)
        cmds.menuItem(label="Refresh",
                      parent=menu,
                      command=self.refreshMotionTrail)