2 Situare - A location system for Facebook
3 Copyright (C) 2010 Ixonos Plc. Authors:
5 Jussi Laitinen - jussi.laitinen@ixonos.com
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.
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.
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,
25 #include <QListWidget>
31 * @brief View for ListItems.
33 * ListView is used to show ListItems in list view. Items can be added, removed or
36 class ListView : public QListWidget
44 * @param parent QWidget
46 ListView(QWidget *parent = 0);
48 /******************************************************************************
49 * MEMBER FUNCTIONS AND SLOTS
50 ******************************************************************************/
53 * @brief Add item to view and item list.
56 * @param item item to add to view and list
58 void addListItem(const QString &key, ListItem *item);
61 * @brief Adds item to view.
63 * @param item FriendListItem
65 void addListItemToView(ListItem *item);
68 * @brief Clear unused items from view.
70 * Clears items which are not in user ID's list from the view and items list.
72 * @param userIDs list of new user ID's.
74 void clearUnused(const QStringList &userIDs);
77 * @brief Clears filtering from list.
86 * Items are removed from view and item list.
91 * @brief Checks if view contains item with userID.
93 * @param userID user's ID
94 * @return true if view contains item, false otherwise
96 bool contains(const QString &userID);
99 * @brief Sets filter to list.
101 * Hide all items that are not in the userIDs list.
103 * @param userIDs user ID's to items that are shown
105 void filter(const QList<QString> &userIDs);
108 * @brief Takes item from view.
110 * Item is not deleted.
112 * @param userID user's ID
115 ListItem *takeListItemFromView(const QString &userID);
118 * @brief Returns ListItem with userID.
120 * @param userID user's ID
123 ListItem *listItem(const QString &userID);
127 * @brief Slot for list item clicked.
129 * Toggles items selection state and emits listItemClicked signal.
131 virtual void listItemClicked(QListWidgetItem *item);
133 /******************************************************************************
135 ******************************************************************************/
138 * @brief Signal is emitted when list item is clicked.
140 * @param coordinates item's coordinates
142 void listItemClicked(const GeoCoordinate &coordinates);
144 /*******************************************************************************
146 ******************************************************************************/
148 ListItem *m_previousItem; ///< Previously selected item
149 QHash<QString, ListItem *> m_listItems; ///< List of items in this view. Key = user ID