#ifndef FRIENDLISTPANEL_H
#define FRIENDLISTPANEL_H
-#include <QWidget>
+#include "panelbase.h"
class QLabel;
class QLineEdit;
class QPushButton;
class FriendListItemDelegate;
-class GeoCoordinate;
class FriendListView;
+class GeoCoordinate;
+class ImageButton;
class User;
/**
* @author Jussi Laitinen - jussi.laitinen (at) ixonos.com
* @author Sami Rämö - sami.ramo (at) ixonos.com
*/
-class FriendListPanel : public QWidget
+class FriendListPanel : public PanelBase
{
Q_OBJECT
/**
* @brief Re-implemented from QWidget::hideEvent()
*
- * Calls updateKeyboardGrabbing().
+ * Calls updateKeyboardGrabbing() and clearFriendGroupFiltering().
*
* @param event
*/
/**
* @brief Called when any of the panel tabs is closed
*
- * Does clear the filtering. Calls updateKeyboardGrabbing() for releasing the grabbing when
- * FriendListPanel is closed, not changed to other panel. In this case the hideEvent() is
- * not triggered.
+ * Does call clearFriendGroupFiltering().
+ *
+ * Calls updateKeyboardGrabbing() for releasing the grabbing when FriendListPanel is closed, not
+ * changed to other panel. In this case the hideEvent() is not triggered.
*/
void anyPanelClosed();
void anyPanelOpened();
/**
- * @brief Slot for clearing the friend list filtering.
+ * @brief Slot for clearing the filtering
+ *
+ * Clears friend group (or single friend) filtering and calls clearTextFiltering().
*/
void clearFiltering();
/**
+ * @brief Slot for clearing the text based filtering.
+ *
+ * Does clear only the text based filtering. Friend group based filtering is not affected.
+ */
+ void clearTextFiltering();
+
+ /**
* @brief Updates the filtering when filtering text value is changed
*
* Filtering UI elements are invoked when the text becomes not empty and hidden when text
*/
void routeToFriend(const GeoCoordinate &coordinates);
- /**
- * @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
******************************************************************************/
private:
- bool m_mainWindowIsTopmost; ///< Is the MainWindow the topmost one
- bool m_somePanelIsOpen; ///< Is any panel tab open
+ bool m_mainWindowIsTopmost; ///< Is the MainWindow the topmost one
+ bool m_somePanelIsOpen; ///< Is any panel tab open
- QLabel *m_friendListLabel; ///< Friend list label
+ QLabel *m_headerLabel; ///< Show how many friends are selected
- QLineEdit *m_filterField; ///< Text field for the filter text
+ QLineEdit *m_filterField; ///< Text field for the filter text
- QPushButton *m_clearFilterButton; ///< Button to clear list filtering
- QPushButton *m_filterClearButton; ///< Button for clearing the filtering
- QPushButton *m_routeButton; ///< Button to route to friend
+ QPushButton *m_clearTextFilteringButton; ///< Button for clearing the text filtering
- QWidget *m_friendListHeaderWidget; ///< Friend list header widget
+ QWidget *m_headerWidget; ///< Friend list header widget
- FriendListView *m_friendListView; ///< Friend list view
+ FriendListView *m_friendListView; ///< Friend list view
+ ImageButton *m_clearGroupFilteringButton; ///< Button for clearing friend group filtering
+ ImageButton *m_routeButton; ///< Button for routing to selected friend
};
#endif // FRIENDLISTPANEL_H