Skip to content
This repository was archived by the owner on Aug 6, 2024. It is now read-only.

Commit

Permalink
SetLabel: add Node Context
Browse files Browse the repository at this point in the history
  • Loading branch information
keymixcookbook committed Jul 12, 2021
1 parent 7a481c9 commit 33c3909
Showing 1 changed file with 26 additions and 8 deletions.
34 changes: 26 additions & 8 deletions _pkg_KuFunc/mod_SetLabel.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ def _version_():
version 2.0
- Add preset buttons for frames and knob values
- Add Node Context support
version 1.0
- Basically working, when run(), prompt a frameless popup with line edit field
Expand Down Expand Up @@ -114,12 +115,12 @@ def __init__(self):
self.setWindowTitle("Set Label")
self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint | QtCore.Qt.Popup)

self.setDefault()
# self.setDefault()

def onPressed(self):
"""change label with enter-key is pressed"""
newLabel = self.lineInput.text()
for n in nuke.selectedNodes():
for n in self.sel_nodes:
n['label'].setValue(newLabel)
self.close()

Expand All @@ -128,24 +129,27 @@ def onPreset(self):
_sender = self.sender()

if _sender is self.btn_frame:
for n in nuke.selectedNodes():
for n in self.sel_nodes:
n['label'].setValue('x%s' % nuke.frame())
elif _sender is self.btn_knob:
sel_knob = self.knoblist.currentText()
n = nuke.selectedNode()
n = self.sel_nodes[0]
n['label'].setValue('[value %s]' % sel_knob)

self.close()

def setDefault(self):
"""get the existing label of selected nodes"""
sel_nodes = nuke.selectedNodes()
if sel_nodes:
context = get_dag()
with context:
self.sel_nodes = nuke.selectedNodes()

if self.sel_nodes != []:
self.lineInput.show()
self.title.setText("<b>Set Label</b>")
self.lineInput.setText(sel_nodes[0]['label'].value())
self.lineInput.setText(self.sel_nodes[0]['label'].value())

n = sel_nodes[0]
n = self.sel_nodes[0]
knobs = filterKnobs(n.knobs())

self.knoblist.clear()
Expand Down Expand Up @@ -190,6 +194,20 @@ def filterKnobs(knobs):
return sorted(ls_filtered)


def get_dag():
"""For DAG context when selecting nodes"""

app = QtWidgets.QApplication
pos = QtGui.QCursor.pos()
widget = app.widgetAt(pos)

#print dir(widget)
context = widget.parent().windowTitle().split('Node Graph')[0].strip()
print(context)

return nuke.root() if context == '' else nuke.toNode(context)





Expand Down

0 comments on commit 33c3909

Please sign in to comment.