コード例 #1
0
/**
 * @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();
}
コード例 #2
0
/**
 * @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;
}