def index(self, row, col, parent=QModelIndex()): """Returns the index of the item in the model specified by the given row, column and parent index.""" if parent.isValid() and parent.column() != 0: return QModelIndex() parentPref = self.index2Pref(parent) childPref = parentPref.qt_get_child(row) if childPref: return self.createIndex(row, col, childPref) else: return QModelIndex()
def parent(self, index=None): """Returns the parent of the model item with the given index. If the item has no parent, an invalid QModelIndex is returned.""" if index is None: # Overload with QObject.parent() return QObject.parent(self) if not index.isValid(): return QModelIndex() nodePref = self.index2Pref(index) parentPref = nodePref.qt_get_parent() if parentPref == self.rootPref: return QModelIndex() return self.createIndex(parentPref.qt_parents_index_of_me(), 0, parentPref)
def index2Pref(self, index=QModelIndex()): """ Internal helper method """ if index.isValid(): item = index.internalPointer() if item: return item return self.rootNode
def columnCount(self, parent=QModelIndex()): parentPref = self.index2Pref(parent) return parentPref.qt_num_cols()
def rowCount(self, parent=QModelIndex()): parentPref = self.index2Pref(parent) return parentPref.qt_num_rows()