akonadi
entitymimetypefiltermodel.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef AKONADI_ENTITYMIMETYPEFILTERMODEL_H
00022 #define AKONADI_ENTITYMIMETYPEFILTERMODEL_H
00023
00024 #include "akonadi_export.h"
00025 #include "entitytreemodel.h"
00026
00027 #include <QtGui/QSortFilterProxyModel>
00028
00029 namespace Akonadi {
00030
00031 class EntityMimeTypeFilterModelPrivate;
00032
00061 class AKONADI_EXPORT EntityMimeTypeFilterModel : public QSortFilterProxyModel
00062 {
00063 Q_OBJECT
00064
00065 public:
00071 explicit EntityMimeTypeFilterModel( QObject *parent = 0 );
00072
00076 virtual ~EntityMimeTypeFilterModel();
00077
00083 void addMimeTypeInclusionFilters( const QStringList &mimeTypes );
00084
00090 void addMimeTypeExclusionFilters( const QStringList &mimeTypes );
00091
00097 void addMimeTypeInclusionFilter( const QString &mimeType );
00098
00104 void addMimeTypeExclusionFilter( const QString &mimeType );
00105
00109 QStringList mimeTypeInclusionFilters() const;
00110
00114 QStringList mimeTypeExclusionFilters() const;
00115
00119 void clearFilters();
00120
00126 void setHeaderGroup( EntityTreeModel::HeaderGroup headerGroup );
00127
00128 virtual QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
00129
00130 virtual bool hasChildren(const QModelIndex& parent = QModelIndex()) const;
00131
00132 virtual bool canFetchMore(const QModelIndex &parent) const;
00133
00134 virtual QModelIndexList match( const QModelIndex& start, int role, const QVariant& value, int hits = 1, Qt::MatchFlags flags = Qt::MatchFlags( Qt::MatchStartsWith | Qt::MatchWrap ) ) const;
00135
00136 virtual int columnCount(const QModelIndex& parent = QModelIndex()) const;
00137
00138 protected:
00139 virtual bool filterAcceptsRow( int sourceRow, const QModelIndex &sourceParent ) const;
00140
00141 private:
00142
00143 Q_DECLARE_PRIVATE( EntityMimeTypeFilterModel )
00144 EntityMimeTypeFilterModelPrivate * const d_ptr;
00145
00146 };
00147
00148 }
00149
00150 #endif