aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDmitry Volosnykh <dmitry.volosnykh@gmail.com>2015-01-21 14:02:33 +0300
committerDmitry Volosnykh <dmitry.volosnykh@gmail.com>2015-01-21 20:02:57 +0100
commit66fa6faff18c302900395a7b1ae3ba487ed8b114 (patch)
treea2e2a1b9e9561877d9960f09a394382ea8b4d823 /src
parent8209f35b7961b7ea6867d7ebfb5288dcf40ecd71 (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.cpp12
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 {