7676from mgear .core import anim_utils
7777from mgear .core import attribute
7878from 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