aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquicktextnode.cpp
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2012-04-10 15:06:48 +1000
committerQt by Nokia <qt-info@nokia.com>2012-04-19 04:55:38 +0200
commit83c8ca0ab459dbf7594abf90fdf4e83f9f121a74 (patch)
tree004ff5c5c0b68e428cb406eced1fe8b7462baf65 /src/quick/items/qquicktextnode.cpp
parent13af00d382e340341db88c969ee48e3b83e53277 (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.cpp9
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();