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)
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)
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)
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()
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
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)
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 )