/* * Copyright 2008 Jason A. Donenfeld */ #ifndef COLLECTIONFILTER_H #define COLLECTIONFILTER_H #include class CollectionModel; class CollectionFilter : public QSortFilterProxyModel { Q_OBJECT public: CollectionFilter(QObject *parent, CollectionModel *parentModel); void setFilter(QString filter); QString filter() const { return m_filter; } QModelIndex currentItem() const; QModelIndex peekNext() const; QModelIndex moveNext(); QModelIndex peekPrevious() const; QModelIndex movePrevious(); void setCurrentItem(const QModelIndex&); private: bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const; QString m_filter; CollectionModel *m_parent; int m_selected; signals: void filterChanged(); }; #endif //COLLECTIONFILTER_H