Added return values to ListItem::itemClicked and added routing panel
[situare] / src / ui / listview.h
index 40a1660..dc04d2f 100644 (file)
@@ -32,6 +32,8 @@ class ListItem;
 *
 * ListView is used to show ListItems in list view. Items can be added, removed or
 * filtered.
+*
+* @author Jussi Laitinen - jussi.laitinen (at) ixonos.com
 */
 class ListView : public QListWidget
 {
@@ -83,10 +85,12 @@ public:
     /**
     * @brief Clears filtering from list.
     *
-    * Shows all items.
+    * Clears m_filteredItemIDs and shows all items.
     */
     void clearFilter();
 
+    void clearItemSelection();
+
     /**
     * @brief Clears list.
     *
@@ -114,7 +118,7 @@ public:
     /**
     * @brief Filters list by text pattern.
     *
-    * Filtering uses item names.
+    * Filtering uses item names. If filtering by item IDs is on, filters only those items.
     *
     * @param pattern text pattern to filter
     */
@@ -138,15 +142,44 @@ public:
     */
     ListItem *listItem(const QString &itemID);
 
-private:
+    /**
+    * @brief Returns ListItem by index.
+    *
+    * @param index item's index
+    * @return ListItem
+    */
+    ListItem *listItemAt(int index);
+
+    /**
+    * @brief Returns selected ListItem.
+    *
+    * @return ListItem if there is selected, 0 otherwise
+    */
+    ListItem *selectedItem();
+
+    /**
+    * @brief Sets selected item.
+    *
+    * @param item ListItem to select
+    */
+    void setSelectedItem(ListItem *item);
 
 protected slots:
     /**
     * @brief Slot for list item clicked.
     *
     * Toggles items selection state and emits listItemClicked signal.
+    * @return true if item was selected, false otherwise
+    */
+    virtual bool listItemClicked(ListItem *item);
+
+private slots:
+    /**
+    * @brief Slot for list item clicked.
+    *
+    * Calls listItemClicked(ListItem *item)
     */
-    virtual void listItemClicked(QListWidgetItem *item);
+    void listItemClicked(QListWidgetItem *item);
 
 /*******************************************************************************
  * DATA MEMBERS
@@ -154,6 +187,8 @@ protected slots:
 private:
     QHash<QString, ListItem *> m_listItems; ///< List of items in this view. Key = user ID
 
+    QList<QString> m_filteredItemIDs;       ///< List of filtered item IDs
+
     ListItem *m_previousItem;               ///< Previously selected item
 };