summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiang Jiang <jiang.jiang@nokia.com>2010-08-16 13:14:43 (GMT)
committerJiang Jiang <jiang.jiang@nokia.com>2010-08-23 09:59:31 (GMT)
commitdae23694cb89b853785a5772cc7e0477f65ac5bf (patch)
tree36db71964b2e10502ffd94163fb4a53da56003ae
parent6e24bef57683b26f7cc1c4cddacace413d181d00 (diff)
downloadQt-dae23694cb89b853785a5772cc7e0477f65ac5bf.zip
Qt-dae23694cb89b853785a5772cc7e0477f65ac5bf.tar.gz
Qt-dae23694cb89b853785a5772cc7e0477f65ac5bf.tar.bz2
Fix tabArray support for boundingRect measurement
QFontMetrics::boundingRect() and size() accept a tabArray as argument to measure the size of string, but tabArray argument has no effect because qt_format_text() just ignore that. This patch make it handle tabArray so that measurement for tab aligned text can be handled correctly. Task-number: QTBUG-4904 Reviewed-by: Eskil
-rw-r--r--src/gui/painting/qpainter.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 314f349..c0f195a 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -7997,7 +7997,7 @@ void qt_format_text(const QFont &fnt, const QRectF &_r,
}
void qt_format_text(const QFont &fnt, const QRectF &_r,
int tf, const QTextOption *option, const QString& str, QRectF *brect,
- int tabstops, int *, int tabarraylen,
+ int tabstops, int *ta, int tabarraylen,
QPainter *painter)
{
@@ -8120,6 +8120,13 @@ start_lengthVariant:
if (engine.option.tabStop() < 0 && tabstops > 0)
engine.option.setTabStop(tabstops);
+ if (engine.option.tabs().isEmpty() && ta) {
+ QList<qreal> tabs;
+ for (int i = 0; i < tabarraylen; i++)
+ tabs.append(qreal(ta[i]));
+ engine.option.setTabArray(tabs);
+ }
+
engine.option.setTextDirection(layout_direction);
if (tf & Qt::AlignJustify)
engine.option.setAlignment(Qt::AlignJustify);