akonadi
collectionmodel.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef AKONADI_COLLECTIONMODEL_H
00021 #define AKONADI_COLLECTIONMODEL_H
00022
00023 #include "akonadi_export.h"
00024
00025 #include <akonadi/collection.h>
00026
00027 #include <QtCore/QAbstractItemModel>
00028
00029 namespace Akonadi {
00030
00031 class CollectionModelPrivate;
00032
00053 class AKONADI_EXPORT CollectionModel : public QAbstractItemModel
00054 {
00055 Q_OBJECT
00056
00057 public:
00061 enum Roles {
00062 OldCollectionIdRole = Qt::UserRole + 1,
00063 OldCollectionRole = Qt::UserRole + 2,
00064 CollectionIdRole = Qt::UserRole + 10,
00065 CollectionRole = Qt::UserRole + 11,
00066 UserRole = Qt::UserRole + 42
00067 };
00068
00074 explicit CollectionModel( QObject *parent = 0 );
00075
00079 virtual ~CollectionModel();
00080
00087 void fetchCollectionStatistics( bool enable );
00088
00092 void includeUnsubscribed( bool include = true );
00093
00094 virtual int columnCount( const QModelIndex & parent = QModelIndex() ) const;
00095 virtual QVariant data( const QModelIndex & index, int role = Qt::DisplayRole ) const;
00096 virtual QModelIndex index( int row, int column, const QModelIndex & parent = QModelIndex() ) const;
00097 virtual QModelIndex parent( const QModelIndex & index ) const;
00098 virtual int rowCount( const QModelIndex & parent = QModelIndex() ) const;
00099 virtual QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
00100 virtual bool setHeaderData( int section, Qt::Orientation orientation, const QVariant &value, int role = Qt::EditRole );
00101 virtual bool setData( const QModelIndex &index, const QVariant &value, int role = Qt::EditRole );
00102 virtual Qt::ItemFlags flags( const QModelIndex &index ) const;
00103 virtual Qt::DropActions supportedDropActions() const;
00104 virtual QMimeData *mimeData( const QModelIndexList &indexes ) const;
00105 virtual bool dropMimeData( const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent );
00106 virtual QStringList mimeTypes() const;
00107
00108 protected:
00112 Collection collectionForId( Collection::Id id ) const;
00113
00114
00115 Akonadi::CollectionModelPrivate *d_ptr;
00116 explicit CollectionModel( CollectionModelPrivate *d, QObject *parent = 0 );
00117
00118
00119 private:
00120 Q_DECLARE_PRIVATE( CollectionModel )
00121
00122
00123 Q_PRIVATE_SLOT( d_func(), void startFirstListJob() )
00124 Q_PRIVATE_SLOT( d_func(), void collectionRemoved( const Akonadi::Collection& ) )
00125 Q_PRIVATE_SLOT( d_func(), void collectionChanged( const Akonadi::Collection& ) )
00126 Q_PRIVATE_SLOT( d_func(), void updateDone( KJob* ) )
00127 Q_PRIVATE_SLOT( d_func(), void collectionStatisticsChanged(
00128 Akonadi::Collection::Id,
00129 const Akonadi::CollectionStatistics& ) )
00130 Q_PRIVATE_SLOT( d_func(), void listDone( KJob* ) )
00131 Q_PRIVATE_SLOT( d_func(), void editDone( KJob* ) )
00132 Q_PRIVATE_SLOT( d_func(), void dropResult( KJob* ) )
00133 Q_PRIVATE_SLOT( d_func(), void collectionsChanged( const Akonadi::Collection::List& ) )
00134
00135 };
00136
00137 }
00138
00139 #endif