diff options
author | Michael Brasser <michael.brasser@nokia.com> | 2010-07-07 05:09:13 (GMT) |
---|---|---|
committer | Michael Brasser <michael.brasser@nokia.com> | 2010-07-07 05:13:11 (GMT) |
commit | 760dd5919ac3bafb5f17b700d5da9b3609318bbb (patch) | |
tree | 2363f4fa73ebdfedae275b59e78177525c030c79 /src/declarative/graphicsitems/qdeclarativetext.cpp | |
parent | e429284e7d6f6639d5e07c113c45f400a02a8fa1 (diff) | |
download | Qt-760dd5919ac3bafb5f17b700d5da9b3609318bbb.zip Qt-760dd5919ac3bafb5f17b700d5da9b3609318bbb.tar.gz Qt-760dd5919ac3bafb5f17b700d5da9b3609318bbb.tar.bz2 |
QDeclarativeText optimization.
updateSize() shouldn't trigger another updateSize().
Reviewed-by: Martin Jones
Diffstat (limited to 'src/declarative/graphicsitems/qdeclarativetext.cpp')
-rw-r--r-- | src/declarative/graphicsitems/qdeclarativetext.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/declarative/graphicsitems/qdeclarativetext.cpp b/src/declarative/graphicsitems/qdeclarativetext.cpp index 200a680..9a281e5 100644 --- a/src/declarative/graphicsitems/qdeclarativetext.cpp +++ b/src/declarative/graphicsitems/qdeclarativetext.cpp @@ -772,7 +772,7 @@ void QDeclarativeText::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { Q_D(QDeclarativeText); - if (newGeometry.width() != oldGeometry.width()) { + if (!d->internalWidthUpdate && newGeometry.width() != oldGeometry.width()) { if (d->wrapMode != QDeclarativeText::NoWrap || d->elideMode != QDeclarativeText::ElideNone) { //re-elide if needed if (d->singleline && d->elideMode != QDeclarativeText::ElideNone && @@ -872,7 +872,9 @@ void QDeclarativeTextPrivate::updateSize() q->setBaselineOffset(fm.ascent() + yoff); //### need to comfirm cost of always setting these for richText + internalWidthUpdate = true; q->setImplicitWidth(size.width()); + internalWidthUpdate = false; q->setImplicitHeight(size.height()); emit q->paintedSizeChanged(); } else { |