/*! \reimp */
QVariant QMailMessageModelBase::data(const QModelIndex& index, int role) const
{
    if (!index.isValid())
        return QVariant();

    QMailMessageId id = idFromIndex(index);
    if (!id.isValid())
        return QVariant();

    // Some items can be processed without loading the message data
    switch(role)
    {
    case MessageIdRole:
        return id;
        break;

    case Qt::CheckStateRole:
        return impl()->checkState(index);
        break;

    default:
        break;
    }

    // Otherwise, load the message data
    return data(QMailMessageMetaData(id), role);
}
Example #2
0
QMessageContentContainerId QMessageContentContainerIdPrivate::bodyId(const QMailMessageId &id)
{
    QMessageContentContainerId result;
    result.d_ptr->_body = true;

    if (id.isValid()) {
        result.d_ptr->_location.setContainingMessageId(id);
    }

    return result;
}
QModelIndex QMailMessageListModelPrivate::indexFromId(const QMailMessageId& id) const
{
    init();

    if (id.isValid()) {
        int row = indexOf(id);
        if (row != -1)
            return _model.generateIndex(row, 0, 0);
    }

    return QModelIndex();
}