Skip to content

Commit 1dbdf9b

Browse files
committed
RBF Manager: added option to use custom names on the RBF setups
1 parent 7a6c840 commit 1dbdf9b

1 file changed

Lines changed: 65 additions & 0 deletions

File tree

release/scripts/mgear/rigbits/rbf_manager2/rbf_manager_ui.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
from mgear.core import anim_utils
7777
from mgear.core import attribute
7878
from mgear.vendor.Qt import QtWidgets, QtCore, QtCompat
79+
from mgear.core import pyqt
7980

8081
# from maya.app.general.mayaMixin import MayaQWidgetDockableMixin
8182
# from mgear.rigbits.six import PY2
@@ -430,6 +431,7 @@ def __init__(self, hideMenuBar=False, newSceneCallBack=True):
430431

431432
self.absWorld = True
432433
self.zeroedDefaults = True
434+
self.customNameDefaults = False
433435
self.currentRBFSetupNodes = []
434436
self.allSetupsInfo = None
435437
self.drivenWidget = []
@@ -601,6 +603,8 @@ def addRBFToSetup(self):
601603
drivenNode = rbf_node.addDrivenGroup(drivenNode)
602604

603605
# Create RBFNode instance, apply settings
606+
if self.customNameDefaults:
607+
setupName = ask_for_name()
604608
if not setupName:
605609
setupName = "{}_WD".format(driverNode)
606610
rbfNode = sortRBF(drivenNode, rbfType=rbfType)
@@ -1877,6 +1881,11 @@ def toggleDefaultType(self, toggleState):
18771881
"""
18781882
self.zeroedDefaults = toggleState
18791883

1884+
def _on_custom_names_toggled(self, checked):
1885+
1886+
self.customNameDefaults = checked
1887+
1888+
18801889
# signal management -------------------------------------------------------
18811890
def connectSignals(self):
18821891
"""connect all the signals in the UI
@@ -2049,6 +2058,14 @@ def createMenuBar(self, hideMenuBar=False):
20492058

20502059
worldSpaceMenuItem.setToolTip(toolTip)
20512060

2061+
menuLabel = "Promp Custom Names"
2062+
self.customNamesItem = settingsMenu.addAction(menuLabel)
2063+
2064+
self.customNamesItem.setCheckable(True)
2065+
self.customNamesItem.setChecked(False)
2066+
2067+
self.customNamesItem.toggled.connect(self._on_custom_names_toggled)
2068+
20522069
# show override -------------------------------------------------------
20532070
additionalFuncDict = getEnvironModules()
20542071
if additionalFuncDict:
@@ -2074,3 +2091,51 @@ def mouseMoveEvent(self, event):
20742091
if event.buttons() == QtCore.Qt.NoButton:
20752092
pos = event.pos()
20762093
self.mousePosition.emit(pos.x(), pos.y())
2094+
2095+
2096+
class NameInputDialog(QtWidgets.QDialog):
2097+
2098+
def __init__(self, parent=pyqt.maya_main_window()):
2099+
super(NameInputDialog, self).__init__(parent)
2100+
2101+
self.setWindowTitle("Enter Name")
2102+
self.setModal(True)
2103+
2104+
# Remove the "?" help button
2105+
self.setWindowFlags(
2106+
self.windowFlags()
2107+
& ~QtCore.Qt.WindowContextHelpButtonHint
2108+
)
2109+
2110+
layout = QtWidgets.QVBoxLayout(self)
2111+
2112+
# Line edit
2113+
self.line_edit = QtWidgets.QLineEdit()
2114+
self.line_edit.setPlaceholderText(
2115+
"<name>_<side><int> // skirt_L0"
2116+
)
2117+
layout.addWidget(self.line_edit)
2118+
2119+
# Buttons
2120+
btn_box = QtWidgets.QDialogButtonBox(
2121+
QtWidgets.QDialogButtonBox.Ok
2122+
| QtWidgets.QDialogButtonBox.Cancel
2123+
)
2124+
layout.addWidget(btn_box)
2125+
2126+
btn_box.accepted.connect(self.accept)
2127+
btn_box.rejected.connect(self.reject)
2128+
2129+
def get_text(self):
2130+
"""Return the string the user typed."""
2131+
return mString.normalize2(self.line_edit.text())
2132+
2133+
2134+
def ask_for_name():
2135+
dlg = NameInputDialog()
2136+
result = dlg.exec()
2137+
2138+
if result == QtWidgets.QDialog.Accepted:
2139+
return dlg.get_text()
2140+
2141+
return None

0 commit comments

Comments
 (0)