*
* 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
{
/**
* @brief Clears filtering from list.
*
- * Shows all items.
+ * Clears m_filteredItemIDs and shows all items.
*/
void clearFilter();
+ void clearItemSelection();
+
/**
* @brief Clears list.
*
/**
* @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
*/
*/
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
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
};