df11c04c78afc72c1e7baa7631ac64cb17c13116
[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 show / hide user information
57      *
58      * @param show true if userinfo should be shown
59      */
60     void showUserInfo(bool show);
61
62     /**
63      * @brief Slot to capture returning user data from situareService
64      *
65      * @param user
66      */
67     void userDataReceived(User *user);
68
69 /*******************************************************************************
70  * SIGNALS
71  ******************************************************************************/
72 signals:
73     /**
74      * @brief Signal for collapse user info
75      */
76     void collapse();
77
78     /**
79      * @brief Signal for finding user.
80      *
81      * @param coordinates user geo coordinates
82      */
83     void findUser(const GeoCoordinate &coordinates);
84
85     /**
86      * @brief Signal that used to inform user that his message/location update tp Situare server
87      *        was failed.
88      *        This signal is originally sended from UserInfo
89      *
90      * @param message message for notification
91      * @param modal true if modal notification otherwice false
92      */
93     void notificateUpdateFailing(const QString &message, bool modal);
94
95     /**
96      * @brief Signal for refreshing user data.
97      */
98     void refreshUserData();
99
100     /**
101      * @brief Signal for requesting reverseGeo from SituareEngine
102      */
103     void requestReverseGeo();
104
105     /**
106      * @brief Signals, when address data is ready
107      *
108      * @param address Street address
109      */
110     void reverseGeoReady(const QString &address);
111
112     /**
113      * @brief Signal Signal for requestLocationUpdate from SituareEngine via MainWindow class
114      *
115      * @param status Status message
116      * @param publish Publish on Facebook
117      */
118     void statusUpdate(const QString &status, const bool &publish);
119
120     /**
121      * @brief Signals when updateLocationDialog's data must be cleared
122      */
123     void clearUpdateLocationDialogData();
124
125 /*******************************************************************************
126  * DATA MEMBERS
127  ******************************************************************************/
128 private:
129     UserInfo *m_userInfo; ///< Instance of the user info view
130 };
131 #endif // USERPANEL_H