QModelIndex ProjectDirModel::index(int row, int column, const QModelIndex &parent) const { if (column != 0) return QModelIndex(); DvDirModelNode *parentNode = m_root; if (parent.isValid()) parentNode = getNode(parent); if (row < 0 || row >= parentNode->getChildCount()) return QModelIndex(); DvDirModelNode *node = parentNode->getChild(row); return createIndex(row, column, node); }
QModelIndex ProjectDirModel::childByName(const QModelIndex &parent, const std::wstring &name) const { if (!parent.isValid()) return QModelIndex(); DvDirModelNode *parentNode = getNode(parent); if (!parentNode) return QModelIndex(); int row = parentNode->rowByName(name); if (row < 0 || row >= parentNode->getChildCount()) return QModelIndex(); DvDirModelNode *childNode = parentNode->getChild(row); return createIndex(row, 0, childNode); }