diff options
author | Gunnar Sletta <gunnar@trolltech.com> | 2010-02-23 08:24:31 (GMT) |
---|---|---|
committer | Gunnar Sletta <gunnar@trolltech.com> | 2010-02-23 08:24:31 (GMT) |
commit | a948f901b196bab121cb8b5736204b4ce0c09e94 (patch) | |
tree | e87ac8e797b93203998c1bbb32c2e1120567b137 /src/declarative/graphicsitems/qmlgraphicstext.cpp | |
parent | ac99b3e243b331d26815b80aab97cdaf0ed06b0f (diff) | |
parent | 2e417e2a3963151a2b3a3033e6f5bb0e106d8db4 (diff) | |
download | Qt-a948f901b196bab121cb8b5736204b4ce0c09e94.zip Qt-a948f901b196bab121cb8b5736204b4ce0c09e94.tar.gz Qt-a948f901b196bab121cb8b5736204b4ce0c09e94.tar.bz2 |
Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-2
Diffstat (limited to 'src/declarative/graphicsitems/qmlgraphicstext.cpp')
-rw-r--r-- | src/declarative/graphicsitems/qmlgraphicstext.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/declarative/graphicsitems/qmlgraphicstext.cpp b/src/declarative/graphicsitems/qmlgraphicstext.cpp index ab2f9a3..409fa3a 100644 --- a/src/declarative/graphicsitems/qmlgraphicstext.cpp +++ b/src/declarative/graphicsitems/qmlgraphicstext.cpp @@ -554,6 +554,7 @@ void QmlGraphicsTextPrivate::updateSize() else doc->setTextWidth(doc->idealWidth()); // ### Text does not align if width is not set (QTextDoc bug) dy -= (int)doc->size().height(); + cachedLayoutSize = doc->size().toSize(); } int yoff = 0; @@ -769,7 +770,7 @@ void QmlGraphicsText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidg { Q_D(QmlGraphicsText); - if (d->cache || d->richText || d->style != Normal) { + if (d->cache || d->style != Normal) { d->checkImgCache(); if (d->imgCache.isNull()) return; @@ -846,7 +847,15 @@ void QmlGraphicsText::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidg p->save(); p->setClipRect(boundingRect(), Qt::IntersectClip); } - d->drawWrappedText(p, QPointF(0,y), false); + if (d->richText) { + QAbstractTextDocumentLayout::PaintContext context; + context.palette.setColor(QPalette::Text, d->color); + p->translate(0, y); + d->doc->documentLayout()->draw(p, context); + p->translate(0, -y); + } else { + d->drawWrappedText(p, QPointF(0,y), false); + } if (needClip) p->restore(); } |