00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef AKONADI_SPECIALCOLLECTIONSREQUESTJOB_H
00021 #define AKONADI_SPECIALCOLLECTIONSREQUESTJOB_H
00022
00023 #include "akonadi_export.h"
00024
00025 #include <akonadi/collection.h>
00026 #include <akonadi/specialcollections.h>
00027 #include <akonadi/transactionsequence.h>
00028
00029 #include <QtCore/QVariant>
00030
00031 namespace Akonadi {
00032
00033 class SpecialCollectionsRequestJobPrivate;
00034
00054 class AKONADI_EXPORT SpecialCollectionsRequestJob : public TransactionSequence
00055 {
00056 Q_OBJECT
00057
00058 public:
00059
00063 ~SpecialCollectionsRequestJob();
00064
00068 void requestDefaultCollection( const QByteArray &type );
00069
00073 void requestCollection( const QByteArray &type, const AgentInstance &instance );
00074
00078 Collection collection() const;
00079
00080 protected:
00087 explicit SpecialCollectionsRequestJob( SpecialCollections *collections, QObject *parent = 0 );
00088
00093 void setDefaultResourceType( const QString &type );
00094
00099 void setDefaultResourceOptions( const QVariantMap &options );
00100
00104 void setTypes( const QList<QByteArray> &types );
00105
00109 void setNameForTypeMap( const QMap<QByteArray, QString> &map );
00110
00114 void setIconForTypeMap( const QMap<QByteArray, QString> &map );
00115
00116
00117 virtual void doStart();
00118
00119 virtual void slotResult( KJob *job );
00120
00121 private:
00122
00123 friend class SpecialCollectionsRequestJobPrivate;
00124 friend class DefaultResourceJobPrivate;
00125
00126 SpecialCollectionsRequestJobPrivate *const d;
00127
00128 Q_PRIVATE_SLOT( d, void lockResult( KJob* ) )
00129 Q_PRIVATE_SLOT( d, void releaseLock() )
00130 Q_PRIVATE_SLOT( d, void resourceScanResult( KJob* ) )
00131 Q_PRIVATE_SLOT( d, void collectionCreateResult( KJob* ) )
00132
00133 };
00134
00135 }
00136
00137 #endif // AKONADI_SPECIALCOLLECTIONSREQUESTJOB_H