diff options
author | Morten Johan Sørvig <morten.sorvig@digia.com> | 2013-08-26 10:52:38 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-09 14:30:37 +0200 |
commit | 49fad77637be8fc2b0744fb33917dc806b701545 (patch) | |
tree | fd9214e59819822e425679ecea4604ea8c0ca22c /src/quick | |
parent | f84c6cdced020feaf526ac8e556405cb21466c34 (diff) |
Polish items on screen change.
The window device pixel ratio may change. Repaint
all items.
Change-Id: I09b782800c15ec6290bf79cb7c7a5d6e6c08b528
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 21 | ||||
-rw-r--r-- | src/quick/items/qquickwindow.h | 1 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index aaadae5d1d..21e1a009b0 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -279,6 +279,26 @@ void QQuickWindow::update() d->windowManager->update(this); } +void forcePolishHelper(QQuickItem *item) +{ + if (item->flags() & QQuickItem::ItemHasContents) { + item->polish(); + } + + QList <QQuickItem *> items = item->childItems(); + for (int i=0; i<items.size(); ++i) + forcePolishHelper(items.at(i)); +} + +/*! + Schedules polish events on all items in the scene. +*/ +void QQuickWindow::forcePolish() +{ + Q_D(QQuickWindow); + forcePolishHelper(d->contentItem); +} + void forceUpdate(QQuickItem *item) { if (item->flags() & QQuickItem::ItemHasContents) @@ -389,6 +409,7 @@ void QQuickWindowPrivate::init(QQuickWindow *c) QObject::connect(context, SIGNAL(invalidated()), q, SLOT(cleanupSceneGraph()), Qt::DirectConnection); QObject::connect(q, SIGNAL(focusObjectChanged(QObject*)), q, SIGNAL(activeFocusItemChanged())); + QObject::connect(q, SIGNAL(screenChanged(QScreen*)), q, SLOT(forcePolish())); } /*! diff --git a/src/quick/items/qquickwindow.h b/src/quick/items/qquickwindow.h index fad67e9734..9ebc03bb07 100644 --- a/src/quick/items/qquickwindow.h +++ b/src/quick/items/qquickwindow.h @@ -141,6 +141,7 @@ Q_SIGNALS: public Q_SLOTS: void update(); + void forcePolish(); void releaseResources(); protected: |