QModelIndex TreeListModel::index(int row, int column, const QModelIndex &parent) const { TreeList *parentItem; if (!parent.isValid()) parentItem = rootItem; else parentItem = static_cast<TreeList*>(parent.internalPointer()); TreeList *childItem = parentItem->child(row); if (childItem) return createIndex(row, column, childItem); else return QModelIndex(); }