From 8e57ad1a270df164cebcac7b0e2923eac6df9e37 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Sat, 15 Feb 2014 09:35:34 +0200 Subject: Respect the QTextBlock's character formats in itemization This fixes regression introduced in f864bdaf592412 (in resolveAdditionalFormats(), formatIndex(si) returned an invalid block format index due to non-empty specialData->resolvedFormats) Task-number: QTBUG-36759 Change-Id: I4da13d2edaf1987bcd85b2ef326e9d22345eb8f3 Reviewed-by: Richard Moe Gustavsen Reviewed-by: Lars Knoll --- src/gui/text/qtextengine.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/gui/text') diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index ea61f257a2..eb31c520ed 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -2916,7 +2916,8 @@ void QTextEngine::resolveAdditionalFormats() const QTextFormatCollection *collection = formats(); - specialData->resolvedFormats.resize(layoutData->items.count()); + specialData->resolvedFormats.clear(); + QVector resolvedFormats(layoutData->items.count()); QVarLengthArray addFormatSortedByStart; addFormatSortedByStart.reserve(specialData->addFormats.count()); @@ -2953,7 +2954,7 @@ void QTextEngine::resolveAdditionalFormats() const ++endIt; } - QTextCharFormat &format = specialData->resolvedFormats[i]; + QTextCharFormat &format = resolvedFormats[i]; if (block.docHandle()) { // when we have a docHandle, formatIndex might still return a valid index based // on the preeditPosition. for all other cases, we cleared the resolved format indices @@ -2968,6 +2969,8 @@ void QTextEngine::resolveAdditionalFormats() const format = collection->charFormat(collection->indexForFormat(format)); // get shared copy } } + + specialData->resolvedFormats = resolvedFormats; } QFixed QTextEngine::leadingSpaceWidth(const QScriptLine &line) -- cgit v1.2.3