diff options
author | Dmitry Volosnykh <dmitry.volosnykh@gmail.com> | 2015-01-21 14:02:33 +0300 |
---|---|---|
committer | Dmitry Volosnykh <dmitry.volosnykh@gmail.com> | 2015-01-21 20:02:57 +0100 |
commit | 66fa6faff18c302900395a7b1ae3ba487ed8b114 (patch) | |
tree | a2e2a1b9e9561877d9960f09a394382ea8b4d823 /src | |
parent | 8209f35b7961b7ea6867d7ebfb5288dcf40ecd71 (diff) |
QQuickText: respect new line width set by lineLaidOut() handler.
This commit makes text elide properly when custom layout is implemented.
Task-number: QTBUG-44025
Change-Id: Iefe344079c002d3a79aea18096a71667f6c17add
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquicktext.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/quick/items/qquicktext.cpp b/src/quick/items/qquicktext.cpp index be86b2976b..08dca908b4 100644 --- a/src/quick/items/qquicktext.cpp +++ b/src/quick/items/qquicktext.cpp @@ -812,8 +812,8 @@ QRectF QQuickTextPrivate::setupTextLayout(qreal *const baseline) QTextLine previousLine = layout.lineAt(visibleCount - 1); elideText = layoutText.at(line.textStart() - 1) != QChar::LineSeparator - ? elidedText(lineWidth, previousLine, &line) - : elidedText(lineWidth, previousLine); + ? elidedText(line.width(), previousLine, &line) + : elidedText(line.width(), previousLine); elideStart = previousLine.textStart(); // elideEnd isn't required for right eliding. @@ -824,7 +824,7 @@ QRectF QQuickTextPrivate::setupTextLayout(qreal *const baseline) const QTextLine previousLine = line; line = layout.createLine(); if (!line.isValid()) { - if (singlelineElide && visibleCount == 1 && previousLine.naturalTextWidth() > lineWidth) { + if (singlelineElide && visibleCount == 1 && previousLine.naturalTextWidth() > previousLine.width()) { // Elide a single previousLine of text if its width exceeds the element width. elide = true; widthExceeded = true; @@ -834,7 +834,7 @@ QRectF QQuickTextPrivate::setupTextLayout(qreal *const baseline) truncated = true; elideText = layout.engine()->elidedText( Qt::TextElideMode(elideMode), - QFixed::fromReal(lineWidth), + QFixed::fromReal(previousLine.width()), 0, previousLine.textStart(), previousLine.textLength()); @@ -863,8 +863,8 @@ QRectF QQuickTextPrivate::setupTextLayout(qreal *const baseline) if (eos != -1) // There's an abbreviated string available break; elideText = wrappedLine - ? elidedText(lineWidth, previousLine, &line) - : elidedText(lineWidth, previousLine); + ? elidedText(previousLine.width(), previousLine, &line) + : elidedText(previousLine.width(), previousLine); elideStart = previousLine.textStart(); // elideEnd isn't required for right eliding. } else { |