ResultFilterProxyModel.hpp 719 B

12345678910111213141516171819202122232425
  1. #pragma once
  2. #include <QSortFilterProxyModel>
  3. #include <unordered_set>
  4. #include <QString>
  5. class ResultFilterProxyModel : public QSortFilterProxyModel {
  6. Q_OBJECT
  7. public:
  8. explicit ResultFilterProxyModel(QObject *parent = nullptr);
  9. // Sets the search term and precalculates visible groups
  10. void setSearchText(const QString &searchText);
  11. protected:
  12. // Overrides default filtering to filter by our precalculated group visibility
  13. bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
  14. private:
  15. QString m_searchText;
  16. std::unordered_set<int> m_visibleGroupIds;
  17. // Helper method to scan the underlying model and populate m_visibleGroupIds
  18. void updateVisibleGroups();
  19. };