summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriano Rezende <adriano.rezende@openbossa.org>2011-11-21 02:41:32 -0800
committerJens Bache-Wiig <jens.bache-wiig@nokia.com>2011-11-21 02:41:32 -0800
commitad2dc6fea3469386c0cc002bc0a686f71707c878 (patch)
tree382f91bcd9776b60aa0fc8b1f6aec0796cebcd7a
parent91d9fb83f9a099e16a1ec7a74a48bb4aee54c30b (diff)
downloadqtquickcontrols-ad2dc6fea3469386c0cc002bc0a686f71707c878.tar.gz
Minor layout optimization
Abort layout traversal when finding the first dirty parent, since the event was already being posted for the top level layout. Signed-off-by: Adriano Rezende <adriano.rezende@openbossa.org> Merge-request: 12 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@nokia.com>
-rw-r--r--src/qdeclarativelayout.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/qdeclarativelayout.cpp b/src/qdeclarativelayout.cpp
index 64af622e..1d250a0d 100644
--- a/src/qdeclarativelayout.cpp
+++ b/src/qdeclarativelayout.cpp
@@ -158,7 +158,7 @@ void QDeclarativeLayout::invalidate()
QDeclarativeLayout *layout = this;
QDeclarativeLayout *parentLayout = 0;
- while (layout) {
+ while (!layout->m_dirty) {
layout->m_dirty = true;
parentLayout = qobject_cast<QDeclarativeLayout *>(layout->parentItem());
@@ -168,7 +168,9 @@ void QDeclarativeLayout::invalidate()
layout = parentLayout;
}
- QApplication::postEvent(layout, new QEvent(QEvent::LayoutRequest));
+ // just post events for top level layouts
+ if (!parentLayout)
+ QApplication::postEvent(layout, new QEvent(QEvent::LayoutRequest));
}
void QDeclarativeLayout::reconfigureTopDown()