diff options
author | Adriano Rezende <adriano.rezende@openbossa.org> | 2009-09-08 13:15:49 +0200 |
---|---|---|
committer | Olivier Goffart <ogoffart@trolltech.com> | 2009-09-08 13:17:50 +0200 |
commit | a9572a07f1512fe1266629632e5c4f1613abeb8d (patch) | |
tree | 8ac39bf3b49d8f9ee3879f9ba7edead81b7e55e8 | |
parent | 9d9b7f53750dce2da88d7d11d312b4b36250b5c5 (diff) | |
download | qt4-tools-a9572a07f1512fe1266629632e5c4f1613abeb8d.tar.gz |
Fixed QLineEdit to correctly adjust the horizontal scrolling
The widget needs to use the naturalTextWidth to adjust the horizontal
scrolling, otherwise it will not fit correctly the text in the visible
area when resized.
Merge-request: 1410
Reviewed-by: Alan Alpert
-rw-r--r-- | src/gui/widgets/qlinecontrol_p.h | 6 | ||||
-rw-r--r-- | src/gui/widgets/qlineedit.cpp | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/gui/widgets/qlinecontrol_p.h b/src/gui/widgets/qlinecontrol_p.h index a81f1388f3..f46abf10a4 100644 --- a/src/gui/widgets/qlinecontrol_p.h +++ b/src/gui/widgets/qlinecontrol_p.h @@ -109,6 +109,7 @@ public: int width() const; int height() const; int ascent() const; + qreal naturalTextWidth() const; void setSelection(int start, int length); @@ -410,6 +411,11 @@ inline int QLineControl::width() const return qRound(m_textLayout.lineAt(0).width()) + 1; } +inline qreal QLineControl::naturalTextWidth() const +{ + return m_textLayout.lineAt(0).naturalTextWidth(); +} + inline int QLineControl::height() const { return qRound(m_textLayout.lineAt(0).height()) + 1; diff --git a/src/gui/widgets/qlineedit.cpp b/src/gui/widgets/qlineedit.cpp index 3065c7fa51..95718600fd 100644 --- a/src/gui/widgets/qlineedit.cpp +++ b/src/gui/widgets/qlineedit.cpp @@ -1808,7 +1808,7 @@ void QLineEdit::paintEvent(QPaintEvent *) // (cix). int minLB = qMax(0, -fm.minLeftBearing()); int minRB = qMax(0, -fm.minRightBearing()); - int widthUsed = d->control->width() + minRB; + int widthUsed = qRound(d->control->naturalTextWidth()) + 1 + minRB; if ((minLB + widthUsed) <= lineRect.width()) { // text fits in lineRect; use hscroll for alignment switch (va & ~(Qt::AlignAbsolute|Qt::AlignVertical_Mask)) { |