コード例 #1
0
ファイル: guide.py プロジェクト: Mikfr83/mgear4
 def remove_all(self):
     self.jointNamesList.clearContents()
     self.jointNamesList.setRowCount(0)
     self.jointNamesList.insertRow(0)
     self.jointNamesList.setItem(0, 0, QtWidgets.QTableWidgetItem(""))
     self.jointNamesList.setCurrentCell(0, 0)
     self.apply_names()
コード例 #2
0
    def dropEvent(self, event):
        if not event.isAccepted() and event.source() == self:
            drop_row = self.drop_on(event)

            rows = sorted(set(item.row() for item in self.selectedItems()))
            rows_to_move = [[
                QtWidgets.QTableWidgetItem(self.item(row_index, column_index))
                for column_index in range(self.columnCount())
            ] for row_index in rows]

            for row_index in reversed(rows):
                self.removeRow(row_index)
                if row_index < drop_row:
                    drop_row -= 1

            for row_index, data in enumerate(rows_to_move):
                row_index += drop_row
                self.insertRow(row_index)
                for column_index, column_data in enumerate(data):
                    self.setItem(row_index, column_index, column_data)
            event.accept()
            for row_index in range(len(rows_to_move)):
                for column_index in range(self.columnCount()):
                    self.item(drop_row + row_index,
                              column_index).setSelected(True)
コード例 #3
0
ファイル: guide.py プロジェクト: Mikfr83/mgear4
 def add(self):
     row = max(0, self.jointNamesList.currentRow() or 0)
     self.jointNamesList.insertRow(row)
     item = QtWidgets.QTableWidgetItem("")
     self.jointNamesList.setItem(row, 0, item)
     self.jointNamesList.setCurrentCell(row, 0)
     self.apply_names()
コード例 #4
0
ファイル: guide.py プロジェクト: Mikfr83/mgear4
 def update_name(self, row, column):
     item = self.jointNamesList.item(row, column)
     if row == self.jointNamesList.rowCount() - 1 and item.text():
         self.jointNamesList.insertRow(row + 1)
         self.jointNamesList.setItem(
             row + 1, 0, QtWidgets.QTableWidgetItem(""))
     self.apply_names()
     self.jointNamesList.setCurrentCell(row + 1, 0)
     self.jointNamesList.editItem(self.jointNamesList.currentItem())
コード例 #5
0
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(403, 299)
        self.verticalLayout = QtWidgets.QVBoxLayout(Form)
        self.verticalLayout.setObjectName("verticalLayout")
        self.label = QtWidgets.QLabel(Form)
        self.label.setObjectName("label")
        self.verticalLayout.addWidget(self.label)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.jointNamesList = QtWidgets.QTableWidget(Form)
        self.jointNamesList.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
        self.jointNamesList.setDragDropMode(QtWidgets.QAbstractItemView.NoDragDrop)
        self.jointNamesList.setAlternatingRowColors(True)
        self.jointNamesList.setHorizontalScrollMode(QtWidgets.QAbstractItemView.ScrollPerPixel)
        self.jointNamesList.setObjectName("jointNamesList")
        self.jointNamesList.setColumnCount(1)
        self.jointNamesList.setRowCount(0)
        item = QtWidgets.QTableWidgetItem()
        self.jointNamesList.setHorizontalHeaderItem(0, item)
        self.jointNamesList.horizontalHeader().setCascadingSectionResizes(True)
        self.jointNamesList.horizontalHeader().setDefaultSectionSize(40)
        self.jointNamesList.horizontalHeader().setStretchLastSection(True)
        self.horizontalLayout.addWidget(self.jointNamesList)
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.add_pushButton = QtWidgets.QPushButton(Form)
        self.add_pushButton.setObjectName("add_pushButton")
        self.verticalLayout_2.addWidget(self.add_pushButton)
        self.remove_pushButton = QtWidgets.QPushButton(Form)
        self.remove_pushButton.setObjectName("remove_pushButton")
        self.verticalLayout_2.addWidget(self.remove_pushButton)
        self.removeAll_pushButton = QtWidgets.QPushButton(Form)
        self.removeAll_pushButton.setObjectName("removeAll_pushButton")
        self.verticalLayout_2.addWidget(self.removeAll_pushButton)
        self.line = QtWidgets.QFrame(Form)
        self.line.setMinimumSize(QtCore.QSize(0, 16))
        self.line.setBaseSize(QtCore.QSize(0, 0))
        self.line.setFrameShape(QtWidgets.QFrame.HLine)
        self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line.setObjectName("line")
        self.verticalLayout_2.addWidget(self.line)
        self.moveUp_pushButton = QtWidgets.QPushButton(Form)
        self.moveUp_pushButton.setObjectName("moveUp_pushButton")
        self.verticalLayout_2.addWidget(self.moveUp_pushButton)
        self.moveDown_pushButton = QtWidgets.QPushButton(Form)
        self.moveDown_pushButton.setObjectName("moveDown_pushButton")
        self.verticalLayout_2.addWidget(self.moveDown_pushButton)
        spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout_2.addItem(spacerItem)
        self.horizontalLayout.addLayout(self.verticalLayout_2)
        self.verticalLayout.addLayout(self.horizontalLayout)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
コード例 #6
0
ファイル: guide.py プロジェクト: Mikfr83/mgear4
    def populate_controls(self):
        jointNames = self.root.attr("joint_names").get().split(",")
        if jointNames[-1]:
            jointNames.append("")

        self.jointNamesList.clearContents()
        self.jointNamesList.setRowCount(0)

        for i, name in enumerate(jointNames):
            self.jointNamesList.insertRow(i)
            item = QtWidgets.QTableWidgetItem(name.strip())
            self.jointNamesList.setItem(i, 0, item)
コード例 #7
0
ファイル: channelWrangler.py プロジェクト: mgear-dev/mgear4
    def _setRowItem(self, rowPosition, itemIndex, itemContent):
        """Set the row item

        Args:
            rowPosition (Int): Row Index
            itemIndex (Int): Item Index
            itemContent (Str): Item content

        Returns:
            QTableWidgetItem: Item
        """
        item = QtWidgets.QTableWidgetItem(itemContent)
        self.table.setItem(rowPosition, itemIndex, item)
        return item
コード例 #8
0
ファイル: widgets.py プロジェクト: milesckt/mgear
    def dropEvent(self, event):
        if not event.isAccepted() and event.source() == self:
            drop_row = self.drop_on(event)

            rows = sorted(set(item.row() for item in self.selectedItems()))

            rows_to_move = [[
                QtWidgets.QTableWidgetItem(self.item(row_index, column_index))
                for column_index in range(self.columnCount())
            ] for row_index in rows]

            rows_widgets_to_move = [
                self.cellWidget(row_index, 4) for row_index in rows
            ]

            for row_index in reversed(rows):
                self.removeRow(row_index)
                if row_index < drop_row:
                    drop_row -= 1

            for row_index, data in enumerate(rows_to_move):

                inRow = row_index + drop_row
                self.insertRow(inRow)
                for column_index, column_data in enumerate(data):
                    if column_index != 4:
                        self.setItem(inRow, column_index, column_data)
                # self.setCellWidget(inRow, 4, rows_widgets_to_move[row_index])
                # moving the combo box crash maya. Current workaround is
                # create a new one and destroy the old
                # someone knows better way?  Thanks :)
                operation_comboBox = QtWidgets.QComboBox()
                operation_comboBox.setObjectName("operation")
                operation_comboBox.addItem("Move Channel")
                operation_comboBox.addItem("Proxy Channel")
                size_polizy = QtWidgets.QComboBox.AdjustToContentsOnFirstShow
                operation_comboBox.SizeAdjustPolicy(size_polizy)
                oComboOld = rows_widgets_to_move[row_index]
                self.setCellWidget(inRow, 4, operation_comboBox)
                operation_comboBox.setCurrentIndex(oComboOld.currentIndex())
                oComboOld.deleteLater()

            event.accept()
            for row_index in range(len(rows_to_move)):
                self.item(drop_row + row_index, 0).setSelected(True)
                self.item(drop_row + row_index, 1).setSelected(True)
                self.item(drop_row + row_index, 2).setSelected(True)
                self.item(drop_row + row_index, 3).setSelected(True)
コード例 #9
0
    def config_table(self):

        def value_update(attr_config, *args):
            """Update the attribute from the  channel value

            Args:
                ch (QWidget): The channel widget
                atttr_config (dict): attribute configuration data
                *args: the current value
            """
            if self.trigger_value_update:
                try:
                    cmds.setAttr(self.namespace_sync(attr_config["fullName"]),
                                 args[0])

                    # refresh button color while value update
                    for i in xrange(self.rowCount()):
                        item = self.item(i, 0)
                        attr = item.data(QtCore.Qt.UserRole)
                        if (self.namespace_sync(attr["fullName"])
                                == self.namespace_sync(
                                    attr_config["fullName"])):
                            button = self.cellWidget(i, 1)
                            refresh_key_button_color(
                                button,
                                self.namespace_sync(attr_config["fullName"]))
                            break
                except RuntimeError:
                    fname = self.namespace_sync(attr_config["fullName"])
                    pm.displayWarning("Channel {} not Found.".format(fname)
                                      + " Maybe the channel master"
                                      + " contains not existing channels. "
                                      + "Review Channel Master configuration")

        def open_undo_chunk():
            cmds.undoInfo(openChunk=True)

        def close_undo_chunk():
            cmds.undoInfo(closeChunk=True)

        if not self.chan_config:
            return

        i = 0
        for ch in self.chan_config["channels"]:
            at = self.chan_config["channels_data"][ch]
            at_name = self.namespace_sync(at["fullName"])
            try:
                val = cmds.getAttr(at_name)
            except ValueError:
                pm.displayWarning(
                    "{} not found. Maybe wrong NameSpace?".format(at_name))
                continue
            if at["type"] in cmu.ATTR_SLIDER_TYPES:
                if at["type"] == "long":
                    Type = "int"
                else:
                    Type = "float"
                ch_ctl = pyflow_widgets.pyf_Slider(self,
                                                   Type=Type,
                                                   defaultValue=val,
                                                   sliderRange=(at["min"],
                                                                at["max"]))

                ch_ctl.valueChanged.connect(
                    partial(value_update, at))
                ch_ctl.sliderPressed.connect(open_undo_chunk)
                ch_ctl.sliderReleased.connect(close_undo_chunk)

            elif at["type"] == "bool":

                ch_ctl = QtWidgets.QWidget()
                layout = QtWidgets.QHBoxLayout(ch_ctl)
                cbox = QtWidgets.QCheckBox()
                cbox.setStyleSheet(CHECKBOX_STYLE)
                ch_ctl.setStyleSheet(CHECKBOX_STYLE)
                layout.addWidget(cbox)
                layout.setAlignment(QtCore.Qt.AlignCenter)
                layout.setContentsMargins(0, 0, 0, 0)
                ch_ctl.setLayout(layout)
                if val:
                    cbox.setChecked(True)

                cbox.toggled.connect(
                    partial(value_update, at))

            elif at["type"] == "enum":

                # we handle special naming for separators
                if at["niceName"] == "__________":
                    continue
                else:
                    ch_ctl = QtWidgets.QComboBox()
                    ch_ctl.addItems(at["items"])
                    ch_ctl.setCurrentIndex(val)

                    ch_ctl.currentIndexChanged.connect(
                        partial(value_update, at))

            label_item = QtWidgets.QTableWidgetItem(at["niceName"] + "  ")
            if at["color"]:
                color = QtGui.QColor()
                color.setRgbF(*at["color"])
                label_item.setBackground(color)
            label_item.setData(QtCore.Qt.UserRole, at)
            label_item.setTextAlignment(QtCore.Qt.AlignRight)
            label_item.setToolTip(self.namespace_sync(at["fullName"]))
            label_item.setFlags(label_item.flags() ^ QtCore.Qt.ItemIsEditable)

            key_button = self.create_key_button(at)

            self.insertRow(i)
            self.setRowHeight(i, 17)
            self.setItem(i, 0, label_item)
            self.setCellWidget(i, 1, key_button)
            self.setCellWidget(i, 2, ch_ctl)

            self.track_widgets.append([key_button, ch_ctl])

            i += 1
コード例 #10
0
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(832, 537)
        self.gridLayout = QtWidgets.QGridLayout(Form)
        self.gridLayout.setObjectName("gridLayout")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.channelMapping_tableWidget = TableWidgetDragRowsChannelWrangler(
            Form)
        self.channelMapping_tableWidget.setDragDropMode(
            QtWidgets.QAbstractItemView.InternalMove)
        self.channelMapping_tableWidget.setDefaultDropAction(
            QtCore.Qt.MoveAction)
        self.channelMapping_tableWidget.setAlternatingRowColors(True)
        self.channelMapping_tableWidget.setSelectionBehavior(
            QtWidgets.QAbstractItemView.SelectRows)
        self.channelMapping_tableWidget.setCornerButtonEnabled(False)
        self.channelMapping_tableWidget.setObjectName(
            "channelMapping_tableWidget")
        self.channelMapping_tableWidget.setColumnCount(5)
        self.channelMapping_tableWidget.setRowCount(0)
        item = QtWidgets.QTableWidgetItem()
        self.channelMapping_tableWidget.setHorizontalHeaderItem(0, item)
        item = QtWidgets.QTableWidgetItem()
        self.channelMapping_tableWidget.setHorizontalHeaderItem(1, item)
        item = QtWidgets.QTableWidgetItem()
        self.channelMapping_tableWidget.setHorizontalHeaderItem(2, item)
        item = QtWidgets.QTableWidgetItem()
        self.channelMapping_tableWidget.setHorizontalHeaderItem(3, item)
        item = QtWidgets.QTableWidgetItem()
        self.channelMapping_tableWidget.setHorizontalHeaderItem(4, item)
        self.verticalLayout.addWidget(self.channelMapping_tableWidget)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.export_pushButton = QtWidgets.QPushButton(Form)
        self.export_pushButton.setObjectName("export_pushButton")
        self.horizontalLayout.addWidget(self.export_pushButton)
        self.import_pushButton = QtWidgets.QPushButton(Form)
        self.import_pushButton.setObjectName("import_pushButton")
        self.horizontalLayout.addWidget(self.import_pushButton)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.apply_pushButton = QtWidgets.QPushButton(Form)
        self.apply_pushButton.setObjectName("apply_pushButton")
        self.verticalLayout.addWidget(self.apply_pushButton)
        self.horizontalLayout_4.addLayout(self.verticalLayout)
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.groupBox = QtWidgets.QGroupBox(Form)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.groupBox.sizePolicy().hasHeightForWidth())
        self.groupBox.setSizePolicy(sizePolicy)
        self.groupBox.setObjectName("groupBox")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.groupBox)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.channel_lineEdit = QtWidgets.QLineEdit(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.channel_lineEdit.sizePolicy().hasHeightForWidth())
        self.channel_lineEdit.setSizePolicy(sizePolicy)
        self.channel_lineEdit.setObjectName("channel_lineEdit")
        self.horizontalLayout_2.addWidget(self.channel_lineEdit)
        self.channel_pushButton = QtWidgets.QPushButton(self.groupBox)
        self.channel_pushButton.setObjectName("channel_pushButton")
        self.horizontalLayout_2.addWidget(self.channel_pushButton)
        self.verticalLayout_2.addWidget(self.groupBox)
        self.groupBox_2 = QtWidgets.QGroupBox(Form)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.groupBox_2.sizePolicy().hasHeightForWidth())
        self.groupBox_2.setSizePolicy(sizePolicy)
        self.groupBox_2.setObjectName("groupBox_2")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.groupBox_2)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.target_lineEdit = QtWidgets.QLineEdit(self.groupBox_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.target_lineEdit.sizePolicy().hasHeightForWidth())
        self.target_lineEdit.setSizePolicy(sizePolicy)
        self.target_lineEdit.setObjectName("target_lineEdit")
        self.horizontalLayout_3.addWidget(self.target_lineEdit)
        self.target_pushButton = QtWidgets.QPushButton(self.groupBox_2)
        self.target_pushButton.setObjectName("target_pushButton")
        self.horizontalLayout_3.addWidget(self.target_pushButton)
        self.verticalLayout_2.addWidget(self.groupBox_2)
        self.setRow_pushButton = QtWidgets.QPushButton(Form)
        self.setRow_pushButton.setObjectName("setRow_pushButton")
        self.verticalLayout_2.addWidget(self.setRow_pushButton)
        self.line = QtWidgets.QFrame(Form)
        self.line.setFrameShadow(QtWidgets.QFrame.Plain)
        self.line.setLineWidth(2)
        self.line.setFrameShape(QtWidgets.QFrame.HLine)
        self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line.setObjectName("line")
        self.verticalLayout_2.addWidget(self.line)
        self.setMultiChannel_pushButton = QtWidgets.QPushButton(Form)
        self.setMultiChannel_pushButton.setObjectName(
            "setMultiChannel_pushButton")
        self.verticalLayout_2.addWidget(self.setMultiChannel_pushButton)
        self.setMultiTarget_pushButton = QtWidgets.QPushButton(Form)
        self.setMultiTarget_pushButton.setObjectName(
            "setMultiTarget_pushButton")
        self.verticalLayout_2.addWidget(self.setMultiTarget_pushButton)
        self.line_2 = QtWidgets.QFrame(Form)
        self.line_2.setFrameShadow(QtWidgets.QFrame.Plain)
        self.line_2.setLineWidth(2)
        self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_2.setObjectName("line_2")
        self.verticalLayout_2.addWidget(self.line_2)
        self.clearSelectedRows_pushButton = QtWidgets.QPushButton(Form)
        self.clearSelectedRows_pushButton.setObjectName(
            "clearSelectedRows_pushButton")
        self.verticalLayout_2.addWidget(self.clearSelectedRows_pushButton)
        self.clearAll_pushButton = QtWidgets.QPushButton(Form)
        self.clearAll_pushButton.setObjectName("clearAll_pushButton")
        self.verticalLayout_2.addWidget(self.clearAll_pushButton)
        self.line_4 = QtWidgets.QFrame(Form)
        self.line_4.setFrameShadow(QtWidgets.QFrame.Plain)
        self.line_4.setLineWidth(2)
        self.line_4.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_4.setObjectName("line_4")
        self.verticalLayout_2.addWidget(self.line_4)
        self.setMoveOp_pushButton = QtWidgets.QPushButton(Form)
        self.setMoveOp_pushButton.setObjectName("setMoveOp_pushButton")
        self.verticalLayout_2.addWidget(self.setMoveOp_pushButton)
        self.setProxyOp_pushButton = QtWidgets.QPushButton(Form)
        self.setProxyOp_pushButton.setObjectName("setProxyOp_pushButton")
        self.verticalLayout_2.addWidget(self.setProxyOp_pushButton)
        self.line_5 = QtWidgets.QFrame(Form)
        self.line_5.setFrameShadow(QtWidgets.QFrame.Plain)
        self.line_5.setLineWidth(2)
        self.line_5.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_5.setObjectName("line_5")
        self.verticalLayout_2.addWidget(self.line_5)
        self.groupBox_3 = QtWidgets.QGroupBox(Form)
        self.groupBox_3.setObjectName("groupBox_3")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_3)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.movePolicy_comboBox = QtWidgets.QComboBox(self.groupBox_3)
        self.movePolicy_comboBox.setObjectName("movePolicy_comboBox")
        self.movePolicy_comboBox.addItem("")
        self.movePolicy_comboBox.addItem("")
        self.movePolicy_comboBox.addItem("")
        self.gridLayout_2.addWidget(self.movePolicy_comboBox, 0, 0, 1, 1)
        self.verticalLayout_2.addWidget(self.groupBox_3)
        self.groupBox_4 = QtWidgets.QGroupBox(Form)
        self.groupBox_4.setObjectName("groupBox_4")
        self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox_4)
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.proxyPolicy_comboBox = QtWidgets.QComboBox(self.groupBox_4)
        self.proxyPolicy_comboBox.setObjectName("proxyPolicy_comboBox")
        self.proxyPolicy_comboBox.addItem("")
        self.proxyPolicy_comboBox.addItem("")
        self.gridLayout_3.addWidget(self.proxyPolicy_comboBox, 0, 0, 1, 1)
        self.verticalLayout_2.addWidget(self.groupBox_4)
        spacerItem = QtWidgets.QSpacerItem(20, 40,
                                           QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout_2.addItem(spacerItem)
        self.horizontalLayout_4.addLayout(self.verticalLayout_2)
        self.gridLayout.addLayout(self.horizontalLayout_4, 0, 0, 1, 1)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)