336dc9c8ef0dfbc28b15512fb28fc09542233bb1
[situare] / src / ui / listviewscreen.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        Jukka Saastamoinen - jukka.saastamoinen@ixonos.com
7
8     Situare is free software; you can redistribute it and/or
9     modify it under the terms of the GNU General Public License
10     version 2 as published by the Free Software Foundation.
11
12     Situare is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15     GNU General Public License for more details.
16
17     You should have received a copy of the GNU General Public License
18     along with Situare; if not, write to the Free Software
19     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
20     USA.
21  */
22
23
24 #ifndef LISTVIEWTAB_H
25 #define LISTVIEWTAB_H
26
27 #include <QtGui>
28 #include "infotab.h"
29 #include "pixmap.h"
30 #include "updatelocation/updatelocationdialog.h"
31
32 class FriendListView;
33 class User;
34
35 /**
36 * @brief List View class. Used for displaying List of friends
37 *
38 * @class ListViewScreen mainwindow.h "src/ui/mainwindow.h"
39 */
40 class ListViewScreen : public QWidget
41 {
42 Q_OBJECT
43 public:
44     /**
45     * @brief Constructor
46     *
47     * @param parent Parent
48     */
49     ListViewScreen(QWidget *parent = 0);
50     /**
51     * @brief Destructor
52     *
53     */
54     ~ListViewScreen();
55
56 /*******************************************************************************
57  * MEMBER FUNCTIONS AND SLOTS
58  ******************************************************************************/
59 public slots:
60     /**
61     * @brief Slot to open Location update dialog
62     */
63     void updateMessage();
64
65     /**
66     * @brief Slot for new user and friend data.
67     *
68     * @param user User object
69     * @param friends list of User objects
70     */
71     void userDataChanged(User* user,QList<User*>& friends);
72
73 signals:
74     /**
75     * @brief Signal for progress bar indicator toggling.
76     *
77     * @param state true if progress bar should be shown, false otherwise
78     */
79     void toggleProgressIndicator(bool state);
80
81 /*******************************************************************************
82  * DATA MEMBERS
83  ******************************************************************************/
84 public:
85     InfoTab *m_personalInfo;    ///< Personal info tab
86
87 private:
88     QVBoxLayout *m_vbox;    ///< Holds the graphics view
89     Pixmap *m_arrowbutton;    ///< Button which reveals/hides the info tab when pressed
90     Pixmap *m_leftSideBar;
91     Pixmap *m_slidingLeftSideBar;
92     Pixmap *m_personalInfoBackGround;
93     Pixmap *m_arrowLeft;
94     Pixmap *m_arrowRight;
95     QGraphicsProxyWidget *m_widgetProxy; ///< Embeds InfoTab to graphics view
96     QAbstractTransition *m_trans1;    ///< Animation transition from hidden state to visible
97     QAbstractTransition *m_trans2;    ///< Animation transition from visible to hidden
98     QPropertyAnimation *m_anim1;    ///< Animation for infotab from hidden to visible
99     QPropertyAnimation *m_anim2;    ///< Animation for arrowbutton from hidden to visible
100     QPropertyAnimation *m_anim3;    ///< Animation for infotab from visible to hidden
101     QPropertyAnimation *m_anim4;    ///< Animation for arrowbutton from visible to hidden
102     QPropertyAnimation *m_anim5;    ///< Animation
103     QPropertyAnimation *m_anim6;    ///< Animation for arrowbutton from visible to hidden
104     QPropertyAnimation *m_anim7;
105     QPropertyAnimation *m_anim8;
106     QPropertyAnimation *m_anim9;
107     QPropertyAnimation *m_anim10;
108     QPropertyAnimation *m_anim11;
109     QPropertyAnimation *m_anim12;
110     QPropertyAnimation *m_anim13;
111     QPropertyAnimation *m_anim14;
112     UpdateLocationDialog *m_locationDialog; ///< Message dialog
113
114     FriendListView *m_friendListView;   ///< Friend list view
115 };
116
117 #endif // LISTVIEWTAB_H