#define FRIENDMODEL_H
#include <QAbstractListModel>
+#include <QSortFilterProxyModel>
#include "user.h"
void setFriends(const QList<User *>& friends);
void resetFriends();
- void filter(const QList<User*>& friends);
- Q_INVOKABLE void resetFilter();
-
int rowCount(const QModelIndex & parent = QModelIndex()) const;
QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const;
private:
- QList<User *> m_all_friends;
- QList<User *> m_filter;
QList<User *> m_friends;
};
+class FilteredFriendModel : public QSortFilterProxyModel
+{
+ Q_OBJECT
+
+public:
+ explicit FilteredFriendModel(QObject *parent = 0);
+
+ void setFilter(const QList<User*>& filter);
+
+ Q_INVOKABLE void resetFilter();
+
+protected:
+ virtual bool filterAcceptsRow(int source_row, const QModelIndex & source_parent) const;
+
+private:
+ QList<User *> m_filter;
+};
+
#endif // FRIENDMODEL_H