diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2012-04-10 15:06:48 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-19 04:55:38 +0200 |
commit | 83c8ca0ab459dbf7594abf90fdf4e83f9f121a74 (patch) | |
tree | 004ff5c5c0b68e428cb406eced1fe8b7462baf65 /src/quick/items/qquicktextnode.cpp | |
parent | 13af00d382e340341db88c969ee48e3b83e53277 (diff) |
Don't create glyphs for truncated text.
Instead of positioning truncated lines far out of the way where they
won't be seen, simply skip them when creating the glyph node.
Change-Id: I83bd8f76619d822fb22ec2ebd8c1e45c45b8b990
Reviewed-by: Yann Bodson <yann.bodson@nokia.com>
Diffstat (limited to 'src/quick/items/qquicktextnode.cpp')
-rw-r--r-- | src/quick/items/qquicktextnode.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/quick/items/qquicktextnode.cpp b/src/quick/items/qquicktextnode.cpp index 81340d6e66..597ebc47e0 100644 --- a/src/quick/items/qquicktextnode.cpp +++ b/src/quick/items/qquicktextnode.cpp @@ -1292,7 +1292,8 @@ void QQuickTextNode::addTextLayout(const QPointF &position, QTextLayout *textLay QQuickText::TextStyle style, const QColor &styleColor, const QColor &anchorColor, const QColor &selectionColor, const QColor &selectedTextColor, - int selectionStart, int selectionEnd) + int selectionStart, int selectionEnd, + int lineStart, int lineCount) { SelectionEngine engine; engine.setTextColor(color); @@ -1307,7 +1308,11 @@ void QQuickTextNode::addTextLayout(const QPointF &position, QTextLayout *textLay QVarLengthArray<QTextLayout::FormatRange> colorChanges; mergeFormats(textLayout, &colorChanges); - for (int i=0; i<textLayout->lineCount(); ++i) { + lineCount = lineCount >= 0 + ? qMin(lineStart + lineCount, textLayout->lineCount()) + : textLayout->lineCount(); + + for (int i=lineStart; i<lineCount; ++i) { QTextLine line = textLayout->lineAt(i); int start = line.textStart(); |