Exemple #1
0
    def __init__(self, parent=None):
        super(base, self).__init__(parent)
        self.setupUi(self)

        self._rootNode = Node("Root")
        childNode0 = TransformNode("A", self._rootNode)
        childNode1 = LightNode("B", self._rootNode)
        childNode2 = CameraNode("C", self._rootNode)
        childNode3 = TransformNode("D", self._rootNode)
        childNode4 = LightNode("E", self._rootNode)
        childNode5 = CameraNode("F", self._rootNode)
        childNode6 = TransformNode("G", childNode5)
        childNode7 = LightNode("H", childNode6)
        childNode8 = CameraNode("I", childNode7)

        self._proxyModel = QtGui.QSortFilterProxyModel(self)
        """VIEW <------> PROXY MODEL <------> DATA MODEL"""

        self._model = SceneGraphModel(self._rootNode, self)

        self._proxyModel.setSourceModel(self._model)
        self._proxyModel.setDynamicSortFilter(True)
        self._proxyModel.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive)

        self._proxyModel.setSortRole(SceneGraphModel.sortRole)
        self._proxyModel.setFilterRole(SceneGraphModel.filterRole)
        self._proxyModel.setFilterKeyColumn(0)

        self.uiTree.setModel(self._proxyModel)

        QtCore.QObject.connect(self.uiFilter,
                               QtCore.SIGNAL("textChanged(QString)"),
                               self._proxyModel.setFilterRegExp)

        self._propEditor = PropertiesEditor(self)
        self.layoutMain.addWidget(self._propEditor)

        self._propEditor.setModel(self._proxyModel)

        QtCore.QObject.connect(
            self.uiTree.selectionModel(),
            QtCore.SIGNAL("currentChanged(QModelIndex, QModelIndex)"),
            self._propEditor.setSelection)
        QtCore.QObject.connect(
            self._model,
            QtCore.SIGNAL("dataChanged(QModelIndex, QModelIndex)"),
            self.updateXml)

        #Create our XMLHighlighter derived from QSyntaxHighlighter
        highlighter = XMLHighlighter(self.uiXml.document())

        self.updateXml()
Exemple #2
0
 def setup_model(self):
     self._rootNode = Node("Root")
     self._proxyModel = FilterModel(self)
     self._model = ParametersTreeModel(self._rootNode, self)
     self._proxyModel.setSourceModel(self._model)
     self._proxyModel.setFilterRole(ParametersTreeModel.filterRole)
     self._proxyModel.setSortRole(QtCore.Qt.DisplayRole)
     self.uiTree.setSortingEnabled(True)
     self.uiTree.sortByColumn(0, QtCore.Qt.AscendingOrder)
     # making and setting model
     self.uiTree.setModel(self._proxyModel)
     self._propEditor = PropertiesEditor(self)
     self.layout().addWidget(self._propEditor)
     self._propEditor.setModel(self._proxyModel)
Exemple #3
0
    def insertRows(self, position, rows, parent=QtCore.QModelIndex()):

        parentNode = self.getNode(parent)

        self.beginInsertRows(parent, position, position + rows - 1)

        for row in range(rows):

            childCount = parentNode.childCount()
            childNode = Node("untitled" + str(childCount))
            success = parentNode.insertChild(position, childNode)

        self.endInsertRows()

        return success