Exemplo n.º 1
0
bool DomModel::setData(const QModelIndex &index,
                        const QVariant &value, int role)
{
    if (!index.isValid())
        return false;

    DomItem *item = static_cast<DomItem*>(index.internalPointer());

    switch (role) {
        case Qt::EditRole:
            item->setName(value.toString());
            break;
        case Qt::UserRole:
            if (item->isFolder())
                item->setName(value.toString());
            else if (item->isSiteReference())
                item->setUuid(value.toString());
            break;
        default:
            return false;
    }

    emit dataChanged(index, index);
    return true;
}
Exemplo n.º 2
0
DomModel::ItemType DomModel::type(const QModelIndex &index) const
{
    if (!index.isValid())
        return Unknown;

    DomItem *item = static_cast<DomItem*>(index.internalPointer());
    if (item->isFolder())
        return Folder;
    else if (item->isSiteReference()) {
        QString uuid = data(index, Qt::UserRole).toString();
        // get favor attributes
        QDomNodeList siteList = domDocument.elementsByTagName("site");
        for (int i=0; i<siteList.count(); i++) {
            QDomElement element = siteList.item(i).toElement();
            if (element.attribute("uuid") == uuid)
                if (element.attribute("favor") == "1")
                    return Favorite;
                else
                    return Site;
        }
    }
    return Unknown;
}