00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef RECURSIVEFILTERPROXYMODEL_H
00022 #define RECURSIVEFILTERPROXYMODEL_H
00023
00024 #include "akonadiprivate_export.h"
00025
00026 #include <QtGui/QSortFilterProxyModel>
00027
00028 class KRecursiveFilterProxyModelPrivate;
00029
00087 class AKONADI_TESTS_EXPORT KRecursiveFilterProxyModel : public QSortFilterProxyModel
00088 {
00089 Q_OBJECT
00090 public:
00094 KRecursiveFilterProxyModel(QObject* parent = 0);
00095
00099 virtual ~KRecursiveFilterProxyModel();
00100
00102 void setSourceModel( QAbstractItemModel *model );
00103
00104 protected:
00108 virtual bool acceptRow(int sourceRow, const QModelIndex &sourceParent) const;
00109
00110 private:
00112 bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
00113
00114 protected:
00115 KRecursiveFilterProxyModelPrivate * const d_ptr;
00116
00117 Q_DECLARE_PRIVATE(KRecursiveFilterProxyModel)
00118
00119 Q_PRIVATE_SLOT(d_func(), void sourceDataChanged(const QModelIndex &source_top_left, const QModelIndex &source_bottom_right))
00120 Q_PRIVATE_SLOT(d_func(), void sourceRowsAboutToBeInserted(const QModelIndex &source_parent, int start, int end))
00121 Q_PRIVATE_SLOT(d_func(), void sourceRowsInserted(const QModelIndex &source_parent, int start, int end))
00122 Q_PRIVATE_SLOT(d_func(), void sourceRowsAboutToBeRemoved(const QModelIndex &source_parent, int start, int end))
00123 Q_PRIVATE_SLOT(d_func(), void sourceRowsRemoved(const QModelIndex &source_parent, int start, int end))
00124 };
00125
00126 #endif
00127