small updates to own location feature
[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     if (!ownLocationIcon.isNull()){
34         setPixmap(ownLocationIcon);
35
36         QPointF defaultLocation(DEFAULT_LONGITUDE,DEFAULT_LATITUDE);
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     else
45         qDebug() << "Own Location Icon cannot be loaded";
46 }
47
48 OwnLocationItem::OwnLocationItem(const qreal &longitude, const qreal &latitude)
49 {
50     QPointF ownPosition(longitude,latitude);
51
52     QPixmap ownLocationIcon(":/res/images/led_red_h.png");
53     if (!ownLocationIcon.isNull()){
54         setPixmap(ownLocationIcon);
55
56         setPos(MapEngine::convertLatLonToSceneCoordinate(ownPosition));
57         setZValue(OWN_LOCATION_ICON_Z_LEVEL);
58         setOffset(-MAP_OWN_LOCATION_ICON_SIZE/2, -MAP_OWN_LOCATION_ICON_SIZE/2);
59         setFlag(QGraphicsItem::ItemIgnoresTransformations);
60     }
61
62     else
63         qDebug() << "Own Location Icon cannot be loaded";
64 }
65
66 OwnLocationItem::OwnLocationItem(const QPointF & ownPosition)
67 {
68     QPixmap ownLocationIcon(":/res/images/led_red_h.png");
69     if (!ownLocationIcon.isNull()){
70         setPixmap(ownLocationIcon);
71
72         setPos(MapEngine::convertLatLonToSceneCoordinate(ownPosition));
73         setZValue(OWN_LOCATION_ICON_Z_LEVEL);
74         setOffset(-MAP_OWN_LOCATION_ICON_SIZE/2, -MAP_OWN_LOCATION_ICON_SIZE/2);
75         setFlag(QGraphicsItem::ItemIgnoresTransformations);
76     }
77
78     else
79         qDebug() << "Own Location Icon cannot be loaded";
80 }
81
82 void OwnLocationItem::setPosition(const QPointF & newPosition)
83 {
84     setPos(MapEngine::convertLatLonToSceneCoordinate(newPosition));
85 }
86
87 QPoint OwnLocationItem::position() const
88 {
89     QPointF currentPosition;
90     currentPosition = pos();
91
92     return currentPosition.toPoint();
93 }
94
95 void OwnLocationItem::hideOwnLocation()
96 {
97     hide();
98 }
99
100 void OwnLocationItem::showOwnLocation()
101 {
102     show();
103 }