def parent(self, index): if not index.isValid(): return QtCore.QModelIndex() childItem = index.internalPointer() parentItem = childItem.parent() if parentItem is None or parentItem == self._rootItem: return QtCore.QModelIndex() return self.createIndex(parentItem.row(), 0, parentItem)
def index(self, row, column, parent=QtCore.QModelIndex()): if not self.hasIndex(row, column, parent): return QtCore.QModelIndex() if not parent.isValid(): parentItem = self._rootItem else: parentItem = parent.internalPointer() childItem = parentItem.child(row) if childItem: return self.createIndex(row, column, childItem) return QtCore.QModelIndex()
def onGotoNode(self, *args): label = self.sender() persistent_index = label.parent().index() index = QtCore.QModelIndex(persistent_index) tree = self.viewWidget() tree.setRootIndex(index) tree.setCurrentIndex(index.child(0, 0))
def hasChildren(self, parent=QtCore.QModelIndex()): if parent.column() > 0: return 0 if not parent.isValid(): parentItem = self._rootItem else: parentItem = parent.internalPointer() if parentItem is None: return False return parentItem.hasChildren()
def rowCount(self, parent=QtCore.QModelIndex()): if parent.column() > 0: return 0 if not parent.isValid(): parentItem = self._rootItem else: parentItem = parent.internalPointer() if parentItem is None: return 0 return parentItem.childCount()
def columnCount(self, parent=QtCore.QModelIndex()): return len(self.ColumnRoles)