diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-09-08 20:41:51 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-09-08 20:41:51 (GMT) |
commit | e1a97ef26c67a844be7c05af94270b25f013a673 (patch) | |
tree | 71fc6f5672b99c39a923c4223f3b2db608621f6d /src | |
parent | 526705430be6371166464689e970752a5ce41ed6 (diff) | |
parent | aafc407fc3efaf6a7ee8f96623fc59857c7bc2a8 (diff) | |
download | Qt-e1a97ef26c67a844be7c05af94270b25f013a673.zip Qt-e1a97ef26c67a844be7c05af94270b25f013a673.tar.gz Qt-e1a97ef26c67a844be7c05af94270b25f013a673.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml:
Don't cause repaints during painting in Text element
Diffstat (limited to 'src')
-rw-r--r-- | src/declarative/graphicsitems/qdeclarativetext.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp index fd3a1f7..14194a0 100644 --- a/src/declarative/graphicsitems/qdeclarativetext.cpp +++ b/src/declarative/graphicsitems/qdeclarativetext.cpp @@ -429,6 +429,9 @@ void QDeclarativeText::setStyle(QDeclarativeText::TextStyle style) if (d->style == style) return; + // changing to/from Normal requires the boundingRect() to change + if (isComponentComplete() && (d->style == Normal || style == Normal)) + prepareGeometryChange(); d->style = style; d->markImgDirty(); emit styleChanged(d->style); @@ -494,8 +497,9 @@ void QDeclarativeText::setHAlign(HAlignment align) if (d->hAlign == align) return; + if (isComponentComplete()) + prepareGeometryChange(); d->hAlign = align; - update(); emit horizontalAlignmentChanged(align); } @@ -511,8 +515,9 @@ void QDeclarativeText::setVAlign(VAlignment align) if (d->vAlign == align) return; + if (isComponentComplete()) + prepareGeometryChange(); d->vAlign = align; - update(); emit verticalAlignmentChanged(align); } @@ -805,7 +810,6 @@ void QDeclarativeTextPrivate::updateSize() else doc->setTextWidth(doc->idealWidth()); // ### Text does not align if width is not set (QTextDoc bug) dy -= (int)doc->size().height(); - q->prepareGeometryChange(); QSize dsize = doc->size().toSize(); if (dsize != cachedLayoutSize) { q->prepareGeometryChange(); @@ -882,8 +886,6 @@ void QDeclarativeTextPrivate::drawOutline() ppm.drawPixmap(pos, imgCache); ppm.end(); - if (imgCache.size() != img.size()) - q_func()->prepareGeometryChange(); imgCache = img; } @@ -902,8 +904,6 @@ void QDeclarativeTextPrivate::drawOutline(int yOffset) ppm.drawPixmap(pos, imgCache); ppm.end(); - if (imgCache.size() != img.size()) - q_func()->prepareGeometryChange(); imgCache = img; } @@ -1054,8 +1054,6 @@ void QDeclarativeTextPrivate::checkImgCache() if (style != QDeclarativeText::Normal) imgStyleCache = wrappedTextImage(true); //### should use styleColor } - if (imgCache.size() != newImgCache.size()) - q_func()->prepareGeometryChange(); imgCache = newImgCache; if (!empty) switch (style) { |