Reviewed by: Jussi Laitinen and Marko Niemelä
[situare] / src / map / friendlocationitem.h
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 #ifndef FRIENDLOCATIONITEM_H
23 #define FRIENDLOCATIONITEM_H
24
25
26 #include <QObject>
27
28 #include "baselocationitem.h"
29
30 /**
31 * @brief Class that shows friends location icons on the map
32 *
33 * @class FriendLocationItem friendlocationitem.h "map/friendlocationitem.h"
34 * @author Ville Tiensuu.
35 */
36 class FriendLocationItem : public BaseLocationItem
37 {
38     Q_OBJECT
39
40 public:
41
42     /**
43     * @brief Constructor of FriendLocationItem.
44     *        Sets position to specified location.
45     *        Loads and sets default pixmap that is show on the map.
46     *        Sets default Z-value.
47     *        Sets offset so that achor of the picture is at the origin. this feature is
48     *        needed to center icon on the middle of the location.
49     *        Sets item to ignore transformations. this feature is needed to make icon on the map
50     *        immune to scaling
51     *
52     * @param icon Friends Facebook profile picture, friendsLocation Position in QPoinF, parent
53     * @param friendsLocation Location of friend
54     * @param parent Parent
55     */
56     FriendLocationItem(const QPixmap &icon, const QPointF &friendsLocation, QObject *parent = 0);    
57
58     /**
59     * @brief getter for m_userId
60     *
61     * @return QString friends user identity
62     */
63     QString userId() const;
64
65     /**
66     * @brief sets name for friend.
67     *
68     * @param userId friends user identity
69     */
70     void setUserId(const QString &userId);
71
72 signals:
73
74    /**
75    * @brief signal is emitted when friends icon is clicked on the map
76    *
77    * @param m_userId friends user identity
78    */
79    void iconClicked(QString m_userId);
80
81 protected:
82
83    /**
84    * @brief method that detects when friend icon is clicked
85    *
86    * @param event detects the mouse click (or touch in Maemo)
87    */
88     void mousePressEvent(QGraphicsSceneMouseEvent *event);    
89
90 private:
91     QString m_userId; ///< Friends user ID
92 };
93
94 #endif // FRIENDLOCATIONITEM_H