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()
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)
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