Exemplo n.º 1
0
QVariant TextDocumentStructureModel::data(const QModelIndex &index, int role) const
{
    if (! m_textDocument || ! index.isValid()) {
        return QVariant();
    }

    Q_ASSERT(index.internalId() < uint(m_nodeDataTable.count()));

    const NodeData &nodeData = m_nodeDataTable.at(index.internalId());

    switch (role) {
        case Qt::DisplayRole:
        {
            if (nodeData.type == NodeData::Frame) {
                QTextFrame* frame = nodeData.frame;
                return QLatin1String(frame->metaObject()->className());
            }
            // else should be a block
            return QLatin1String("Block");
        }
    }

    return QVariant();
}