From c7ba279815f9bd35a78ede33f516583cf8b022ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20R=C3=B8dal?= Date: Wed, 23 Nov 2011 09:36:51 +0100 Subject: Added rotation animation to paintedwindow example. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This serves as a useful test case for the QScreen orientation API. Change-Id: I009ebd8b6d345453620420d84f3ff9d2d2e2663e Reviewed-by: Jørgen Lind --- examples/opengl/paintedwindow/paintedwindow.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'examples/opengl/paintedwindow/paintedwindow.h') diff --git a/examples/opengl/paintedwindow/paintedwindow.h b/examples/opengl/paintedwindow/paintedwindow.h index dcf8110e24..28e06ec4df 100644 --- a/examples/opengl/paintedwindow/paintedwindow.h +++ b/examples/opengl/paintedwindow/paintedwindow.h @@ -44,7 +44,10 @@ #include #include +#include + #include +#include #include QT_BEGIN_NAMESPACE @@ -54,16 +57,39 @@ QT_END_NAMESPACE class PaintedWindow : public QWindow { Q_OBJECT + Q_PROPERTY(qreal rotation READ rotation WRITE setRotation NOTIFY rotationChanged) + public: PaintedWindow(); + qreal rotation() const { return m_rotation; } + +signals: + void rotationChanged(qreal rotation); + private slots: void paint(); + void setRotation(qreal r); + void orientationChanged(Qt::ScreenOrientation newOrientation); + void rotationDone(); private: void resizeEvent(QResizeEvent *); void exposeEvent(QExposeEvent *); void mousePressEvent(QMouseEvent *); + void paint(QPainter *painter, const QRect &rect); + QOpenGLContext *m_context; + qreal m_rotation; + + QImage m_prevImage; + QImage m_nextImage; + qreal m_deltaRotation; + + Qt::ScreenOrientation m_targetOrientation; + Qt::ScreenOrientation m_nextTargetOrientation; + + QPropertyAnimation *m_animation; + QTimer *m_paintTimer; }; -- cgit v1.2.3