def registerNukePanel(): '''Register widget as a Nuke panel and add callback for saveing scripts''' import nuke import nukescripts nukescripts.registerWidgetAsPanel('ToDoList.MainWindow', 'To Do List', MainWindow.appName) nuke.addOnScriptSave(findAndReload) nuke.addOnScriptLoad(findAndReload)
def runPane(): paneExistsCheck = nuke.getPaneFor('org.vfxwiki.nuketoolkit') if not paneExistsCheck: pane = nuke.getPaneFor('Properties.1') nukescripts.registerWidgetAsPanel('toolSetWidget', 'openNuke', 'org.vfxwiki.nuketoolkit', True).addToPane(pane) else: nuke.message("errr. unable to load pane, as it already exists. \nClose the 'WebTools' pane, and try again.")
def addColorPalettePanel(): global colorPalettePanel try: colorPalettePanel = nukescripts.registerWidgetAsPanel('nuke.ColorPalettePane', 'Color Palette', 'ColorPalettePane') colorPalettePanel.addToPane(nuke.getPaneFor('Properties.1')) except: colorPalettePanel = nukescripts.registerWidgetAsPanel('nuke.ColorPalettePane', 'Color Palette', 'ColorPalettePane')
def registerNukePanel(): """Register widget as a Nuke panel and add callback for saveing scripts""" import nuke import nukescripts nukescripts.registerWidgetAsPanel("ToDoList.MainWindow", "To Do List", MainWindow.appName) nuke.addOnScriptSave(findAndReload) nuke.addOnScriptLoad(findAndReload)
def runPane(): paneExistsCheck = nuke.getPaneFor('org.vfxwiki.nuketoolkit') if not paneExistsCheck: pane = nuke.getPaneFor('Properties.1') nukescripts.registerWidgetAsPanel('toolSetWidget', 'openNuke', 'org.vfxwiki.nuketoolkit', True).addToPane(pane) else: nuke.message( "errr. unable to load pane, as it already exists. \nClose the 'WebTools' pane, and try again." )
def ueRender(foo, currentNode=None): p = nukescripts.registerWidgetAsPanel("ueCommonRender.Render", "ueRender", "ue.panel.ueRender", create=True) ueCommonRender.setRenderFrom(getWriteNodeList()) ueCommonRender.setCurrentRender(currentNode) if p.showModalDialog(): runRender(ueCommonRender.getValues()) nukescripts.unregisterPanel("ue.panel.ueRender", lambda: "return")
def ueOpen(): p = nukescripts.registerWidgetAsPanel("ueCommonOpen.Open", "ueOpen", "ue.panel.ueOpen", create=True) p.setMinimumSize(600, 940) ueCommonOpen.setClasses(__ueclasses__) if p.showModalDialog(): spec = ueCommonOpen.getValues() version = ueAssetUtils.getVersions(spec)[spec.vers-1] nuke.scriptOpen(os.path.join(version["path"], version["file_name"]+".nk")) nuke.tprint("Opened %s" % spec) nukescripts.unregisterPanel("ue.panel.ueOpen", lambda: "return")
def ueSaveWrite(): p = nukescripts.registerWidgetAsPanel("ueCommonSave.Save", "ueSave", "ue.panel.ueSave", create=True) p.setMinimumSize(400, 600) ueCommonSave.setClasses(__ueclasses_write__) if p.showModalDialog(): spec, dbMeta = ueCommonSave.getValues() n = nuke.thisNode() n.knob("proj").setValue(spec.proj) n.knob("grp").setValue(spec.grp) n.knob("asst").setValue(spec.asst) n.knob("elclass").setValue(spec.elclass) n.knob("eltype").setValue(spec.eltype) n.knob("elname").setValue(spec.elname) nukescripts.unregisterPanel("ue.panel.ueSave", lambda: "return")
def ueOpenReadGeo(): p = nukescripts.registerWidgetAsPanel("ueCommonOpen.Open", "ueOpen", "ue.panel.ueOpen", create=True) p.setMinimumSize(600, 940) ueCommonOpen.setClasses(__ueclasses_read_geo__) if p.showModalDialog(): spec = ueCommonOpen.getValues() n = nuke.thisNode() n.knob("proj").setValue(spec.proj) n.knob("grp").setValue(spec.grp) n.knob("asst").setValue(spec.asst) n.knob("elclass").setValue(spec.elclass) n.knob("eltype").setValue(spec.eltype) n.knob("elname").setValue(spec.elname) n.knob("vers").setValue(int(spec.vers)) nukescripts.unregisterPanel("ue.panel.ueOpen", lambda: "return")
def ueSaveAs(): # if not ueNuke.ueScriptSanityCheck(): # return app = QtGui.QApplication.allWidgets() i = 0 for widget in app: if str(type(widget)) == "<class 'PyQt4.QtGui.QStackedWidget'>": name = "ueSaveThumbs_%04d.png" % i QtGui.QPixmap.grabWindow(widget.winId()).save(os.path.join(os.getenv("ASST_ROOT"), "tmp", name), "png") i += 1 p = nukescripts.registerWidgetAsPanel("ueCommonSave.Save", "ueSave", "ue.panel.ueSave", create=True) p.setMinimumSize(400, 600) ueCommonSave.setClasses(__ueclasses__) if p.showModalDialog(): spec, dbMeta = ueCommonSave.getValues() ueNukeUtils.saveUtility(spec, dbMeta=dbMeta) ueFileUtils.deleteFiles(os.path.join(os.path.join(os.getenv("ASST_ROOT"), "tmp", "ueSaveThumbs_*.png"))) nukescripts.unregisterPanel("ue.panel.ueSave", lambda: "return")
print("%s entries" % len(data)) for r, d in enumerate(data): #r: row number, d: data for this row - 'SHOT', 'TASK', 'VERSION', 'COMMENTS', 'NOTES' # self.setRowHeight(r,24) for i, c in enumerate(ls_header): # i: column index, c: column title # SHOT: String | TASK: String with completer | VERSION: Integer | COMMENTS: String | NOTES: String setCell(obj_table, d, r, c, i) obj_table.scrollToBottom() # ------------------------------------------------------------------------------ # Instancing and Regestering # ------------------------------------------------------------------------------ try: if nuke.GUI: nukescripts.registerWidgetAsPanel( 'mod_ShotStatusTracker.Core_ShotStatusTracker', 'Shot Status Tracker', 'jiangovfx.ShotStatusTracker') except: app = QtWidgets.QApplication(sys.argv) try: apply_stylesheet(app, theme='dark_teal.xml') except: print("Qt-Material not imported") ShotStatusTracker = Core_ShotStatusTracker() ShotStatusTracker.run() app.exec_()
else: nuke.message("Fail to load file") def browseDir(self): '''open file browser for draft module location''' dir_browse = nuke.getFilename("Pick direcory for modules", pattern='*/', default=self.path.text()) if dir_browse: self.path.setText(dir_browse) self.file.clear() self.file.addItems(listFiles(dir_browse)) else: self.path self.raise_() nukescripts.registerWidgetAsPanel('mod_TestFlight.Core_TestFlight', 'Test Flight (beta)', 'kp.mod_TestFlight') ''' try: app = QtWidgets.QApplication(sys.argv) TestFlight = Core_TestFlight() TestFlight.run() app.exec_() except: TestFlight = Core_TestFlight() TestFlight.run() '''
#mod = modifier_map.get(key) #if mod is not None: #key = mod #if key in self.held_keys: #self.held_keys.remove(key) #&& e = Editor() e.show() GLOBAL_EDITOR = e #&& nukescripts.registerWidgetAsPanel('Editor', 'shortcuts', 'id', create=True) #&& def test_shortcuts(): GLOBAL_EDITOR.setFocus(QtCore.Qt.MouseFocusReason) if not GLOBAL_EDITOR.hasFocus(): raise Exception('Need an editor visible to test') shortcuts = get_shortcuts() for shortcut in shortcuts: modifiers = QtCore.Qt.NoModifier shortcut = shortcut.strip() seq = shortcut.split('+')
#------------------------------------------------------------------------------- #-Supporting Functions #------------------------------------------------------------------------------- def set_widget_margins_to_zero(widget_object): if widget_object: target_widgets = set() target_widgets.add(widget_object.parentWidget().parentWidget()) target_widgets.add(widget_object.parentWidget().parentWidget(). parentWidget().parentWidget()) for widget_layout in target_widgets: try: widget_layout.layout().setContentsMargins(0, 0, 0, 0) except: pass #------------------------------------------------------------------------------- #-Instancing and Register #------------------------------------------------------------------------------- nukescripts.registerWidgetAsPanel('mod_TimelineMarker.Core_TimelineMarker', 'TimelineMarker', 'uk.co.thefoundry.TimelineMarker') TimelineMarker = Core_TimelineMarker()
def listFiles(dirpath): '''list files in the given dir''' path_draft = dirpath.replace('\\', '/') ls_files = [ p for p in os.listdir(path_draft) if p.startswith('upt_') or p.startswith('mod_') or p.startswith('dft_') ] ls_files = [f for f in ls_files if f.endswith('.py')] return ls_files #------------------------------------------------------------------------------- #-Register #------------------------------------------------------------------------------- nukescripts.registerWidgetAsPanel('mod_TestFlight.Core_TestFlight', __TITLE__, 'kp.mod_TestFlight') # if 'upt_' in __file__: # app = QtWidgets.QApplication(sys.argv) # TestFlight = Core_TestFlight() # TestFlight.run() # app.exec_() # else: # TestFlight = Core_TestFlight() # TestFlight.run()
def getJSONPath(self): ''' reutrn file path for the json file Naming convension: <HOME Dir>/.nuke/ShotStatusTracker/<SHOW>_SSTDataset.json /Users/Tianlun/.nuke/TimelineMarker/PHX_SSTDataset.json ''' # Get pipline enviroment variables data_SHOW = os.getenv('PL_SHOW') if os.getenv('PL_SHOW') else 'GENERAL' data_folder = os.path.join(os.getenv('HOME'), '.nuke','ShotStatusTracker') data_filename = "%s_SSTDataset.json" % data_SHOW data_file = os.path.join(data_folder, data_filename) if not os.path.isdir(os.path.dirname(data_file)): os.makedirs(os.path.dirname(data_file)) return data_file try: --nukescripts.registerWidgetAsPanel('mod_ShotStatusTracker.Main_ShotStatusTracker', 'Shot Status Tracker','uk.co.thefoundry.ShotStatusTracker') except: try: app = QtWidgets.QApplication(sys.argv) ShotStatusTracker = Main_ShotStatusTracker() ShotStatusTracker.run() app.exec_() except: ShotStatusTracker = Main_ShotStatusTracker() ShotStatusTracker.run()