Example #1
0
void ProjectModel::commit(QModelIndex &index)
{
    ProjectTreeItem *item = static_cast<ProjectTreeItem*>(index.internalPointer());
    QVariant var = item->data(0, Qt::UserRole);

    CompleteAnnotationItem *oldAnnot = var.value<CompleteAnnotationItem*>();

    AnnotationItem* oldItem = oldAnnot->getItem();

    AnnotationItem* newItem = new AnnotationItem(oldItem->getId(),
                                                 new ConllGraph(*oldItem->getOriginalParse()),
                                                 new ConllGraph(*oldItem->getEditableParse()));

    RevisionAnnotationList revisions;
    for(int i = 0; i < oldAnnot->getRevisionsCount(); i++)
        revisions << oldAnnot->getRevision(i);
    revisions << Revision<AnnotationItem*>(oldItem);

    CompleteAnnotationItem *newAnnot = new CompleteAnnotationItem(oldAnnot->id(), newItem, revisions);

    item->setData(QVariant::fromValue(newAnnot));

    //Which file the item belongs ?
    QString filename = item->parent()->data(0).toString();
    //Get the annotation and update
    int indexFile = item->project()->findFile(filename);
    item->project()->changeAnnotation( indexFile , index.row(), newAnnot );
    //item->project()->addModified( indexFile, index.row() );

}
Example #2
0
QModelIndex ProjectModel::parent(const QModelIndex &index) const
{
    if (!index.isValid())
        return QModelIndex();

    ProjectTreeItem *childItem = static_cast<ProjectTreeItem*>(index.internalPointer());
    ProjectTreeItem *parentItem = childItem->parent();

    if (parentItem == rootItem)
        return QModelIndex();

    return createIndex(parentItem->row(), 0, parentItem);
}