{
qDebug() << __PRETTY_FUNCTION__;
+ m_filteredItemIDs.clear();
+
if (m_previousItem)
m_previousItem->setSelected(false);
{
qDebug() << __PRETTY_FUNCTION__;
+ m_filteredItemIDs = itemIDs;
+
foreach (ListItem *item, m_listItems) {
if (itemIDs.contains(m_listItems.key(item)))
setItemHidden(item, false);
{
qDebug() << __PRETTY_FUNCTION__;
- foreach (ListItem *item, m_listItems) {
- if (item->title().contains(pattern, Qt::CaseInsensitive))
- setItemHidden(item, false);
- else
- setItemHidden(item, true);
+ if (m_filteredItemIDs.isEmpty()) {
+ foreach (ListItem *item, m_listItems) {
+ if (item->title().contains(pattern, Qt::CaseInsensitive))
+ setItemHidden(item, false);
+ else
+ setItemHidden(item, true);
+ }
+ } else {
+ foreach (QString key, m_filteredItemIDs) {
+ ListItem *item = m_listItems.value(key);
+ if (item) {
+ if (item->title().contains(pattern, Qt::CaseInsensitive))
+ setItemHidden(item, false);
+ else
+ setItemHidden(item, true);
+ }
+ }
}
}
/**
* @brief Clears filtering from list.
*
- * Shows all items.
+ * Clears m_filteredItemIDs and shows all items.
*/
void clearFilter();
/**
* @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
*/
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
};
connect(m_friendsListPanel, SIGNAL(showPanelRequested(QWidget*)),
m_tabbedPanel, SLOT(showPanel(QWidget*)));
+ connect(m_routingPanel, SIGNAL(showPanelRequested(QWidget*)),
+ m_tabbedPanel, SLOT(showPanel(QWidget*)));
+
connect(m_tabbedPanel, SIGNAL(panelClosed()),
m_friendsListPanel, SLOT(anyPanelClosed()));
*/
void routeWaypointItemClicked(const GeoCoordinate &coordinate);
+ /**
+ * @brief Signal for requesting a panel to be opened
+ *
+ * @param widget Pointer to the widget that emitted the signal
+ */
+ void showPanelRequested(QWidget *widget);
+
/*******************************************************************************
* DATA MEMBERS
******************************************************************************/