QModelIndex DataSourceModel::parent(const QModelIndex& child) const { if (!child.isValid()) return QModelIndex(); DataNode* childNode = nodeFromIndex(child); if (!childNode) return QModelIndex(); DataNode* parentNode = childNode->parent(); if ((parentNode == m_rootNode) || (!parentNode)) return QModelIndex(); return createIndex(parentNode->row(),0,parentNode); }