vlistwidget.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #ifndef VLISTWIDGET_H
  2. #define VLISTWIDGET_H
  3. #include <QListWidget>
  4. #include "vsimplesearchinput.h"
  5. class VStyledItemDelegate;
  6. class VListWidget : public QListWidget, public ISimpleSearch
  7. {
  8. public:
  9. explicit VListWidget(QWidget *parent = Q_NULLPTR);
  10. // Clear list widget as well as other data.
  11. // clear() is not virtual to override.
  12. void clearAll();
  13. // Implement ISimpleSearch.
  14. virtual QList<void *> searchItems(const QString &p_text,
  15. Qt::MatchFlags p_flags) const Q_DECL_OVERRIDE;
  16. virtual void highlightHitItems(const QList<void *> &p_items) Q_DECL_OVERRIDE;
  17. virtual void clearItemsHighlight() Q_DECL_OVERRIDE;
  18. virtual void selectHitItem(void *p_item) Q_DECL_OVERRIDE;
  19. virtual int totalNumberOfItems() Q_DECL_OVERRIDE;
  20. virtual void selectNextItem(bool p_forward) Q_DECL_OVERRIDE;
  21. private slots:
  22. void handleSearchModeTriggered(bool p_inSearchMode);
  23. protected:
  24. void keyPressEvent(QKeyEvent *p_event) Q_DECL_OVERRIDE;
  25. void resizeEvent(QResizeEvent *p_event) Q_DECL_OVERRIDE;
  26. private:
  27. // Show or hide search input.
  28. void setSearchInputVisible(bool p_visible);
  29. VSimpleSearchInput *m_searchInput;
  30. VStyledItemDelegate *m_delegate;
  31. };
  32. #endif // VLISTWIDGET_H