Collision handling restored
authorHeli Hyvättinen <heli.hyvattinen@kymp.net>
Mon, 25 Jul 2011 20:50:17 +0000 (23:50 +0300)
committerHeli Hyvättinen <heli.hyvattinen@kymp.net>
Mon, 25 Jul 2011 20:50:17 +0000 (23:50 +0300)
...by doing it inside setPos()

orientationcontrolledgraphicspixmapobject.cpp
orientationcontrolledgraphicspixmapobject.h

index 3913899..a1f6f24 100644 (file)
@@ -123,3 +123,16 @@ bool OrientationControlledGraphicsPixmapObject::handleCollisions()
     return true;
 }
 
+
+void OrientationControlledGraphicsPixmapObject::setPos(const QPointF &pos)
+{
+    QPointF oldPos = OrientationControlledGraphicsPixmapObject::pos();
+
+    QGraphicsPixmapItem::setPos(pos);
+
+    if (!handleCollisions())
+    {
+        QGraphicsPixmapItem::setPos(oldPos);
+    }
+
+}
index 25baeb8..cda40f7 100644 (file)
@@ -40,12 +40,15 @@ public:
 //    explicit OrientationControlledGraphicsPixmapObject(QGraphicsItem *parent = 0);
     explicit OrientationControlledGraphicsPixmapObject(QPixmap pixmap = 0, QGraphicsItem *parent = 0);
 
+
 signals:
 
+
 public slots:
     void startMoving();
     void stopMoving();
     void readRotationSensor();
+      virtual void setPos(const QPointF &pos);
 
 
 protected:
@@ -54,9 +57,11 @@ protected:
 */
     virtual bool handleCollisions();
 
+
 private:
 
     QRotationSensor rotationSensor_;
+    QPointF oldOldPos_;