50bdb9aeaa704ae3095e797bc9dd75d856232834
[situare] / src / ui / userinfopanel.h
1  /*
2     Situare - A location system for Facebook
3     Copyright (C) 2010  Ixonos Plc. Authors:
4
5         Kaj Wallin - kaj.wallin@ixonos.com
6         Katri Kaikkonen - katri.kaikkonen@ixonos.com
7         Pekka Nissinen - pekka.nissinen@ixonos.com
8
9     Situare is free software; you can redistribute it and/or
10     modify it under the terms of the GNU General Public License
11     version 2 as published by the Free Software Foundation.
12
13     Situare is distributed in the hope that it will be useful,
14     but WITHOUT ANY WARRANTY; without even the implied warranty of
15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16     GNU General Public License for more details.
17
18     You should have received a copy of the GNU General Public License
19     along with Situare; if not, write to the Free Software
20     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
21     USA.
22  */
23
24 #ifndef USERPANEL_H
25 #define USERPANEL_H
26
27 #include "panelbase.h"
28 #include "user/user.h"
29
30 class UserInfo;
31
32 /**
33  * @brief Class for sliding user information panel
34  *
35  * @author Kaj Wallin - kaj.wallin (at) ixonos.com
36  * @author Katri Kaikkonen - katri.kaikkonen (at) ixonos.com
37  * @author Pekka Nissinen - pekka.nissinen (at) ixonos.com
38  */
39 class UserInfoPanel : public PanelBase
40 {
41     Q_OBJECT
42
43 public:
44     /**
45      * @brief Default constructor
46      *
47      * @param parent
48      */
49     UserInfoPanel(QWidget *parent = 0);
50
51 /*******************************************************************************
52  * MEMBER FUNCTIONS AND SLOTS
53  ******************************************************************************/
54 public slots:
55     /**
56      * @brief Slot to capture returning user data from situareService
57      *
58      * @param user
59      */
60     void userDataReceived(User *user);
61
62 /*******************************************************************************
63  * SIGNALS
64  ******************************************************************************/
65 signals:
66     /**
67      * @brief Signal for finding user.
68      *
69      * @param coordinates user geo coordinates
70      */
71     void findUser(const GeoCoordinate &coordinates);
72
73     /**
74      * @brief Signal for collapse user info
75      */
76     void collapse();
77
78     /**
79      * @brief Signal that used to inform user that his message/location update tp Situare server
80      *        was failed.
81      *        This signal is originally sended from UserInfo
82      *
83      * @param message message for notification
84      * @param modal true if modal notification otherwice false
85      */
86     void notificateUpdateFailing(const QString &message, bool modal);
87
88     /**
89      * @brief Signal for refreshing user data.
90      */
91     void refreshUserData();
92
93     /**
94      * @brief Signal for requesting reverseGeo from SituareEngine
95      */
96     void requestReverseGeo();
97
98     /**
99      * @brief Signals, when address data is ready
100      *
101      * @param address Street address
102      */
103     void reverseGeoReady(const QString &address);
104
105     /**
106      * @brief Signal Signal for requestLocationUpdate from SituareEngine via MainWindow class
107      *
108      * @param status Status message
109      * @param publish Publish on Facebook
110      */
111     void statusUpdate(const QString &status, const bool &publish);
112
113     /**
114      * @brief Signals when updateLocationDialog's data must be cleared
115      */
116     void clearUpdateLocationDialogData();
117
118 /*******************************************************************************
119  * DATA MEMBERS
120  ******************************************************************************/
121 private:
122     UserInfo *m_userInfo; ///< Instance of the user info view
123 };
124 #endif // USERPANEL_H