Added Feature to show own location on the map
[situare] / src / map / ownlocationitem.cpp
1 /*
2    Situare - A location system for Facebook
3    Copyright (C) 2010  Ixonos Plc. Authors:
4
5        Ville Tiensuu - ville.tiensuu@ixonos.com
6
7    Situare is free software; you can redistribute it and/or
8    modify it under the terms of the GNU General Public License
9    version 2 as published by the Free Software Foundation.
10
11    Situare is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with Situare; if not, write to the Free Software
18    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
19    USA.
20 */
21
22 #include <QDebug>
23
24 #include "ownlocationitem.h"
25 #include "mapengine.h"
26 #include "mapcommon.h"
27
28 OwnLocationItem::OwnLocationItem()
29 {
30     qDebug() << __PRETTY_FUNCTION__;
31
32     QPixmap ownLocationIcon(":/res/images/led_red_h.png");
33     setPixmap(ownLocationIcon);
34
35     QPointF defaultLocation(DEFAULT_LONGITUDE,DEFAULT_LATITUDE);
36     //QPoint position = MapEngine::convertLatLonToSceneCoordinate(home);
37
38     setPos(MapEngine::convertLatLonToSceneCoordinate(defaultLocation));
39     setZValue(OWN_LOCATION_ICON_Z_LEVEL);
40     setOffset(-MAP_OWN_LOCATION_ICON_SIZE/2, -MAP_OWN_LOCATION_ICON_SIZE/2);
41     setFlag(QGraphicsItem::ItemIgnoresTransformations);
42 }
43
44 OwnLocationItem::OwnLocationItem(const qreal &longitude, const qreal &latitude)
45 {
46     QPointF ownPosition(longitude,latitude);
47
48     QPixmap ownLocationIcon(":/res/images/led_red_h.png");
49     setPixmap(ownLocationIcon);
50
51     setPos(MapEngine::convertLatLonToSceneCoordinate(ownPosition));
52     setZValue(OWN_LOCATION_ICON_Z_LEVEL);
53     setOffset(-MAP_OWN_LOCATION_ICON_SIZE/2, -MAP_OWN_LOCATION_ICON_SIZE/2);
54     setFlag(QGraphicsItem::ItemIgnoresTransformations);
55 }
56
57 OwnLocationItem::OwnLocationItem(const QPointF & ownPosition)
58 {
59     QPixmap ownLocationIcon(":/res/images/led_red_h.png");
60     setPixmap(ownLocationIcon);
61
62     setPos(MapEngine::convertLatLonToSceneCoordinate(ownPosition));
63     setZValue(OWN_LOCATION_ICON_Z_LEVEL);
64     setOffset(-MAP_OWN_LOCATION_ICON_SIZE/2, -MAP_OWN_LOCATION_ICON_SIZE/2);
65     setFlag(QGraphicsItem::ItemIgnoresTransformations);
66 }
67
68 void OwnLocationItem::setPosition(const QPointF & newPosition)
69 {
70     setPos(MapEngine::convertLatLonToSceneCoordinate(newPosition));
71 }
72
73 QPoint OwnLocationItem::position() const
74 {
75     QPointF currentPosition;
76     currentPosition = pos();
77
78     return currentPosition.toPoint();
79 }
80
81 void OwnLocationItem::hideOwnLocation()
82 {
83     hide();
84 }
85
86 void OwnLocationItem::showOwnLocation()
87 {
88     show();
89 }