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(); }