Exemple #1
0
QList<QGlyphRun> QTextFragment::glyphRuns() const
{
    if (!p || !n)
        return QList<QGlyphRun>();

    int pos = position();
    int len = length();
    if (len == 0)
        return QList<QGlyphRun>();

    int blockNode = p->blockMap().findNode(pos);

    const QTextBlockData *blockData = p->blockMap().fragment(blockNode);
    QTextLayout *layout = blockData->layout;

    QList<QGlyphRun> ret;
    for (int i=0; i<layout->lineCount(); ++i) {
        QTextLine textLine = layout->lineAt(i);
        ret += textLine.glyphs(pos, len);
    }

    return ret;
}