aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickrendercontrol.cpp
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@digia.com>2014-02-28 11:07:11 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-28 12:08:46 +0100
commit6ef802ff6ed1cd234848b65fdad56dc3b0579cff (patch)
treeec709a1186d1a4ee71eeb036be203497a0e9def6 /src/quick/items/qquickrendercontrol.cpp
parent0a23e840e27964fad75e8b0ef7b31701c51f93d5 (diff)
QQuickWidget: handle hide and show events properly
Task-number: QTBUG-37062 Change-Id: I3763385168eaa0ccd009ada563f56ea0251029a5 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Diffstat (limited to 'src/quick/items/qquickrendercontrol.cpp')
-rw-r--r--src/quick/items/qquickrendercontrol.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/quick/items/qquickrendercontrol.cpp b/src/quick/items/qquickrendercontrol.cpp
index faee1358ae..16ed6f0e10 100644
--- a/src/quick/items/qquickrendercontrol.cpp
+++ b/src/quick/items/qquickrendercontrol.cpp
@@ -162,6 +162,26 @@ bool QQuickRenderControl::sync()
}
/*!
+ Stop rendering and release resources. This function is typically
+ called when the window is hidden. Requires a current context.
+ */
+void QQuickRenderControl::stop()
+{
+ Q_D(QQuickRenderControl);
+ if (!d->window)
+ return;
+
+ QQuickWindowPrivate *cd = QQuickWindowPrivate::get(d->window);
+ cd->fireAboutToStop();
+ cd->cleanupNodesOnShutdown();
+
+ if (!cd->persistentSceneGraph) {
+ d->rc->invalidate();
+ QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
+ }
+}
+
+/*!
Render the scenegraph using the current context.
*/
void QQuickRenderControl::render()