def updateTopMenu( self, inMode ): # Delete the existing menu bar's content. barChildren = cmds.menuBarLayout( self.menuBar, query=True, menuArray=True ) if barChildren is not None: for child in barChildren: cmds.deleteUI( child ) # Now fill the menu layout with the active set. if inMode == 'Bits': self.menuEdit = cmds.menu( parent=self.menuBar, label='Edit' ) cmds.menuItem( parent=self.menuEdit, label='Copy Bit Settings', annotation='Copy one bit\'s setting to another.', command=lambda b:FrameUtility.copyBitSettings() ) cmds.menuItem( parent=self.menuEdit, label='Add Child', annotation='Add child bit to another bit.', command=lambda b:FrameUtility.setBitChild() ) cmds.menuItem( parent=self.menuEdit, label='Delete Child', annotation='Remove child bit from selected bit.', command=lambda b:FrameUtility.deleteBitChild() ) elif inMode == 'Component': self.menuJoints = cmds.menu( parent=self.menuBar, label='Joints' ) cmds.menuItem( parent=self.menuJoints, label='Joint', annotation='Creates a node of type jointComponentNode', command=lambda b, a1='jointComponentNode':self.addComponentToObject(a1) ) self.menuControls = cmds.menu( parent=self.menuBar, label='Controls' ) cmds.menuItem( parent=self.menuControls, label='TEMP', annotation='TEMP' ) self.menuDeformers = cmds.menu( parent=self.menuBar, label='Deformers' ) cmds.menuItem( parent=self.menuDeformers, label='TEMP', annotation='TEMP' ) self.menuConstraints = cmds.menu( parent=self.menuBar, label='Constraints' ) cmds.menuItem( parent=self.menuConstraints, label='TEMP', annotation='TEMP' ) elif inMode == 'Module': self.menuFile = cmds.menu( parent=self.menuBar, label='File' ) cmds.menuItem( parent=self.menuFile, label='Save Module XML', annotation='Save the selected frame module to XML.', command=lambda b:FrameUtility.createFrameModuleXML() ) elif inMode == 'Character': self.menuEdit = cmds.menu( parent=self.menuBar, label='Character Item' ) cmds.menuItem( parent=self.menuEdit, label='TEMP', annotation='TEMP' )
def build_bits_gui( self ): ''' Build the bits GUI sub-layout. ''' # Build bits controls # Primitive buttons. self.sphere_btn = QtGui.QToolButton( self ) self.sphere_btn.setStyleSheet( 'border:0' ) self.sphere_btn.setAutoRaise( True ) self.sphere_btn.setIcon( QtGui.QIcon( ':/riggingUI/icons/bit_sphere.png' ) ) self.sphere_btn.setIconSize( QtCore.QSize(32,32) ) self.sphere_btn.setText( 'Sphere' ) self.sphere_btn.clicked.connect( self.primitive_buttons ) self.box_btn = QtGui.QToolButton( self ) self.box_btn.setStyleSheet( 'border:0' ) self.box_btn.setAutoRaise( True ) self.box_btn.setIcon( QtGui.QIcon( ':/riggingUI/icons/bit_box.png' ) ) self.box_btn.setIconSize( QtCore.QSize(32,32) ) self.box_btn.setText( 'Box' ) self.box_btn.clicked.connect( self.primitive_buttons ) self.cylinder_btn = QtGui.QToolButton( self ) self.cylinder_btn.setStyleSheet( 'border:0' ) self.cylinder_btn.setAutoRaise( True ) self.cylinder_btn.setIcon( QtGui.QIcon( ':/riggingUI/icons/bit_cylinder.png' ) ) self.cylinder_btn.setIconSize( QtCore.QSize(32,32) ) self.cylinder_btn.setText( 'Cylinder' ) self.cylinder_btn.clicked.connect( self.primitive_buttons ) self.cone_btn = QtGui.QToolButton( self ) self.cone_btn.setStyleSheet( 'border:0' ) self.cone_btn.setAutoRaise( True ) self.cone_btn.setIcon( QtGui.QIcon( ':/riggingUI/icons/bit_cone.png' ) ) self.cone_btn.setIconSize( QtCore.QSize(32,32) ) self.cone_btn.setText( 'Cone' ) self.cone_btn.clicked.connect( self.primitive_buttons ) self.torus_btn = QtGui.QToolButton( self ) self.torus_btn.setStyleSheet( 'border:0' ) self.torus_btn.setAutoRaise( True ) self.torus_btn.setIcon( QtGui.QIcon( ':/riggingUI/icons/bit_torus.png' ) ) self.torus_btn.setIconSize( QtCore.QSize(32,32) ) self.torus_btn.setText( 'Torus' ) self.torus_btn.clicked.connect( self.primitive_buttons ) # Bit tools. self.match_translation_btn = QtGui.QPushButton( 'Match Translation' ) self.match_translation_btn.setIcon( QtGui.QIcon( ':/riggingUI/icons/icon_match_translation.png' ) ) self.match_translation_btn.setIconSize( QtCore.QSize(16,16) ) self.match_translation_btn.setStyleSheet( 'text-align: left; padding: 4px' ) self.match_translation_btn.clicked.connect( lambda a='tran':TransformUtility.matchTransforms( a ) ) self.match_rotation_btn = QtGui.QPushButton( 'Match Rotation' ) self.match_rotation_btn.setIcon( QtGui.QIcon( ':/riggingUI/icons/icon_match_rotation.png' ) ) self.match_rotation_btn.setIconSize( QtCore.QSize(16,16) ) self.match_rotation_btn.setStyleSheet( 'text-align: left; padding: 4px' ) self.match_rotation_btn.clicked.connect( lambda a='rot':TransformUtility.matchTransforms( a ) ) self.match_all_btn = QtGui.QPushButton( 'Match All' ) self.match_all_btn.setIcon( QtGui.QIcon( ':/riggingUI/icons/icon_match_all.png' ) ) self.match_all_btn.setIconSize( QtCore.QSize(16,16) ) self.match_all_btn.setStyleSheet( 'text-align: left; padding: 4px' ) self.match_all_btn.clicked.connect( lambda a='all':TransformUtility.matchTransforms( a ) ) self.copy_bit_settings_btn = QtGui.QPushButton( 'Copy Bit Settings' ) self.copy_bit_settings_btn.setIcon( QtGui.QIcon( ':/riggingUI/icons/bit_copy_settings.png' ) ) self.copy_bit_settings_btn.setIconSize( QtCore.QSize(16,16) ) self.copy_bit_settings_btn.setStyleSheet( 'text-align: left; padding: 4px' ) self.copy_bit_settings_btn.clicked.connect( lambda:FrameUtility.copyBitSettings() ) self.add_child_btn = QtGui.QPushButton( 'Add Child' ) self.add_child_btn.setIcon( QtGui.QIcon( ':/riggingUI/icons/bit_add_child.png' ) ) self.add_child_btn.setIconSize( QtCore.QSize(16,16) ) self.add_child_btn.setStyleSheet( 'text-align: left; padding: 4px' ) self.add_child_btn.clicked.connect( lambda:FrameUtility.setBitChild() ) self.delete_child_btn = QtGui.QPushButton( 'Delete Child' ) self.delete_child_btn.setIcon( QtGui.QIcon( ':/riggingUI/icons/bit_delete_child.png' ) ) self.delete_child_btn.setIconSize( QtCore.QSize(16,16) ) self.delete_child_btn.setStyleSheet( 'text-align: left; padding: 4px' ) self.delete_child_btn.clicked.connect( lambda:FrameUtility.deleteBitChild() ) # Build bits layout. # Primitive buttons bit_primitives_header = QtGui.QLabel() bit_primitives_header.setText( 'Bit Primitives' ) bit_primitives_header.setAlignment( QtCore.Qt.AlignCenter ) bit_primitives_header.setStyleSheet( 'font:bold; font-size:14px; background-color:#2B2B30' ) primitive_frame = QtGui.QFrame() primitive_frame.setFrameShadow( QtGui.QFrame.Sunken ) primitive_frame.setFrameShape( QtGui.QFrame.Box ) primitive_frame.setLineWidth( 1 ) #self.primitive_groupbox.setStyleSheet( 'border:4px; border-style:outset' ) primitive_layout = QtGui.QHBoxLayout() primitive_layout.addWidget( self.sphere_btn ) primitive_layout.addWidget( self.box_btn ) primitive_layout.addWidget( self.cylinder_btn ) primitive_layout.addWidget( self.cone_btn ) primitive_layout.addWidget( self.torus_btn ) primitive_frame.setLayout( primitive_layout ) # Bit tools. bit_tools_header = QtGui.QLabel() bit_tools_header.setText( 'Bit Tools' ) bit_tools_header.setAlignment( QtCore.Qt.AlignCenter ) bit_tools_header.setStyleSheet( 'font:bold; font-size:14px; background-color:#2B2B30' ) bit_tools_grid = QtGui.QGridLayout() bit_tools_grid.setColumnMinimumWidth( 0, 100 ) bit_tools_grid.setColumnMinimumWidth( 1, 100 ) bit_tools_grid.setColumnMinimumWidth( 2, 100 ) bit_tools_grid.setSpacing( 2 ) bit_tools_grid.setContentsMargins( 0,0,0,0 ) # widget, row, col bit_tools_grid.addWidget( self.match_translation_btn, 0, 0 ) bit_tools_grid.addWidget( self.match_rotation_btn, 0, 1 ) bit_tools_grid.addWidget( self.match_all_btn, 0, 2 ) bit_tools_grid.addWidget( self.copy_bit_settings_btn, 1, 0 ) bit_tools_grid.addWidget( self.add_child_btn, 1, 1 ) bit_tools_grid.addWidget( self.delete_child_btn, 1, 2 ) # Added the bits widgets to the sub-layout of the main window. self.sub_layout.addWidget( bit_primitives_header ) self.sub_layout.addWidget( primitive_frame ) self.sub_layout.addWidget( bit_tools_header ) self.sub_layout.addLayout( bit_tools_grid )