QModelIndex HistoryModel::index (int row, int col, const QModelIndex& parent) const { if (!hasIndex (row, col, parent)) return QModelIndex (); TreeItem *parentItem; if (!parent.isValid ()) parentItem = RootItem_; else parentItem = static_cast<TreeItem*> (parent.internalPointer ()); TreeItem *childItem = parentItem->Child (row); if (childItem) return createIndex (row, col, childItem); else return QModelIndex (); }