예제 #1
0
 def __init__(self):
     nukescripts.PythonPanel.__init__(self, 'Backdrop Manager',
                                      'com.ohufx.Backdrop')
     # DEFINE DICTIONARIES/LIST
     self.elements = []
     self.key = {}
     self.fontset = {}
     self.fontsize = {}
     self.fontcol = {}
     self.nodes = False
     # CREATE KNOBS
     self.srcNodes = {
         'All': nuke.allNodes(),
         'Selected': nuke.selectedNodes()
     }
     self.nodesChoice = nuke.Enumeration_Knob('nodes', 'Source Nodes',
                                              ['All', 'Selected'])
     self.label = nuke.Enumeration_Knob('backdrop', 'Backdrop Label',
                                        self.comeon())
     self.cv = nuke.Multiline_Eval_String_Knob('newlabel', 'New Label')
     self.warning = nuke.Text_Knob(
         'warning', '<span style="color:red">No Backdrops Selected</span>')
     self.warning.setVisible(False)
     self.warning.clearFlag(nuke.STARTLINE)
     self.size = nuke.Int_Knob('fontsize', '')
     self.size.setValue(20)
     self.size.clearFlag(nuke.STARTLINE)
     self.size.setValue(self.fontsize[self.key[self.label.value()]])
     self.font = nuke.Font_Knob('font', 'Font')
     self.font.setValue(self.fontset[self.key[self.label.value()]])
     self.fontcolor = nuke.ColorChip_Knob('fontcolor', 'color')
     self.fontcolor.setValue(self.fontcol[self.key[self.label.value()]])
     self.backcolor = nuke.ColorChip_Knob('backcolor', 'backcolor')
     self.backcolor.setValue(self.key[self.key[self.label.value()]])
     self.cv.setValue(self.label.value())
     bnode = self.key[self.label.value()]
     if self.cv.value() == bnode.knob('name').value():
         self.cv.setValue('')
     # ADD KNOBS
     for k in (self.nodesChoice, self.label, self.warning, self.cv,
               self.backcolor, self.font, self.size, self.fontcolor):
         self.addKnob(k)
예제 #2
0
    def __init__(self):
        nukescripts.PythonPanel.__init__(self, '}MUSTACHE{ Auto-Comp Builder',
                                         'mustache.AutoComp')

        # make knobs
        self.autoCompTab = nuke.Tab_Knob('Auto-Comp Multi')
        self.nameStr = nuke.String_Knob('nameStr', 'Comp name:')
        self.nameStr.setValue('Comp 1')
        self.backdropColor = nuke.ColorChip_Knob('backdropColor')
        self.beautyStr = nuke.String_Knob('beautyStr', 'Beauty sequence:')
        self.getBeauty = nuke.PyScript_Knob('getBeauty', 'Get Beauty')
        self.techStr = nuke.String_Knob('techStr', 'Tech sequence:')
        self.getTech = nuke.PyScript_Knob('getTech', 'Get Tech')
        self.matteStr = nuke.String_Knob('matteStr', 'Matte sequence:')
        self.getMatte = nuke.PyScript_Knob('getMatte', 'Get Matte')
        self.ok = nuke.PyScript_Knob('doAutoComp', 'Create comp')

        # attach to panel
        self.addKnob(self.autoCompTab)
        self.addKnob(self.nameStr)
        self.addKnob(self.backdropColor)
        self.backdropColor.setValue(0x999999FF)
        self.addKnob(self.beautyStr)
        self.addKnob(self.getBeauty)
        self.addKnob(self.matteStr)
        self.addKnob(self.getMatte)
        self.addKnob(self.techStr)
        self.addKnob(self.getTech)
        self.addKnob(self.ok)
        self.ok.setFlag(nuke.STARTLINE)

        # make knobs for single-channel grouper
        self.grouperTab = nuke.Tab_Knob('Footage Grouper')
        self.sequenceStr = nuke.String_Knob('sequenceStr', 'Root sequence:')
        self.getSequence = nuke.PyScript_Knob('getSequence', 'Get Sequence')
        self.makeGroup = nuke.PyScript_Knob('doGroup', 'Group passes')

        # attach to panel
        self.addKnob(self.grouperTab)
        self.addKnob(self.sequenceStr)
        self.addKnob(self.getSequence)
        self.addKnob(self.makeGroup)
        self.makeGroup.setFlag(nuke.STARTLINE)
예제 #3
0
    def __init__(self):
        """
        Adding knobs to UI panel.
        """
        nukescripts.PythonPanel.__init__(
            self, "Bc_ToolSet Preferences",
            "com.parimalvfx.BcToolSetPreferencesPanel")

        self.setMinimumSize(450, 700)

        self.PrPref = nuke.Text_Knob(
            "Bc_ToolSet_pref", "",
            "<font color='grey' size='7'><b>Bc_</b>ToolSet Preferences"
            "</font><br>")
        self.div0 = nuke.Text_Knob("div0", "", " ")
        self.GzColor = nuke.ColorChip_Knob("gizmo_color", "  Gizmo Color ",
                                           0x7f7f7fff)
        self.div1 = nuke.Text_Knob("div1", "", " ")
        self.div2 = nuke.Text_Knob("div2", "", "")
        self.PManager = nuke.Text_Knob(
            "plugin_manager", "",
            "<br><font color='grey' size='5'><b>Plugin Manager</b>"
            "</font><br>")
        self.SL = nuke.Boolean_Knob("save_log", "Nuke File Save Log", False)
        self.SL.setTooltip(
            "Log information in Project Settings 'comment', whenever Nuke file saves."
        )
        self.Gizmos = nuke.Text_Knob(
            "gizmos", "",
            "<br><font color='dark grey' size='4'><b>Gizmos</b></font>")
        self.ShuffleMatte = nuke.Boolean_Knob("Bc_ShuffleMatte",
                                              "Bc_ShuffleMatte", True)
        self.LBGrain = nuke.Boolean_Knob("Bc_LBGrain", "Bc_LBGrain", True)
        self.LBGrain.setFlag(nuke.STARTLINE)
        self.RGBLuma = nuke.Boolean_Knob("Bc_RGBLuma", "Bc_RGBLuma", True)
        self.RGBLuma.setFlag(nuke.STARTLINE)
        self.RGBShadow = nuke.Boolean_Knob("Bc_RGBShadow", "Bc_RGBShadow",
                                           True)
        self.RGBShadow.setFlag(nuke.STARTLINE)
        self.Contrast = nuke.Boolean_Knob("Bc_Contrast", "Bc_Contrast", True)
        self.Contrast.setFlag(nuke.STARTLINE)
        self.Palette = nuke.Boolean_Knob("Bc_Palette", "Bc_Palette", True)
        self.Palette.setFlag(nuke.STARTLINE)
        self.CameraAim = nuke.Boolean_Knob("Bc_CameraAim",
                                           "Bc_CameraAim (Nuke 6, 7, 8)", True)
        self.CameraAim.setFlag(nuke.STARTLINE)
        self.CameraAim9 = nuke.Boolean_Knob("Bc_CameraAim9",
                                            "Bc_CameraAim (Nuke 9, 10)", True)
        self.CameraAim9.setFlag(nuke.STARTLINE)
        self.LightAim = nuke.Boolean_Knob("Bc_LightAim",
                                          "Bc_LightAim (Nuke 6, 7, 8)", True)
        self.LightAim.setFlag(nuke.STARTLINE)
        self.LightAim9 = nuke.Boolean_Knob("Bc_LightAim9",
                                           "Bc_LightAim (Nuke 9, 10)", True)
        self.LightAim9.setFlag(nuke.STARTLINE)
        self.Timecode = nuke.Boolean_Knob("Bc_Timecode", "Bc_Timecode", True)
        self.Timecode.setFlag(nuke.STARTLINE)
        self.InfoText = nuke.Boolean_Knob("Bc_InfoText", "Bc_InfoText", True)
        self.InfoText.setFlag(nuke.STARTLINE)
        self.NukeMenu = nuke.Text_Knob(
            "nuke_menu", "",
            "<br><font color='dark grey' size='4'><b>Python Scripts - Nuke"
            " Menu</b></font>")
        self.NGG = nuke.Boolean_Knob("node_graph_grid", "Node Graph Grid",
                                     True)
        self.BDV = nuke.Boolean_Knob("bring_down_viewer", "Bring Down Viewer",
                                     True)
        self.BDV.setFlag(nuke.STARTLINE)
        self.SFN = nuke.Boolean_Knob("smart_floating_notepad",
                                     "Smart Floating Notepad", True)
        self.SFN.setFlag(nuke.STARTLINE)
        self.HN = nuke.Boolean_Knob("highlight_node", "Highlight Node", True)
        self.HN.setFlag(nuke.STARTLINE)
        self.MD = nuke.Boolean_Knob("master_disable", "Master Disable", True)
        self.MD.setFlag(nuke.STARTLINE)
        self.MKV = nuke.Boolean_Knob("multi_knob_values", "Multi Knob Values",
                                     True)
        self.MKV.setFlag(nuke.STARTLINE)
        self.CMO = nuke.Boolean_Knob("cycle_merge_operation",
                                     "Cycle Merge Operation Up-Down", True)
        self.CMO.setFlag(nuke.STARTLINE)
        self.CSI = nuke.Boolean_Knob("cycle_shuffle_in",
                                     "Cycle Shuffle 'in 1' Up-Down", True)
        self.CSI.setFlag(nuke.STARTLINE)
        self.SP = nuke.Boolean_Knob("shuffle_exr_passes", "Shuffle EXR Passes",
                                    True)
        self.SP.setFlag(nuke.STARTLINE)
        self.LS = nuke.Boolean_Knob("label_shuffle", "Label Shuffle", True)
        self.LS.setFlag(nuke.STARTLINE)
        self.RFW = nuke.Boolean_Knob("read_from_write", "Read from Write",
                                     True)
        self.RFW.setFlag(nuke.STARTLINE)
        self.DARE = nuke.Boolean_Knob("delete_error_read",
                                      "Delete all Read(s) with error", True)
        self.DARE.setFlag(nuke.STARTLINE)
        self.DATE = nuke.Boolean_Knob("delete_thumbs_tmp",
                                      "Delete Thumbs.db and .tmp Read(s)",
                                      True)
        self.DATE.setFlag(nuke.STARTLINE)
        self.ORF = nuke.Boolean_Knob("open_read_folder", "Open Read Folder",
                                     True)
        self.ORF.setFlag(nuke.STARTLINE)
        self.ONFF = nuke.Boolean_Knob("open_nuke_file_folder",
                                      "Open Nuke File Folder", True)
        self.ONFF.setFlag(nuke.STARTLINE)
        self.ODN = nuke.Boolean_Knob("open_dot_nuke", "Open .nuke Folder",
                                     True)
        self.ODN.setFlag(nuke.STARTLINE)
        self.OSPPF = nuke.Boolean_Knob("open_pp_folder",
                                       "Open Specific PLUGIN_PATH Folder",
                                       True)
        self.OSPPF.setFlag(nuke.STARTLINE)
        self.AnimationMenu = nuke.Text_Knob(
            "animation_menu", "",
            "<br><font color='dark grey' size='4'><b>Python "
            "Scripts - Animation Menu</b></font>")
        self.LRB = nuke.Boolean_Knob("link_roto", "Link to Roto Bezier", True)
        self.SFZO = nuke.Boolean_Knob("forward_zero_one", "Set 0>1", True)
        self.SFZO.setFlag(nuke.STARTLINE)
        self.SF0Z = nuke.Boolean_Knob("forward_one_zero", "Set 1>0", True)
        self.SF0Z.setFlag(nuke.STARTLINE)
        self.SB0Z = nuke.Boolean_Knob("backward_one_zero", "Set 1<0", True)
        self.SB0Z.setFlag(nuke.STARTLINE)
        self.SBZO = nuke.Boolean_Knob("backward_zero_one", "Set 0<1", True)
        self.SBZO.setFlag(nuke.STARTLINE)
        self.SOZO = nuke.Boolean_Knob("one_zero_one", "Set 1<0>1", True)
        self.SOZO.setFlag(nuke.STARTLINE)
        self.SZOZ = nuke.Boolean_Knob("zero_one_zero", "Set 0<1>0", True)
        self.SZOZ.setFlag(nuke.STARTLINE)
        self.SCF = nuke.Boolean_Knob("set_current_frame", "Set Current Frame",
                                     True)
        self.SCF.setFlag(nuke.STARTLINE)
        self.ViewerMenu = nuke.Text_Knob(
            "viewer_menu", "",
            "<br><font color='dark grey' size='4'><b>Python Scripts - "
            "Viewer Menu</b></font>")
        self.SVC = nuke.Boolean_Knob("set_viewer_channel",
                                     "Set Viewer channels to RGBA", True)
        self.SIPL = nuke.Boolean_Knob("set_ip_label", "Set IP name as label",
                                      True)
        self.SIPL.setFlag(nuke.STARTLINE)
        self.div3 = nuke.Text_Knob("div3", "", " ")
        self.SavePref = nuke.PyScript_Knob("save_pref", " Save Preferences ")
        self.DefaultPref = nuke.PyScript_Knob("default_pref",
                                              " Set to Default ")

        if os.path.isfile(platform_pref_path()):
            import Bc_ToolSet_preferences as pref
            # Gizmo Color
            if pref.gizmo_color != 2139062271:
                self.GzColor.setValue(pref.gizmo_color)
            # Save Log
            if pref.save_log is True:
                self.SL.setValue(True)
            # Gizmos
            if pref.Bc_ShuffleMatte is False:
                self.ShuffleMatte.setValue(False)
            if pref.Bc_LBGrain is False:
                self.LBGrain.setValue(False)
            if pref.Bc_RGBLuma is False:
                self.RGBLuma.setValue(False)
            if pref.Bc_RGBShadow is False:
                self.RGBShadow.setValue(False)
            if pref.Bc_Contrast is False:
                self.Contrast.setValue(False)
            if pref.Bc_Palette is False:
                self.Palette.setValue(False)
            if pref.Bc_CameraAim is False:
                self.CameraAim.setValue(False)
            if pref.Bc_CameraAim9 is False:
                self.CameraAim9.setValue(False)
            if pref.Bc_LightAim is False:
                self.LightAim.setValue(False)
            if pref.Bc_LightAim9 is False:
                self.LightAim9.setValue(False)
            if pref.Bc_Timecode is False:
                self.Timecode.setValue(False)
            if pref.Bc_InfoText is False:
                self.InfoText.setValue(False)
            # Python Scripts - Nuke Menu
            if pref.node_graph_grid is False:
                self.NGG.setValue(False)
            if pref.bring_down_viewer is False:
                self.BDV.setValue(False)
            if pref.smart_floating_notepad is False:
                self.SFN.setValue(False)
            if pref.highlight_node is False:
                self.HN.setValue(False)
            if pref.master_disable is False:
                self.MD.setValue(False)
            if pref.multi_knob_values is False:
                self.MKV.setValue(False)
            if pref.cycle_merge_operation is False:
                self.CMO.setValue(False)
            if pref.cycle_shuffle_in is False:
                self.CSI.setValue(False)
            if pref.shuffle_exr_passes is False:
                self.SP.setValue(False)
            if pref.label_shuffle is False:
                self.LS.setValue(False)
            if pref.read_from_write is False:
                self.RFW.setValue(False)
            if pref.delete_error_read is False:
                self.DARE.setValue(False)
            if pref.delete_thumbs_tmp is False:
                self.DATE.setValue(False)
            if pref.open_read_folder is False:
                self.ORF.setValue(False)
            if pref.open_nuke_file_folder is False:
                self.ONFF.setValue(False)
            if pref.open_dot_nuke is False:
                self.ODN.setValue(False)
            if pref.open_pp_folder is False:
                self.OSPPF.setValue(False)
            # Python Scripts - Animation Menu
            if pref.link_roto is False:
                self.LRB.setValue(False)
            if pref.forward_zero_one is False:
                self.SFZO.setValue(False)
            if pref.forward_one_zero is False:
                self.SF0Z.setValue(False)
            if pref.backward_one_zero is False:
                self.SB0Z.setValue(False)
            if pref.backward_zero_one is False:
                self.SBZO.setValue(False)
            if pref.one_zero_one is False:
                self.SOZO.setValue(False)
            if pref.zero_one_zero is False:
                self.SZOZ.setValue(False)
            if pref.set_current_frame is False:
                self.SCF.setValue(False)
            # Python Scripts - Viewer Menu
            if pref.set_viewer_channel is False:
                self.SVC.setValue(False)
            if pref.set_ip_label is False:
                self.SIPL.setValue(False)

        for each in (self.PrPref, self.div0, self.GzColor, self.div1,
                     self.div2, self.PManager, self.SL, self.Gizmos,
                     self.ShuffleMatte, self.LBGrain, self.RGBLuma,
                     self.RGBShadow, self.Contrast, self.Palette,
                     self.CameraAim, self.CameraAim9, self.LightAim,
                     self.LightAim9, self.Timecode, self.InfoText,
                     self.NukeMenu, self.NGG, self.BDV, self.SFN, self.HN,
                     self.MD, self.MKV, self.CMO, self.CSI, self.SP, self.LS,
                     self.RFW, self.DARE, self.DATE, self.ORF, self.ONFF,
                     self.ODN, self.OSPPF, self.AnimationMenu, self.LRB,
                     self.SFZO, self.SF0Z, self.SB0Z, self.SBZO, self.SOZO,
                     self.SZOZ, self.SCF, self.ViewerMenu, self.SVC, self.SIPL,
                     self.div3, self.SavePref, self.DefaultPref):
            self.addKnob(each)
예제 #4
0
def addPreferences():
    '''
    Add knobs to the preferences needed for this module to work properly.
    '''
    
    homeFolder = os.getenv('HOME').replace('\\','/') + '/.nuke'
    
    addToPreferences(nuke.Tab_Knob('hotboxLabel','W_hotbox'))
    addToPreferences(nuke.Text_Knob('hotboxGeneralLabel','<b>General</b>'))

    #version knob to check whether the hotbox was updated
    versionKnob = nuke.String_Knob('hotboxVersion','version')
    versionKnob.setValue(version)
    addToPreferences(versionKnob)
    preferencesNode.knob('hotboxVersion').setVisible(False)

    #location knob
    locationKnob = nuke.File_Knob('hotboxLocation','Hotbox location')

    tooltip = "The folder on disk the Hotbox uses to store the Hotbox buttons. Make sure this path links to the folder containing the 'All','Single' and 'Multiple' folders."

    locationKnobAdded = addToPreferences(locationKnob, tooltip)

    if locationKnobAdded != None:
        locationKnob.setValue(homeFolder + '/W_hotbox')

    #icons knob
    iconLocationKnob = nuke.File_Knob('hotboxIconLocation','Icons location')
    iconLocationKnob.setValue(homeFolder +'/icons/W_hotbox')

    tooltip = "The folder on disk the where the Hotbox related icons are stored. Make sure this path links to the folder containing the PNG files."
    addToPreferences(iconLocationKnob, tooltip)

    #open manager button
    openManagerKnob = nuke.PyScript_Knob('hotboxOpenManager','open hotbox manager','W_hotboxManager.showHotboxManager()')
    openManagerKnob.setFlag(nuke.STARTLINE)

    tooltip = "Open the Hotbox Manager."

    addToPreferences(openManagerKnob, tooltip)

    #open in file system button knob
    openFolderKnob = nuke.PyScript_Knob('hotboxOpenFolder','open hotbox folder','W_hotbox.revealInBrowser(True)')

    tooltip = "Open the folder containing the files that store the Hotbox buttons. It's advised not to mess around in this folder unless you understand what you're doing."

    addToPreferences(openFolderKnob, tooltip)

    #delete preferences button knob
    deletePreferencesKnob = nuke.PyScript_Knob('hotboxDeletePreferences','delete preferences','W_hotbox.deletePreferences()')

    tooltip = "Delete all the Hotbox related knobs from the Preferences Panel. After clicking this button the Preferences Panel should be closed by clicking the 'cancel' button."

    addToPreferences(deletePreferencesKnob, tooltip)

    #Launch Label knob
    addToPreferences(nuke.Text_Knob('hotboxLaunchLabel','<b>Launch</b>'))

    #shortcut knob
    shortcutKnob = nuke.String_Knob('hotboxShortcut','Shortcut')
    shortcutKnob.setValue('`')

    tooltip = "The key that triggers the Hotbox. Should be set to a single key without any modifier keys. Spacebar can be defined as 'space'. A restart is required in order for the changes to take effect."

    addToPreferences(shortcutKnob, tooltip)
    global shortcut
    shortcut = preferencesNode.knob('hotboxShortcut').value()

    #trigger mode knob
    triggerDropdownKnob = nuke.Enumeration_Knob('hotboxTriggerDropdown', 'Launch mode',['Press and Hold','Single Tap'])

    tooltip = "The way the hotbox is launched. When set to 'Press and Hold' the Hotbox will appear whenever the shortcut is pressed and disappear as soon as the user releases the key. When set to 'Single Tap' the shortcut will toggle the Hotbox on and off."

    addToPreferences(triggerDropdownKnob, tooltip)

    #close on click
    closeAfterClickKnob = nuke.Boolean_Knob('hotboxCloseOnClick','Close on button click')
    closeAfterClickKnob.setValue(False)
    closeAfterClickKnob.clearFlag(nuke.STARTLINE)

    tooltip = "Close the Hotbox whenever a button is clicked (excluding submenus obviously). This option will only take effect when the launch mode is set to 'Single Tap'."

    addToPreferences(closeAfterClickKnob, tooltip)

    #Appearence knob
    addToPreferences(nuke.Text_Knob('hotboxAppearanceLabel','<b>Appearance</b>'))

    #color dropdown knob
    colorDropdownKnob = nuke.Enumeration_Knob('hotboxColorDropdown', 'Color scheme',['Maya','Nuke','Custom'])

    tooltip = "The color of the buttons when selected. Options are 'Maya' (Autodesk Maya's muted blue), 'Nuke' (Nuke's bright orange) or 'Custom' (which lets the user pick a color)."

    addToPreferences(colorDropdownKnob, tooltip)

    #custom color knob
    colorCustomKnob = nuke.ColorChip_Knob('hotboxColorCustom','')
    colorCustomKnob.clearFlag(nuke.STARTLINE)

    tooltip = "The color of the buttons when selected, when the color dropdown is set to 'Custom'."

    addToPreferences(colorCustomKnob, tooltip)

    #hotbox center knob
    colorHotboxCenterKnob = nuke.Boolean_Knob('hotboxColorCenter','Colorize hotbox center')
    colorHotboxCenterKnob.setValue(True)
    colorHotboxCenterKnob.clearFlag(nuke.STARTLINE)

    tooltip = "Color the center button of the hotbox depending on the current selection. When unticked the center button will be coloured a lighter tone of grey."

    addToPreferences(colorHotboxCenterKnob, tooltip)

    #fontsize knob
    fontSizeKnob = nuke.Int_Knob('hotboxFontSize','Font size')
    fontSizeKnob.setValue(9)

    tooltip = "The font size of the text that appears in the hotbox buttons, unless defined differently on a per-button level."

    addToPreferences(fontSizeKnob, tooltip)

    #transparency knob
    opaqueKnob = nuke.Boolean_Knob('hotboxOpaqueBackground', 'Disable transparancy')
    opaqueKnob.setValue(False)
    opaqueKnob.setFlag(nuke.STARTLINE)

    tooltip = "This option was introduced because the Hotbox might have some trouble displaying correctly on Linux running a KDE environment.\n\nIt's recommanded to fix this problem by changing the KDE system settings. Alternatively the transparency can be disabled completely. This option is also available on Windows and Mac OSX."

    addToPreferences(opaqueKnob, tooltip)

    #Check if the compositing manager is running. If thats not the case, disable the transparancy.
    if not preferencesNode.knob('hotboxOpaqueBackground').value():
        try:
            if not QtGui.QX11Info.isCompositingManagerRunning():
                preferencesNode.knob('hotBoxOpaqueBackground').setValue(True)
        except:
            pass

    addToPreferences(nuke.Text_Knob('hotboxItemsLabel','<b>Items per Row</b>'))

    #row amount selection knob
    rowAmountSelectionKnob = nuke.Int_Knob('hotboxRowAmountSelection', 'Selection specific')
    rowAmountSelectionKnob.setValue(3)

    tooltip = "The maximum amount of buttons a row in the upper half of the Hotbox can contain. When the row's maximum capacity is reached a new row will be started. This new row's maximum capacity will be incremented by the step size."

    addToPreferences(rowAmountSelectionKnob, tooltip)

    #row amount all knob
    rowAmountSelectionAll = nuke.Int_Knob('hotboxRowAmountAll','All')
    rowAmountSelectionAll.setValue(3)

    tooltip = "The maximum amount of buttons a row in the lower half of the Hotbox can contain. When the row's maximum capacity is reached a new row will be started.This new row's maximum capacity will be incremented by the step size."

    addToPreferences(rowAmountSelectionAll, tooltip)

    #stepsize knob
    stepSizeKnob = nuke.Int_Knob('hotboxRowStepSize','Step size')
    stepSizeKnob.setValue(1)

    tooltip = "The amount a buttons every new row's maximum capacity will be increased by. Having a number unequal to zero will result in a triangular shape when having multiple rows of buttons."

    addToPreferences(stepSizeKnob, tooltip)

    #spawnmode knob
    spawnModeKnob = nuke.Boolean_Knob('hotboxButtonSpawnMode','Add new buttons to the sides')
    spawnModeKnob.setValue(True)
    spawnModeKnob.setFlag(nuke.STARTLINE)

    tooltip = "Add new buttons left and right of the row alternately, instead of to the right, in order to preserve muscle memory."

    addToPreferences(spawnModeKnob, tooltip)

    #hide the iconLocation knob if environment varible called 'W_HOTBOX_HIDE_ICON_LOC' is set to 'true' or '1'
    preferencesNode.knob('hotboxIconLocation').setVisible(True)
    if 'W_HOTBOX_HIDE_ICON_LOC' in os.environ.keys():
        if os.environ['W_HOTBOX_HIDE_ICON_LOC'].lower() in ['true','1']:
            preferencesNode.knob('hotboxIconLocation').setVisible(False)

    savePreferencesToFile()
예제 #5
0
def addPreferences():
    '''
    Add knobs to the preferences needed for this module to work properly.
    '''

    homeFolder = os.getenv('HOME').replace('\\', '/') + '/.nuke'

    addToPreferences(nuke.Tab_Knob('hotboxLabel', 'W_hotbox'))

    addToPreferences(nuke.Text_Knob('hotboxGeneralLabel', '<b>General</b>'))

    locationKnob = nuke.File_Knob('hotboxLocation', 'Hotbox location')
    locationKnobAdded = addToPreferences(locationKnob)
    if locationKnobAdded != None:
        location = homeFolder + '/W_hotbox'
        for i in ['', 'All', 'Single', 'Multiple', 'Single/No Selection']:
            try:
                os.mkdir(location + '/' + i)
            except:
                pass
        locationKnob.setValue(location)

    iconLocationKnob = nuke.File_Knob('iconLocation', 'Icons location')
    iconLocationKnob.setValue(homeFolder + '/icons/W_hotbox')
    addToPreferences(iconLocationKnob)

    shortcutKnob = nuke.String_Knob('hotboxShortcut', 'shortcut')
    shortcutKnob.setValue('`')
    addToPreferences(shortcutKnob)
    global shortcut
    shortcut = preferencesNode.knob('hotboxShortcut').value()

    opaqueKnob = nuke.Boolean_Knob('hotboxOpaqueBackground',
                                   'Disable transparancy')
    opaqueKnob.setValue(False)
    opaqueKnob.setFlag(nuke.STARTLINE)
    addToPreferences(opaqueKnob)

    openManagerKnob = nuke.PyScript_Knob(
        'hotboxOpenManager', 'open hotbox manager',
        'W_hotboxManager.showHotboxManager()')
    openManagerKnob.setFlag(nuke.STARTLINE)
    addToPreferences(openManagerKnob)

    openFolderKnob = nuke.PyScript_Knob('hotboxOpenFolder',
                                        'open hotbox folder',
                                        'W_hotbox.revealInBrowser(True)')
    addToPreferences(openFolderKnob)

    deletePreferencesKnob = nuke.PyScript_Knob('hotboxDeletePreferences',
                                               'delete preferences',
                                               'W_hotbox.deletePreferences()')
    addToPreferences(deletePreferencesKnob)

    addToPreferences(
        nuke.Text_Knob('hotboxAppearanceLabel', '<b>Appearance</b>'))

    colorDropdownKnob = nuke.Enumeration_Knob('hotboxColorDropdown',
                                              'Color scheme',
                                              ['Maya', 'Nuke', 'Custom'])
    addToPreferences(colorDropdownKnob)

    colorCustomKnob = nuke.ColorChip_Knob('hotboxColorCustom', '')
    colorCustomKnob.clearFlag(nuke.STARTLINE)
    addToPreferences(colorCustomKnob)

    colorHotboxCenterKnob = nuke.Boolean_Knob('hotboxColorCenter',
                                              'Colorize hotbox center')
    colorHotboxCenterKnob.setValue(True)
    colorHotboxCenterKnob.clearFlag(nuke.STARTLINE)
    addToPreferences(colorHotboxCenterKnob)

    addToPreferences(nuke.Text_Knob('hotboxItemsLabel',
                                    '<b>Items per Row</b>'))

    rowAmountSelectionKnob = nuke.Int_Knob('hotboxRowAmountSelection',
                                           'Selection specific')
    rowAmountSelectionAll = nuke.Int_Knob('hotboxRowAmountAll', 'All')

    for knob in [rowAmountSelectionKnob, rowAmountSelectionAll]:
        knob.setValue(3)
        addToPreferences(knob)

    stepSizeKnob = nuke.Int_Knob('hotboxRowStepSize', 'Step size')
    stepSizeKnob.setValue(1)
    addToPreferences(stepSizeKnob)

    spawnModeKnob = nuke.Boolean_Knob('hotboxButtonSpawnMode',
                                      'Add new buttons to the sides')
    spawnModeKnob.setValue(True)
    spawnModeKnob.setFlag(nuke.STARTLINE)
    addToPreferences(spawnModeKnob)

    #Check if the compositing manager is running. If thats not the case, disable the transparancy.
    if not preferencesNode.knob('hotboxOpaqueBackground').value():
        try:
            if not QtGui.QX11Info.isCompositingManagerRunning():
                preferencesNode.knob('hotBoxOpaqueBackground').setValue(True)
        except:
            pass
예제 #6
0
        def __init__(self, n):
            nukescripts.PythonPanel.__init__(self, 'shuffle channels')
            self.n = n
            self.channels = self.n.channels()

            # Layers list builder
            self.layers = []
            for i in range(len(self.channels)):
                chanName = self.channels[i].split('.')[0]
                if chanName not in self.layers and 'rgba' not in chanName:
                    self.layers.append(chanName)

            # UI
            self.tabGroup = nuke.BeginTabGroup_Knob('tabGroup', '')
            self.addKnob(self.tabGroup)
            # Layers Tab
            self.layersTab = nuke.Tab_Knob('layersTab', 'channels')
            self.addKnob(self.layersTab)

            availableNodes = '%s (%s node)' % (self.n.name(), self.n.Class())
            self.selectedNodeName = nuke.Text_Knob('selectedNodeName',
                                                   'selected node: ',
                                                   availableNodes)
            self.addKnob(self.selectedNodeName)

            self.separator = nuke.Text_Knob('separator', '')
            self.addKnob(self.separator)

            self.presets = nuke.Enumeration_Knob('presets',
                                                 '', ['                   '])
            self.addKnob(self.presets)

            self.listLayers = []
            for i in range(len(self.layers)):
                layer = nuke.Boolean_Knob('layer'+str(i), str(self.layers[i]))
                layer.setValue(True)
                layer.setEnabled(False)
                self.addKnob(layer)
                layer.setFlag(4096)
                self.listLayers.append(layer)

            # Prefs Tab
            self.prefsTab = nuke.Tab_Knob('prefsTab', 'preferences')
            self.addKnob(self.prefsTab)

            self.text1 = nuke.Text_Knob('texte_separation',
                                        'generate')
            self.addKnob(self.text1)

            self.autocrop = nuke.Boolean_Knob('autocrop', 'Autocrop')
            self.addKnob(self.autocrop)
            self.autocrop.setFlag(4096)

            self.postage = nuke.Boolean_Knob('postage', 'Postage stamp')
            self.addKnob(self.postage)
            self.postage.setFlag(4096)

            self.remove = nuke.Boolean_Knob('remove', 'Remove node')
            self.addKnob(self.remove)
            self.remove.setFlag(4096)

            self.grade = nuke.Boolean_Knob('grade', 'Grade node')
            self.addKnob(self.grade)
            self.grade.setFlag(4096)

            self.noShuffLabel = nuke.Boolean_Knob('noShuffLabel',
                                                  'remove label from Shuffles')
            self.noShuffLabel.setValue(True)
            self.noShuffLabel.setFlag(4096)
            self.noShuffLabel.setVisible(False)
            self.addKnob(self.noShuffLabel)

            self.bdrop = nuke.Boolean_Knob('bdrop', 'Backdrop')
            self.addKnob(self.bdrop)
            self.bdrop.setFlag(4096)

            self.bdropColor = nuke.ColorChip_Knob('bdropColor',
                                                  'backDrop color')
            self.addKnob(self.bdropColor)
            self.bdropColor.setDefaultValue([926365441])

            self.text = nuke.Text_Knob('texte_separation',
                                       'separation between nodes')
            self.addKnob(self.text)

            self.separation = nuke.Double_Knob('separation',
                                               '')
            self.addKnob(self.separation)
            self.separation.setFlag(4096)
            self.separation.setRange(100, 400)
            self.separation.setDefaultValue([200])

            self.shuffLayersColor = nuke.ColorChip_Knob('shuffLayersColor',
                                                        'Shuffle color')
            self.addKnob(self.shuffLayersColor)
            prefNode = nuke.toNode('preferences')['NodeColour05Color'].value()
            self.shuffLayersColor.setDefaultValue([prefNode])

            self.EndTab = nuke.EndTabGroup_Knob('endTabGroup', '')
            self.addKnob(self.EndTab)
예제 #7
0
  def __init__(self, n):
    nukescripts.PythonPanel.__init__(self, 'shuffle channels')
    self.n = n
    self.channels = self.n.channels()

  #def builder(self):
###layers list builder
    self.layers = []
    for i in range ( len ( self.channels ) ):
      if self.channels[i].split('.')[0] not in self.layers :
        self.layers.append ( self.channels[i].split('.')[0] )

#UI######################################################################################################################
    self.tabGroup = nuke.BeginTabGroup_Knob ('tabGroup', '')
    self.addKnob (self.tabGroup)
##layersTab
    self.layersTab = nuke.Tab_Knob ('layersTab', 'layers')
    self.addKnob (self.layersTab)
    
    self.selectedNodeName = nuke.Text_Knob ( 'selectedNodeName', 'selected node: ', '%s, %s node' %( self.n.name(), self.n.Class() ) )
    self.addKnob (self.selectedNodeName)
    
    self.separator = nuke.Text_Knob ( 'separator', '')
    self.addKnob (self.separator)
    
    self.presets = nuke.Enumeration_Knob ('presets', '', ['                   '])
    self.addKnob (self.presets)

    self.savePreset = nuke.PyScript_Knob ('savePreset', 'save preset', 'shuffleChannels.savePreset()')
    #self.addKnob (self.savePreset)
    
    self.removePreset = nuke.PyScript_Knob ('deletePreset', 'delete preset', 'shuffleChannels.deletePreset()')
    #self.addKnob (self.removePreset)
    
    for i in range ( len ( self.layers ) ):
      exec "self.layer%s = ''" %( i )
      exec "self.layer%s = nuke.Boolean_Knob ('layer%s', '%s')" %( i, i, self.layers[i] )
      exec "self.addKnob (self.layer%s)" %i
      exec "self.layer%s.setFlag(4096)" %i
      
    #self.selectAllLayers = nuke.PyScript_Knob ('selectAllLayers', 'select all layers', "shuffleChannels.selectAll()")
    #self.addKnob (self.selectAllLayers)
    #self.selectAllLayers.setFlag(4096)
    
    #self.deselectAllLayers = nuke.PyScript_Knob ('deselectAllLayers', 'deselect all layers', "shuffleChannels.deselectAll()")
    #self.addKnob (self.deselectAllLayers)

##channelsTab
    #self.channelsTab = nuke.Tab_Knob ('channelsTab', 'channels')
    #self.addKnob (self.channelsTab)
    #for i in range ( len ( self.channels ) ):
      #exec "self.channel%s = ''" %( i )
      #exec "self.channel%s = nuke.Boolean_Knob ('channel%s', '%s')" %( i, i, self.channels[i] )
      #exec "self.addKnob (self.channel%s)" %i
      #exec "self.channel%s.setFlag(4096)" %i
    
##prefsTab
    self.prefsTab = nuke.Tab_Knob ('prefsTab', 'preferences')
    self.addKnob (self.prefsTab)
    
    self.unPremult = nuke.Boolean_Knob ('unPremult', 'add unpremult / premult nodes')
    self.addKnob (self.unPremult)
    self.unPremult.setFlag (4096)
    
    self.remove = nuke.Boolean_Knob ('remove', 'add remove node')
    self.addKnob  (self.remove)
    self.remove.setFlag(4096)
  
    self.grade = nuke.Boolean_Knob ('grade', 'add grade node')
    self.addKnob  (self.grade)
    self.grade.setFlag(4096)
    
    self.merge = nuke.Boolean_Knob ('merge', 'add merge node')
    self.addKnob  (self.merge)
    self.merge.setFlag(4096)
    self.operation = nuke.Enumeration_Knob ('operation', '  |    operation', [ 'atop', 'average', 'color-burn', 'color-dodge', 'conjoint-over', 'copy', 'difference', 'disjoint-over', 'divide', 'exclusion', 'from', 'geometric', 'hard-light', 'hypot', 'in', 'mask', 'matte', 'max', 'min', 'minus', 'multiply', 'out', 'over', 'overlay', 'plus', 'screen', 'soft-light', 'stencil', 'under', 'xor'])
    self.addKnob (self.operation)
    self.operation.clearFlag(4096)
    self.operation.setValue('plus')
    
    self.copyAlpha = nuke.Boolean_Knob ('copyAlpha', 'add copyAlpha node')
    self.addKnob  (self.copyAlpha)
    self.copyAlpha.setFlag(4096)
    
    self.noShuffLabel = nuke.Boolean_Knob ('noShuffLabel', 'remove label from Shuffles')
    self.addKnob  (self.noShuffLabel)
    self.noShuffLabel.setFlag(4096)
    
    self.separation = nuke.Double_Knob ('separation', 'separation between nodes')
    self.addKnob (self.separation)
    self.separation.setFlag(4096)
    self.separation.setRange (100, 400)
    self.separation.setDefaultValue ([200])
    
    self.shuffLayersColor = nuke.ColorChip_Knob ('shuffLayersColor', 'Shuffle color')
    self.addKnob (self.shuffLayersColor)
    self.shuffLayersColor.setDefaultValue([nuke.toNode('preferences')['NodeColour05Color'].value()])
    self.shuffLayersColor.setFlag(4096)
    
    self.bdrop = nuke.Boolean_Knob ('bdrop', 'add backDrop')
    self.addKnob  (self.bdrop)
    self.bdrop.setFlag(4096)
    
    self.bdropColor = nuke.ColorChip_Knob ('bdropColor', 'backDrop color')
    self.addKnob (self.bdropColor)
    self.bdropColor.setDefaultValue([926365441])
    
    self.separation01 = nuke.Text_Knob ('separation01', '')
    self.addKnob (self.separation01)
    
    self.EndTab = nuke.EndTabGroup_Knob ('endTabGroup', '')
    self.addKnob ( self.EndTab )