From: Heli Hyvättinen Date: Mon, 25 Jul 2011 20:50:17 +0000 (+0300) Subject: Collision handling restored X-Git-Tag: v0.3.0~17 X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;h=a7f960cbdeff32f5ab780489287ad1c30b5efc16;p=ghostsoverboard Collision handling restored ...by doing it inside setPos() --- diff --git a/orientationcontrolledgraphicspixmapobject.cpp b/orientationcontrolledgraphicspixmapobject.cpp index 3913899..a1f6f24 100644 --- a/orientationcontrolledgraphicspixmapobject.cpp +++ b/orientationcontrolledgraphicspixmapobject.cpp @@ -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); + } + +} diff --git a/orientationcontrolledgraphicspixmapobject.h b/orientationcontrolledgraphicspixmapobject.h index 25baeb8..cda40f7 100644 --- a/orientationcontrolledgraphicspixmapobject.h +++ b/orientationcontrolledgraphicspixmapobject.h @@ -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_;