diff options
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(); |