6dd26b8bed7b61fc0d8b95438aa8dd29a15e76ce
[situare] / src / ui / friendlistview.h
1 /*
2    Situare - A location system for Facebook
3    Copyright (C) 2010  Ixonos Plc. Authors:
4
5        Jussi Laitinen - jussi.laitinen@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 FRIENDLISTVIEW_H
23 #define FRIENDLISTVIEW_H
24
25 #include <QWidget>
26 #include <QHash>
27
28 class QVBoxLayout;
29 class QLabel;
30
31 /**
32 * @brief FriendListView shows items in list.
33 *
34 */
35 class FriendListView : public QWidget
36 {
37     Q_OBJECT
38
39 public:
40     /**
41     * @brief Constructor.
42     *
43     * @param parent parent widget
44     */
45     FriendListView(QWidget *parent = 0);
46
47 /******************************************************************************
48 * MEMBER FUNCTIONS AND SLOTS
49 ******************************************************************************/
50 public:
51     /**
52     * @brief Add widget to view and widget list.
53     *
54     * @param key user ID
55     * @param widget widget to add to list
56     */
57     void addWidget(const QString &key, QWidget *widget);
58
59     /**
60     * @brief Clear view.
61     *
62     * Clears all items from the view and widget list.
63     */
64     void clear();
65
66     /**
67     * @brief Clears filtering from list.
68     *
69     * Calls show to all widgets.
70     */
71     void clearFilter();
72
73     /**
74     * @brief Sets filter to list.
75     *
76     * Hide all widgets that are not in the userIDs list.
77     *
78     * @param userIDs user ID's to widgets that are shown
79     */
80     void filter(const QList<QString> userIDs);
81
82 /******************************************************************************
83 * DATA MEMBERS
84 ******************************************************************************/
85 private:
86     QVBoxLayout *m_friendListLayout;    ///< Layout for this view
87     QHash<QString, QWidget *> widgets;           ///< List of widgets in this view. Key = user ID
88 };
89
90 #endif // FRIENDLISTVIEW_H