aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick/scenegraph
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@digia.com>2013-04-25 11:16:40 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-04-26 12:57:03 +0200
commitd5e612fb3e9753c762b741d135fabd2b1f8ae1a6 (patch)
treee355cbe7bf1fba9a3841f3cf1e1f95d90b5145b5 /examples/quick/scenegraph
parent1230977b001caf71725afde88d6bdcc978dfe485 (diff)
Re-implemented itemChange must always call QQuickItem::itemChange
Documentation for that fact, and the windowChanged signal. Fix existing QQuickItem subclasses which didn't call QQuickItem::itemChange. Examples should rather connect to the windowChanged() signal. Change-Id: Ieddcdbe69f849ddb120b64be9c5e0a21393b0ed9 Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Diffstat (limited to 'examples/quick/scenegraph')
-rw-r--r--examples/quick/scenegraph/openglunderqml/doc/src/openglunderqml.qdoc6
-rw-r--r--examples/quick/scenegraph/openglunderqml/squircle.cpp11
-rw-r--r--examples/quick/scenegraph/openglunderqml/squircle.h6
3 files changed, 9 insertions, 14 deletions
diff --git a/examples/quick/scenegraph/openglunderqml/doc/src/openglunderqml.qdoc b/examples/quick/scenegraph/openglunderqml/doc/src/openglunderqml.qdoc
index d9f49c942b..1f87412aa4 100644
--- a/examples/quick/scenegraph/openglunderqml/doc/src/openglunderqml.qdoc
+++ b/examples/quick/scenegraph/openglunderqml/doc/src/openglunderqml.qdoc
@@ -93,8 +93,8 @@
For our paint function to be called, we need to connect to the
window's signals. When Squircle object is populated into the
- scene, the itemChange function is called with the change type \c
- ItemSceneChange. We connect \l QQuickWindow::beforeRendering() to
+ scene, the windowChanged signal is emitted. In our handler,
+ we connect \l QQuickWindow::beforeRendering() to
\c paint() to do the rendering, and \l
QQuickWindow::beforeSynchronizing() to \c sync() to copy the state
of the \c t property for the upcoming frame.
@@ -157,7 +157,7 @@
We import the Squircle QML type with the name we registered in the
\c main() function. We then instantiate it and create a running
- NumberAnimation on the its \c t property.
+ NumberAnimation on its \c t property.
\snippet scenegraph/openglunderqml/main.qml 2
diff --git a/examples/quick/scenegraph/openglunderqml/squircle.cpp b/examples/quick/scenegraph/openglunderqml/squircle.cpp
index 84509fb615..8ceb9c5f9e 100644
--- a/examples/quick/scenegraph/openglunderqml/squircle.cpp
+++ b/examples/quick/scenegraph/openglunderqml/squircle.cpp
@@ -51,6 +51,7 @@ Squircle::Squircle()
, m_t(0)
, m_thread_t(0)
{
+ connect(this, SIGNAL(windowChanged(QQuickWindow*)), this, SLOT(handleWindowChanged(QQuickWindow*)));
}
//! [7]
@@ -66,17 +67,11 @@ void Squircle::setT(qreal t)
}
//! [8]
-
//! [1]
-void Squircle::itemChange(ItemChange change, const ItemChangeData &)
+void Squircle::handleWindowChanged(QQuickWindow *win)
{
- // The ItemSceneChange event is sent when we are first attached to a window.
- if (change == ItemSceneChange) {
- QQuickWindow *win = window();
- if (!win)
- return;
+ if (win) {
//! [1]
-
// Connect the beforeRendering signal to our paint function.
// Since this call is executed on the rendering thread it must be
// a Qt::DirectConnection
diff --git a/examples/quick/scenegraph/openglunderqml/squircle.h b/examples/quick/scenegraph/openglunderqml/squircle.h
index e292ca325f..449e02bbf1 100644
--- a/examples/quick/scenegraph/openglunderqml/squircle.h
+++ b/examples/quick/scenegraph/openglunderqml/squircle.h
@@ -61,14 +61,14 @@ public:
signals:
void tChanged();
-protected:
- void itemChange(ItemChange change, const ItemChangeData &);
-
public slots:
void paint();
void cleanup();
void sync();
+private slots:
+ void handleWindowChanged(QQuickWindow *win);
+
private:
QOpenGLShaderProgram *m_program;