From 9ace4e68eb0636284ecf73ed82e4518bbf0208be Mon Sep 17 00:00:00 2001
From: Alexis Menard <alexis.menard@nokia.com>
Date: Thu, 25 Mar 2010 07:08:15 +0100
Subject: Port Flickable and Flipable to support QGraphicsObject.

Replacing QDeclarativeItem* members by QGraphicsObject*. Build fix too.

Reviewed-by:akennedy
---
 .../graphicsitems/qdeclarativeflickable.cpp         |  4 ++--
 .../graphicsitems/qdeclarativeflickable_p.h         |  4 ++--
 .../graphicsitems/qdeclarativeflipable.cpp          | 21 +++++++++++----------
 .../graphicsitems/qdeclarativeflipable_p.h          | 12 ++++++------
 4 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
index 9ccb3b6..98502fd 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
@@ -990,10 +990,10 @@ QDeclarativeListProperty<QObject> QDeclarativeFlickable::flickableData()
     return QDeclarativeListProperty<QObject>(this, (void *)d, QDeclarativeFlickablePrivate::data_append);
 }
 
-QDeclarativeListProperty<QDeclarativeItem> QDeclarativeFlickable::flickableChildren()
+QDeclarativeListProperty<QGraphicsObject> QDeclarativeFlickable::flickableChildren()
 {
     Q_D(QDeclarativeFlickable);
-    return d->viewport->fxChildren();
+    return QGraphicsItemPrivate::get(d->viewport)->childrenList();
 }
 
 /*!
diff --git a/src/declarative/graphicsitems/qdeclarativeflickable_p.h b/src/declarative/graphicsitems/qdeclarativeflickable_p.h
index 7dcab98..1fa2c74 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeflickable_p.h
@@ -82,7 +82,7 @@ class Q_DECLARATIVE_EXPORT QDeclarativeFlickable : public QDeclarativeItem
     Q_PROPERTY(QDeclarativeFlickableVisibleArea *visibleArea READ visibleArea CONSTANT)
 
     Q_PROPERTY(QDeclarativeListProperty<QObject> flickableData READ flickableData)
-    Q_PROPERTY(QDeclarativeListProperty<QDeclarativeItem> flickableChildren READ flickableChildren)
+    Q_PROPERTY(QDeclarativeListProperty<QGraphicsObject> flickableChildren READ flickableChildren)
     Q_CLASSINFO("DefaultProperty", "flickableData")
 
     Q_ENUMS(FlickDirection)
@@ -92,7 +92,7 @@ public:
     ~QDeclarativeFlickable();
 
     QDeclarativeListProperty<QObject> flickableData();
-    QDeclarativeListProperty<QDeclarativeItem> flickableChildren();
+    QDeclarativeListProperty<QGraphicsObject> flickableChildren();
 
     bool overShoot() const;
     void setOverShoot(bool);
diff --git a/src/declarative/graphicsitems/qdeclarativeflipable.cpp b/src/declarative/graphicsitems/qdeclarativeflipable.cpp
index 0e2ae63..cb4044f 100644
--- a/src/declarative/graphicsitems/qdeclarativeflipable.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeflipable.cpp
@@ -59,8 +59,8 @@ public:
     void updateSceneTransformFromParent();
 
     QDeclarativeFlipable::Side current;
-    QDeclarativeGuard<QDeclarativeItem> front;
-    QDeclarativeGuard<QDeclarativeItem> back;
+    QDeclarativeGuard<QGraphicsObject> front;
+    QDeclarativeGuard<QGraphicsObject> back;
 };
 
 /*!
@@ -112,13 +112,13 @@ QDeclarativeFlipable::~QDeclarativeFlipable()
   The front and back sides of the flipable.
 */
 
-QDeclarativeItem *QDeclarativeFlipable::front()
+QGraphicsObject *QDeclarativeFlipable::front()
 {
     Q_D(const QDeclarativeFlipable);
     return d->front;
 }
 
-void QDeclarativeFlipable::setFront(QDeclarativeItem *front)
+void QDeclarativeFlipable::setFront(QGraphicsObject *front)
 {
     Q_D(QDeclarativeFlipable);
     if (d->front) {
@@ -131,13 +131,13 @@ void QDeclarativeFlipable::setFront(QDeclarativeItem *front)
         d->front->setOpacity(0.);
 }
 
-QDeclarativeItem *QDeclarativeFlipable::back()
+QGraphicsObject *QDeclarativeFlipable::back()
 {
     Q_D(const QDeclarativeFlipable);
     return d->back;
 }
 
-void QDeclarativeFlipable::setBack(QDeclarativeItem *back)
+void QDeclarativeFlipable::setBack(QGraphicsObject *back)
 {
     Q_D(QDeclarativeFlipable);
     if (d->back) {
@@ -195,12 +195,13 @@ void QDeclarativeFlipablePrivate::updateSceneTransformFromParent()
         current = newSide;
         if (current == QDeclarativeFlipable::Back && back) {
             QTransform mat;
-            mat.translate(back->width()/2,back->height()/2);
-            if (back->width() && p1.x() >= p2.x())
+            QGraphicsItemPrivate *dBack = QGraphicsItemPrivate::get(back);
+            mat.translate(dBack->width()/2,dBack->height()/2);
+            if (dBack->width() && p1.x() >= p2.x())
                 mat.rotate(180, Qt::YAxis);
-            if (back->height() && p2.y() >= p3.y())
+            if (dBack->height() && p2.y() >= p3.y())
                 mat.rotate(180, Qt::XAxis);
-            mat.translate(-back->width()/2,-back->height()/2);
+            mat.translate(-dBack->width()/2,-dBack->height()/2);
             back->setTransform(mat);
         }
         if (front)
diff --git a/src/declarative/graphicsitems/qdeclarativeflipable_p.h b/src/declarative/graphicsitems/qdeclarativeflipable_p.h
index 8b9c24c..302f083 100644
--- a/src/declarative/graphicsitems/qdeclarativeflipable_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeflipable_p.h
@@ -60,8 +60,8 @@ class Q_DECLARATIVE_EXPORT QDeclarativeFlipable : public QDeclarativeItem
     Q_OBJECT
 
     Q_ENUMS(Side)
-    Q_PROPERTY(QDeclarativeItem *front READ front WRITE setFront)
-    Q_PROPERTY(QDeclarativeItem *back READ back WRITE setBack)
+    Q_PROPERTY(QGraphicsObject *front READ front WRITE setFront)
+    Q_PROPERTY(QGraphicsObject *back READ back WRITE setBack)
     Q_PROPERTY(Side side READ side NOTIFY sideChanged)
     //### flipAxis
     //### flipRotation
@@ -69,11 +69,11 @@ public:
     QDeclarativeFlipable(QDeclarativeItem *parent=0);
     ~QDeclarativeFlipable();
 
-    QDeclarativeItem *front();
-    void setFront(QDeclarativeItem *);
+    QGraphicsObject *front();
+    void setFront(QGraphicsObject *);
 
-    QDeclarativeItem *back();
-    void setBack(QDeclarativeItem *);
+    QGraphicsObject *back();
+    void setBack(QGraphicsObject *);
 
     enum Side { Front, Back };
     Side side() const;
-- 
cgit v0.12