summaryrefslogtreecommitdiffstats
path: root/src/gui/text
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eblomfel@trolltech.com>2009-05-19 16:09:04 (GMT)
committerEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>2010-01-14 12:46:16 (GMT)
commita25dd3694d752cdf104f0a9064f47f001082edad (patch)
tree582daca71a5c10ec6472819349b3f8bd948bc7b7 /src/gui/text
parente8271e69e1bddc2d5d251ebf34909a53fd711d0e (diff)
downloadQt-a25dd3694d752cdf104f0a9064f47f001082edad.zip
Qt-a25dd3694d752cdf104f0a9064f47f001082edad.tar.gz
Qt-a25dd3694d752cdf104f0a9064f47f001082edad.tar.bz2
Start support for formatting text within a bounding rect
Support to mirror drawText(QRectF, QString). Instead of a rect you give the text a static size and then paint it to an arbitrary point later on.
Diffstat (limited to 'src/gui/text')
-rw-r--r--src/gui/text/qstatictext.cpp10
-rw-r--r--src/gui/text/qstatictext.h2
-rw-r--r--src/gui/text/qstatictext_p.h2
3 files changed, 7 insertions, 7 deletions
diff --git a/src/gui/text/qstatictext.cpp b/src/gui/text/qstatictext.cpp
index e3bb950..9ddcf44 100644
--- a/src/gui/text/qstatictext.cpp
+++ b/src/gui/text/qstatictext.cpp
@@ -44,11 +44,11 @@
QT_BEGIN_NAMESPACE
-QStaticText::QStaticText(const QString &text, const QFont &font)
+QStaticText::QStaticText(const QString &text, const QFont &font, const QSizeF &size)
: d_ptr(new QStaticTextPrivate)
{
Q_D(QStaticText);
- d->init(text, font);
+ d->init(text, font, size.isValid() ? size.width() : -1.0);
}
QStaticTextPrivate::QStaticTextPrivate()
@@ -61,7 +61,7 @@ QStaticTextPrivate *QStaticTextPrivate::get(const QStaticText *q)
return q->d_ptr;
}
-void QStaticTextPrivate::init(const QString &text, const QFont &font)
+void QStaticTextPrivate::init(const QString &text, const QFont &font, qreal width)
{
Q_ASSERT(textLayout == 0);
textLayout = new QTextLayout(text, font);
@@ -70,10 +70,10 @@ void QStaticTextPrivate::init(const QString &text, const QFont &font)
QFontMetrics fontMetrics(font);
textLayout->beginLayout();
- int h = -fontMetrics.ascent();
+ int h = width >= 0.0 ? 0 : -fontMetrics.ascent();
QTextLine line;
if ((line = textLayout->createLine()).isValid()) {
- line.setLineWidth(fontMetrics.width(text));
+ line.setLineWidth(width >= 0.0 ? width : fontMetrics.width(text));
line.setPosition(QPointF(0, h));
h += line.height();
}
diff --git a/src/gui/text/qstatictext.h b/src/gui/text/qstatictext.h
index 4d39e23..1855114 100644
--- a/src/gui/text/qstatictext.h
+++ b/src/gui/text/qstatictext.h
@@ -56,7 +56,7 @@ class Q_GUI_EXPORT QStaticText
{
Q_DECLARE_PRIVATE(QStaticText);
public:
- QStaticText(const QString &text, const QFont &font);
+ QStaticText(const QString &text, const QFont &font, const QSizeF &maximumSize = QSizeF());
private:
QStaticTextPrivate *d_ptr;
diff --git a/src/gui/text/qstatictext_p.h b/src/gui/text/qstatictext_p.h
index c9abee3..d0e0c2a 100644
--- a/src/gui/text/qstatictext_p.h
+++ b/src/gui/text/qstatictext_p.h
@@ -10,7 +10,7 @@ class QStaticTextPrivate
{
public:
QStaticTextPrivate();
- void init(const QString &text, const QFont &font);
+ void init(const QString &text, const QFont &font, qreal width);
QTextLayout *textLayout;