コード例 #1
0
    def __init__(self, parent=ka_qtWidgets.getMayaWindow()):
        '''A custom window with a demo set of ui widgets'''
        #init our ui using the MayaWindow as parent
        super(UI, self).__init__(parent)
        #uic adds a function to our class called setupUi, calling this creates all the widgets from the .ui file
        self.setupUi(self)
        self.setObjectName('ka_renameUIWindow')
        self.setWindowTitle(self.title)

        ##name and number
        #self.connect(self.search_lineEdit, QtCore.SIGNAL('returnPressed(const QString&)'), self.update)
        self.connect(self.search_lineEdit,
                     QtCore.SIGNAL('textChanged(const QString&)'),
                     self.loadPreviewResults)
        #self.connect(self.search_lineEdit, QtCore.SIGNAL('returnPressed(const QString&)'), self.loadPreviewResults)
        self.connect(self.searchCaseSensitive_comboBox,
                     QtCore.SIGNAL('currentIndexChanged (int)'),
                     self.loadPreviewResults)
        self.connect(self.scopeKeepPrune_comboBox,
                     QtCore.SIGNAL('currentIndexChanged (int)'),
                     self.loadPreviewResults)
        self.connect(self.searchScope_comboBox,
                     QtCore.SIGNAL('currentIndexChanged (int)'),
                     self.loadPreviewResults)
        self.connect(self.rule1_comboBoxKeepPrune_comboBox,
                     QtCore.SIGNAL('currentIndexChanged (int)'),
                     self.loadPreviewResults)
        self.connect(self.rule1_comboBox,
                     QtCore.SIGNAL('currentIndexChanged (int)'),
                     self.loadPreviewResults)
        self.connect(self.rule1_considerShapecheckBox,
                     QtCore.SIGNAL('stateChanged (int)'),
                     self.loadPreviewResults)
        self.connect(self.rule2_comboBoxKeepPrune_comboBox,
                     QtCore.SIGNAL('currentIndexChanged (int)'),
                     self.loadPreviewResults)
        self.connect(self.rule2_comboBox,
                     QtCore.SIGNAL('currentIndexChanged (int)'),
                     self.loadPreviewResults)
        self.connect(self.rule2_considerShapecheckBox,
                     QtCore.SIGNAL('stateChanged (int)'),
                     self.loadPreviewResults)

        self.connect(self.filter_button, QtCore.SIGNAL('clicked()'),
                     self.filter)

        self.selection = {}
        self.selectionNodeTypes = {}
        self.selectionInheritedNodeTypes = {}
        self.selectionShapeNodeTypes = {}
        self.selectedNodeNames = {}

        self.update()
        self.search_lineEdit.setFocus()
コード例 #2
0
ファイル: __init__.py プロジェクト: 3dkris/ka_maya
    def __init__(self):
        '''A custom window with a demo set of ui widgets'''
        #init our ui using the MayaWindow as parent

        parent = ka_qtWidgets.getMayaWindow()
        super(UI, self).__init__(parent)
        #uic adds a function to our class called setupUi, calling this creates all the widgets from the .ui file
        self.setupUi(self)
        self.setObjectName('ka_renameUIWindow')
        self.setWindowTitle(self.title)
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)



        self.connect(self.searchAndReplace_renameButton, QtCore.SIGNAL('clicked()'), self.rename_searchAndReplace)
        self.connect(self.prefixSuffix_renameButton, QtCore.SIGNAL('clicked()'), self.rename_prefixSuffix)
        self.connect(self.nameAndNumber_renameButton, QtCore.SIGNAL('clicked()'), self.rename_nameAndNumber)
        self.connect(self.renameMode_tabWidget, QtCore.SIGNAL('currentChanged(int)'), self.update)

        #name and number
        self.connect(self.nameAndNumber_lineEdit, QtCore.SIGNAL('textChanged(const QString&)'), self.update)
        self.connect(self.buffer_spinBox, QtCore.SIGNAL('valueChanged(int)'), self.update)
        self.connect(self.numberWith_comboBox, QtCore.SIGNAL('currentIndexChanged (int)'), self.update)
        self.connect(self.numberBy_comboBox, QtCore.SIGNAL('currentIndexChanged (int)'), self.update)

#        self.connect(self.reload_pushButton, QtCore.SIGNAL('clicked()'), self.update)

        #search and replace
        self.connect(self.searchAndReplace_search_lineEdit, QtCore.SIGNAL('returnPressed()'), self.rename_searchAndReplace)
        self.connect(self.searchAndReplace_replace_lineEdit, QtCore.SIGNAL('returnPressed()'), self.rename_searchAndReplace)
        self.connect(self.prefix_lineEdit, QtCore.SIGNAL('returnPressed()'), self.rename_prefixSuffix)
        self.connect(self.suffix_lineEdit, QtCore.SIGNAL('returnPressed()'), self.rename_prefixSuffix)
        self.connect(self.nameAndNumber_lineEdit, QtCore.SIGNAL('returnPressed()'), self.rename_nameAndNumber)

        self.connect(self.searchAndReplace_search_lineEdit, QtCore.SIGNAL('textChanged(const QString&)'), self.update)
        self.connect(self.searchAndReplace_replace_lineEdit, QtCore.SIGNAL('textChanged(const QString&)'), self.update)
        self.connect(self.prefix_lineEdit, QtCore.SIGNAL('textChanged(const QString&)'), self.update)
        self.connect(self.suffix_lineEdit, QtCore.SIGNAL('textChanged(const QString&)'), self.update)

        self.connect(self.searchMode_comboBox, QtCore.SIGNAL('currentIndexChanged (int)'), self.update)
        self.connect(self.searchScope_comboBox, QtCore.SIGNAL('currentIndexChanged (int)'), self.update)

#        self.connect(self.searchAndReplace_reload_pushButton, QtCore.SIGNAL('clicked()'), self.update)

        self.searchAndReplace_search_lineEdit.setTabOrder(self.searchAndReplace_search_lineEdit, self.searchAndReplace_replace_lineEdit)
        self.searchAndReplace_search_lineEdit.setTabOrder(self.searchAndReplace_replace_lineEdit, self.prefix_lineEdit)
        self.searchAndReplace_search_lineEdit.setTabOrder(self.prefix_lineEdit, self.suffix_lineEdit)
        self.searchAndReplace_search_lineEdit.setTabOrder(self.suffix_lineEdit, self.nameAndNumber_lineEdit)

#
        self.update()
        self.nameAndNumber_lineEdit.setFocus()
コード例 #3
0
def getAllKaMenuWidgets():
    allKMenuWidgets = []
    #for widget in PyQt.QtGui.qApp.topLevelWidgets():
        #if hasattr(widget, '__class__'):
            #if widget.__class__.__name__ == 'KMenuWidget':
                #allKMenuWidgets.append(widget)

    for widget in ka_qtWidgets.getMayaWindow().children():
        if hasattr(widget, '__class__'):
            if widget.__class__.__name__ == 'Ka_menuWidget':
                allKMenuWidgets.append(widget)

    return allKMenuWidgets
コード例 #4
0
    def __init__(self, *args, **kwargs):
        #parse ars
        label = kwargs.get('label', None)

        if 'parentMenuItem' in kwargs:
            self.parentMenuItem = kwargs.pop('parentMenuItem')
        else:
            self.parentMenuItem = None

        # get parent
        parent = kwargs.get('parent', None)
        if not parent:
            parent = ka_qtWidgets.getMayaWindow()

        super(Ka_menuWidget, self).__init__(parent=parent, )

        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)

        # style sheet
        self.setStyleSheet(self.STYLE_SHEET)

        # obj variables
        self.menuItems = []
        self.dragMoveState = False
        self.dragMoveStartCursorOffset = None
        self.pinState = False
        self.titleBar = None

        # focus
        #self.setFocusPolicy(QtCore.Qt.ClickFocus)
        self.setFocusPolicy(QtCore.Qt.NoFocus)

        # main widget
        self.mainWidget = QtGui.QWidget(parent=self)
        self.setCentralWidget(self.mainWidget)

        # create Layout
        self.vLayout = QtGui.QVBoxLayout()
        self.vLayout.setSpacing(0)
        self.vLayout.setContentsMargins(QtCore.QMargins(0,0,0,0))

        self.mainWidget.setLayout(self.vLayout)
コード例 #5
0
ファイル: ka_scrubSlider.py プロジェクト: 3dkris/ka_maya
def getScrubSlider():
    mayaWindow = ka_qtWidgets.getMayaWindow()
    for child in mayaWindow.children():
        if hasattr(child, 'objectName'):
            if child.objectName() == 'ka_scrubSlider':
                return child
コード例 #6
0
ファイル: ka_scrubSlider.py プロジェクト: 3dkris/ka_maya
    def __init__(self, sliderRange=[-100, 100], defaultValues=[0], width=500, step=1.0, shiftStep=25,
                 startCommand=None, changeCommand=None, finishCommand=None, hotkeyDict={},
                 rightClickCommand=None, visible=True, graphKwargs={}):
        """
        constructor of scrubSlider.

        Kwargs:
            sliderRange (start int, end int): The slider range

            defaultValues (tuple of ints): the values to start the slider at. The number of default values will
                                           detirmin how many values the slider has. These values also do not need
                                           to be passed in order of value. The first item will be the value being
                                           edited by default

            width (int in pixels): the width of the slider (this also effects the sensitivity of it indirectly)

            step (int): not yet impimented

            mode (string): acceptable values are "clickDrag", and "toggle".

            startCommand (function): a passed in function to run at the start of the scrub

            changeCommand (function): a passed in function to run when the slider changes. The current Value of the slider will be
                                      the first argument passed to the function

            finishCommand (function): a passed in function to run at the end of the scrub (right before the mouse is released
                                       back to the user)

            hotkeyDict (dictionary of string(key) function(value) pairs): This dictionary gives the slider functions to assign to
                                                                          keypresses that will override maya hotkeys while the slider
                                                                          is in use.

            visible: bool - if False, will not show the slider bar on screen

            graphKwargs (dict) - args to be passed when creating the ka_qtWidgets.GraphWidget widget

        """
        super(ScrubWidget, self).__init__(parent=ka_qtWidgets.getMayaWindow())

        self.setFocusPolicy(QtCore.Qt.StrongFocus)

        # store signals
        self.scrubWidgetSignals = ScrubWidgetSignals()

        # vars
        width = 400
        height = 400
        offsetFromMouse = 100

        # get cursor pos
        cursorPos = QtGui.QCursor().pos()

        # size window
        self.setFixedSize(width,height)
        #self.setMask(QtGui.QRegion(-1,-1, self.width()+2, self.height()+2))

        # posistion window
        self.move(cursorPos.x()-(self.width()*0.5), cursorPos.y()+offsetFromMouse)

        cursorPos = self.mapFromGlobal(cursorPos)

        # slider setup math
        self.previousValue = defaultValues[0]
        self.currentValues = defaultValues
        #self.startValues = tuple(defaultValues)
        self.currentValueIndex = 0

        mouseInitialPositionX = cursorPos.x()
        #self.mouseGrabOffset = 0.0
        self.step = step
        self.shiftStep = shiftStep

        self.sliderMax = sliderRange[1]
        self.sliderMin = sliderRange[0]
        self.sliderRange = self.sliderMax - self.sliderMin

        #defaultPercentOfSliderRange = (float(defaultValues[0]) - self.sliderMin) / float(self.sliderRange)

        #self.pixelMin = mouseInitialPositionX - (width * defaultPercentOfSliderRange)
        #self.pixelMax = self.pixelMin + width
        #self.pixelRange = self.pixelMax - self.pixelMin
        self.setMouseMapping()

        # main widget
        self.mainWidget = QtGui.QWidget(parent=self)
        self.setCentralWidget(self.mainWidget)

        # create Layout
        self.vLayout = QtGui.QVBoxLayout()
        self.vLayout.setSpacing(0)
        self.vLayout.setContentsMargins(QtCore.QMargins(0,0,0,0))
        self.mainWidget.setLayout(self.vLayout)

        #if curveFunction:
            #def curveFunctionWrapper(x, curveFunction=curveFunction, scrubWidget=self):
                #"""This funciton's only purpose is so make this object availible to the original function command"""
                #return curveFunction(scrubWidget, x)

            #curveFunction = curveFunctionWrapper

        graphKwargs['min'] = (self.sliderMin, 0)
        graphKwargs['max'] = (self.sliderMax, 1)
        graphKwargs['timeMarkers'] = defaultValues

        self.graphWidget = ka_qtWidgets.GraphWidget(**graphKwargs)
        #self.graphWidget.setFixedSize(width,height)

        self.vLayout.addWidget(self.graphWidget)


        # ACTIONS ---------------------------------------------------------------
        # store input commands
        self.hotkeyDict = hotkeyDict
        self.changeCommand = changeCommand
        self.finishCommand = finishCommand

        @QtCore.Slot(int)
        def scubValueChangedCmd(value, self=self):
            """commands to run when the value of the slider has changed"""
            try:
                #print value

                # get stepped value if SHIFT modifier is down
                modifiers = QtGui.QApplication.keyboardModifiers()
                if modifiers == QtCore.Qt.ShiftModifier:
                    value = self.getSteppedValue(value, self.shiftStep)
                    print 'shift down'
                # update internal variables
                self.previousValue = value
                self.currentValues[self.currentValueIndex]  = value

                # update the marker lines in the graph widget if it is visible
                if self.isVisible():
                    self.graphWidget.setTimeMarker(self.currentValueIndex, value)

                # run the change command with the given value
                if changeCommand is not None:
                    values = list(self.currentValues)
                    values.sort()
                    self.changeCommand(self, values)

            except:
                ka_python.printError()
                self.finish()

        @QtCore.Slot(int)
        def scrubFinishedCmd(self=self):
            """commands to run as finishing"""
            print 'finish22'

            self.releaseMouse()
            self.releaseKeyboard()

            if self.finishCommand is not None:
                self.finishCommand(self)

            self.close()

        self.scrubWidgetSignals.valueChangedSignal.connect(scubValueChangedCmd)
        self.scrubWidgetSignals.finishSignal.connect(scrubFinishedCmd)

        # track mouse and keyboard
        self.setMouseTracking(True)
        self.grabMouse()
        self.grabKeyboard()

        # start command
        if startCommand is not None:
            startCommand(self)

        # popWindow
        self.activateWindow()
        self.setFocus()

        if visible:
            self.show()

        # emit first changed signal
        scrubValue = int(round(self.getScrubValue(mouseInitialPositionX)))
        self.scrubWidgetSignals.valueChangedSignal.emit(scrubValue)