1 #include "orientationcontrolledgraphicspixmapobject.h"
3 #include <QGraphicsScene>
5 //OrientationControlledGraphicsPixmapObject::OrientationControlledGraphicsPixmapObject (QGraphicsItem *parent) :
6 // QObject(), QGraphicsPixmapItem (parent)
11 OrientationControlledGraphicsPixmapObject::OrientationControlledGraphicsPixmapObject(QPixmap pixmap, QGraphicsItem *parent) :
12 QObject(), QGraphicsPixmapItem (pixmap, parent)
15 connect(&rotationSensor_,SIGNAL(readingChanged()),this,SLOT(readRotationSensor()));
21 void OrientationControlledGraphicsPixmapObject::startMoving()
23 rotationSensor_.start();
24 qDebug() << "started the sensor";
25 qDebug() << rotationSensor_.isActive();
29 void OrientationControlledGraphicsPixmapObject::stopMoving()
31 rotationSensor_.stop();
32 qDebug () << "trying to stop the sensor";
35 void OrientationControlledGraphicsPixmapObject::readRotationSensor()
37 if (!scene()) //no movement if this item does not belong to a scene
40 QRect sceneRectangle = scene()->sceneRect().toRect();
43 QRotationReading* pSensorData = rotationSensor_.reading();
45 int deltay = pSensorData->x(); //yes, you need the "x" value from the sensor for "y" direction in the scene...
46 int deltax = pSensorData->y(); //...and vice versa
49 // qDebug() << deltax << " " << deltay;
51 int newx = x() + deltax/15;
52 int newy = y() + deltay/15;
55 // qDebug() << sceneRectangle.left() << sceneRectangle.right();
58 setX(qBound(sceneRectangle.left(),newx,sceneRectangle.right()-pixmap().width()));
59 setY(qBound(sceneRectangle.top(),newy,sceneRectangle.bottom()-pixmap().height()));
64 void OrientationControlledGraphicsPixmapObject::setBoundaries(QRectF boundaryrect)
66 boundaryrect_ = boundaryrect;