def setupAttributes(self, tool):
        self.proto = PathToolBit.AttributePrototype()
        self.props = sorted(self.proto.properties)
        self.delegate = PathSetupSheetGui.Delegate(self.form)
        self.model = QtGui.QStandardItemModel(len(self.props), 3, self.form)
        self.model.setHorizontalHeaderLabels(['Set', 'Property', 'Value'])

        for i, name in enumerate(self.props):
            prop = self.proto.getProperty(name)
            isset = hasattr(tool, name)
            if isset:
                prop.setValue(getattr(tool, name))

            self.model.setData(self.model.index(i, 0), isset, QtCore.Qt.EditRole)
            self.model.setData(self.model.index(i, 1), name,  QtCore.Qt.EditRole)
            self.model.setData(self.model.index(i, 2), prop,  PathSetupSheetGui.Delegate.PropertyRole)
            self.model.setData(self.model.index(i, 2), prop.displayString(),  QtCore.Qt.DisplayRole)

            self.model.item(i, 0).setCheckable(True)
            self.model.item(i, 0).setText('')
            self.model.item(i, 1).setEditable(False)
            self.model.item(i, 1).setToolTip(prop.info)
            self.model.item(i, 2).setToolTip(prop.info)

            if isset:
                self.model.item(i, 0).setCheckState(QtCore.Qt.Checked)
            else:
                self.model.item(i, 0).setCheckState(QtCore.Qt.Unchecked)
                self.model.item(i, 1).setEnabled(False)
                self.model.item(i, 2).setEnabled(False)

        self.form.attrTable.setModel(self.model)
        self.form.attrTable.setItemDelegateForColumn(2, self.delegate)
        self.form.attrTable.resizeColumnsToContents()
        self.form.attrTable.verticalHeader().hide()

        self.model.dataChanged.connect(self.updateData)
Beispiel #2
0
    def setupAttributes(self, tool):
        PathLog.track()
        self.proto = PathToolBit.AttributePrototype()
        self.props = sorted(self.proto.properties)
        self.delegate = PathSetupSheetGui.Delegate(self.form)
        self.model = QtGui.QStandardItemModel(
            len(self.props) - 1, 3, self.form)
        self.model.setHorizontalHeaderLabels(['Set', 'Property', 'Value'])

        for i, name in enumerate(self.props):
            PathLog.debug("propname: %s " % name)

            prop = self.proto.getProperty(name)
            isset = hasattr(tool, name)

            if isset:
                prop.setValue(getattr(tool, name))

            if name == "UserAttributes":
                continue

            else:

                self.model.setData(self.model.index(i, 0), isset,
                                   QtCore.Qt.EditRole)
                self.model.setData(self.model.index(i, 1), name,
                                   QtCore.Qt.EditRole)
                self.model.setData(self.model.index(i, 2), prop,
                                   PathSetupSheetGui.Delegate.PropertyRole)
                self.model.setData(self.model.index(i, 2),
                                   prop.displayString(), QtCore.Qt.DisplayRole)

                self.model.item(i, 0).setCheckable(True)
                self.model.item(i, 0).setText('')
                self.model.item(i, 1).setEditable(False)
                self.model.item(i, 1).setToolTip(prop.info)
                self.model.item(i, 2).setToolTip(prop.info)

                if isset:
                    self.model.item(i, 0).setCheckState(QtCore.Qt.Checked)
                else:
                    self.model.item(i, 0).setCheckState(QtCore.Qt.Unchecked)
                    self.model.item(i, 1).setEnabled(False)
                    self.model.item(i, 2).setEnabled(False)

        if hasattr(tool, "UserAttributes"):
            for key, value in tool.UserAttributes.items():
                PathLog.debug(key, value)
                c1 = QtGui.QStandardItem()
                c1.setCheckable(False)
                c1.setEditable(False)
                c1.setCheckState(QtCore.Qt.CheckState.Checked)

                c1.setText('')
                c2 = QtGui.QStandardItem(key)
                c2.setEditable(False)
                c3 = QtGui.QStandardItem(value)
                c3.setEditable(False)

                self.model.appendRow([c1, c2, c3])

        self.form.attrTable.setModel(self.model)
        self.form.attrTable.setItemDelegateForColumn(2, self.delegate)
        self.form.attrTable.resizeColumnsToContents()
        self.form.attrTable.verticalHeader().hide()

        self.model.dataChanged.connect(self.updateData)