c1a388c2269f047348f0cc88413db647d280747f
[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     void userDataChanged(User* user,QList<User*>& friends);
66
67 signals:
68     void toggleProgressIndicator(bool state);
69
70 /*******************************************************************************
71  * DATA MEMBERS
72  ******************************************************************************/
73 public:
74     InfoTab *m_personalInfo;    ///< Personal info tab
75
76 private:
77     QVBoxLayout *m_vbox;    ///< Holds the graphics view
78     Pixmap *m_arrowbutton;    ///< Button which reveals/hides the info tab when pressed
79     Pixmap *m_leftSideBar;
80     Pixmap *m_slidingLeftSideBar;
81     Pixmap *m_personalInfoBackGround;
82     Pixmap *m_arrowLeft;
83     Pixmap *m_arrowRight;
84     QGraphicsProxyWidget *m_widgetProxy; ///< Embeds InfoTab to graphics view
85     QAbstractTransition *m_trans1;    ///< Animation transition from hidden state to visible
86     QAbstractTransition *m_trans2;    ///< Animation transition from visible to hidden
87     QPropertyAnimation *m_anim1;    ///< Animation for infotab from hidden to visible
88     QPropertyAnimation *m_anim2;    ///< Animation for arrowbutton from hidden to visible
89     QPropertyAnimation *m_anim3;    ///< Animation for infotab from visible to hidden
90     QPropertyAnimation *m_anim4;    ///< Animation for arrowbutton from visible to hidden
91     QPropertyAnimation *m_anim5;    ///< Animation
92     QPropertyAnimation *m_anim6;    ///< Animation for arrowbutton from visible to hidden
93     QPropertyAnimation *m_anim7;
94     QPropertyAnimation *m_anim8;
95     QPropertyAnimation *m_anim9;
96     QPropertyAnimation *m_anim10;
97     QPropertyAnimation *m_anim11;
98     QPropertyAnimation *m_anim12;
99     QPropertyAnimation *m_anim13;
100     QPropertyAnimation *m_anim14;
101     UpdateLocationDialog *m_locationDialog; ///< Message dialog
102
103     FriendListView *m_friendListView;
104 };
105
106 #endif // LISTVIEWTAB_H