/** * @brief ProjectManagerTreeModel::index Get index of item on row and column with given parent. * @param row Row number. * @param column Column number. * @param parent Parent of item we want to get. * @return Index of our item. */ QModelIndex ProjectManagerTreeModel::index(int row, int column, const QModelIndex &parent) const { if(!hasIndex(row, column, parent)) return QModelIndex(); ProjectTreeItem* pItem; if(!parent.isValid()) pItem = root; else pItem = static_cast<ProjectTreeItem*>(parent.internalPointer()); ProjectTreeItem* cItem = pItem->getChild(row); if(cItem) return createIndex(row,column, cItem); else return QModelIndex(); }
/** * @brief ProjectManagerTreeModel::removeRows Remove rows from this model. * @param row Row number where we start removing items. * @param count How many items we want to remove. * @param parent Parent of items we want to remove. * @return True if we removed items, false otherwise. */ bool ProjectManagerTreeModel::removeRows(int row, int count, const QModelIndex &parent) { beginRemoveRows(parent, row, row+count); if(insertType == ProjectTreeItem::PROJECT) { ProjectTreeItem* item = root->getChild(row); delete item; } else if(insertType == ProjectTreeItem::SHADER) { ProjectTreeItem* parentItem = static_cast<ProjectTreeItem*>(parent.internalPointer()); ProjectTreeItem* item = parentItem->getChild(row); delete item; } endRemoveRows(); return true; }