00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef AKONADI_SPECIALCOLLECTIONS_H
00021 #define AKONADI_SPECIALCOLLECTIONS_H
00022
00023 #include "akonadi_export.h"
00024
00025 #include <QtCore/QObject>
00026
00027 #include "akonadi/collection.h"
00028 #include <akonadi/item.h>
00029
00030 class KCoreConfigSkeleton;
00031 class KJob;
00032
00033 namespace Akonadi {
00034
00035 class AgentInstance;
00036 class SpecialCollectionsPrivate;
00037
00065 class AKONADI_EXPORT SpecialCollections : public QObject
00066 {
00067 Q_OBJECT
00068
00069 public:
00073 ~SpecialCollections();
00074
00079 bool hasCollection( const QByteArray &type, const AgentInstance &instance ) const;
00080
00085 Akonadi::Collection collection( const QByteArray &type, const AgentInstance &instance ) const;
00086
00095 bool registerCollection( const QByteArray &type, const Akonadi::Collection &collection );
00096
00101 bool hasDefaultCollection( const QByteArray &type ) const;
00102
00107 Akonadi::Collection defaultCollection( const QByteArray &type ) const;
00108
00109 Q_SIGNALS:
00116 void collectionsChanged( const Akonadi::AgentInstance &instance );
00117
00122 void defaultCollectionsChanged();
00123
00124 protected:
00131 explicit SpecialCollections( KCoreConfigSkeleton *config, QObject *parent = 0 );
00132
00133 private:
00134
00135 friend class SpecialCollectionsRequestJob;
00136 friend class SpecialCollectionsRequestJobPrivate;
00137 friend class SpecialCollectionsPrivate;
00138
00139 #if 1 // TODO do this only if building tests:
00140 friend class SpecialMailCollectionsTesting;
00141 friend class LocalFoldersTest;
00142 #endif
00143
00144 SpecialCollectionsPrivate *const d;
00145
00146 Q_PRIVATE_SLOT( d, void collectionRemoved( const Akonadi::Collection& ) )
00147 Q_PRIVATE_SLOT( d, void collectionStatisticsChanged( Akonadi::Collection::Id, const Akonadi::CollectionStatistics& ) )
00148 Q_PRIVATE_SLOT( d, void collectionFetchJobFinished( KJob* ) )
00149
00150 };
00151
00152 }
00153
00154 #endif // AKONADI_SPECIALCOLLECTIONS_H