kmail
kmacctcachedimap.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef KMAcctCachedImap_h
00033 #define KMAcctCachedImap_h
00034
00035 #include "imapaccountbase.h"
00036
00037 #include <qguardedptr.h>
00038
00039 class KMFolderCachedImap;
00040 class KMFolderTreeItem;
00041 class KMFolder;
00042 namespace KMail {
00043 class FolderJob;
00044 class ImapJob;
00045 class CachedImapJob;
00046 }
00047 using KMail::ImapJob;
00048 using KMail::CachedImapJob;
00049
00050 namespace KIO {
00051 class Job;
00052 }
00053
00054 class KMAcctCachedImap: public KMail::ImapAccountBase
00055 {
00056 Q_OBJECT
00057 friend class ::KMail::ImapJob;
00058 friend class ::KMail::CachedImapJob;
00059
00060 public:
00061 virtual ~KMAcctCachedImap();
00062 virtual void init();
00063
00065 virtual void pseudoAssign( const KMAccount * a );
00066
00070 virtual void setAutoExpunge(bool);
00071
00075 virtual QString type() const;
00076 virtual void processNewMail( bool interactive );
00077
00081 void killJobsForItem(KMFolderTreeItem * fti);
00082
00086 virtual void killAllJobs( bool disconnectSlave=false );
00087
00091 virtual void cancelMailCheck();
00092
00096 virtual void setImapFolder(KMFolderCachedImap *);
00097 KMFolderCachedImap* imapFolder() const { return mFolder; }
00098
00099 virtual void readConfig( KConfig & config );
00100 virtual void writeConfig( KConfig & config ) ;
00101
00105 virtual void invalidateIMAPFolders();
00106 virtual void invalidateIMAPFolders( KMFolderCachedImap* );
00107
00111 void addDeletedFolder( KMFolder* folder );
00112
00117 void addDeletedFolder( const QString& imapPath );
00118
00122 bool isDeletedFolder( const QString& subFolderPath ) const;
00123
00127 bool isPreviouslyDeletedFolder( const QString& subFolderPath ) const;
00128
00132 QStringList deletedFolderPaths( const QString& subFolderPath ) const;
00133
00137 void removeDeletedFolder( const QString& subFolderPath );
00138
00142 void addRenamedFolder( const QString& subFolderPath,
00143 const QString& oldLabel, const QString& newName );
00144
00149 void removeRenamedFolder( const QString& subFolderPath );
00150
00151 struct RenamedFolder {
00152 RenamedFolder() {}
00153 RenamedFolder( const QString& oldLabel, const QString& newName )
00154 : mOldLabel( oldLabel ), mNewName( newName ) {}
00155 QString mOldLabel;
00156 QString mNewName;
00157 };
00158
00162 QString renamedFolder( const QString& imapPath ) const;
00166 const QMap<QString, RenamedFolder>& renamedFolders() const { return mRenamedFolders; }
00167
00171 void addUnreadMsgCount( const KMFolderCachedImap *folder, int countUnread );
00172
00176 void addLastUnreadMsgCount( const KMFolderCachedImap *folder,
00177 int countLastUnread );
00178
00182 virtual FolderStorage* const rootFolder() const;
00183
00185 bool annotationCheckPassed(){ return mAnnotationCheckPassed;};
00186 void setAnnotationCheckPassed( bool a ){ mAnnotationCheckPassed = a; };
00187
00188 protected:
00189 friend class ::AccountManager;
00190 KMAcctCachedImap(AccountManager* owner, const QString& accountName, uint id);
00191
00192 protected slots:
00194 void postProcessNewMail(KMFolderCachedImap*, bool);
00195
00196 void slotProgressItemCanceled( KPIM::ProgressItem* );
00197
00198 virtual void slotCheckQueuedFolders();
00199
00200 private:
00201 QValueList<KMFolderCachedImap*> killAllJobsInternal( bool disconnectSlave );
00202 void processNewMail( KMFolderCachedImap* folder, bool recurse );
00203
00204 private:
00205 QPtrList<CachedImapJob> mJobList;
00206 KMFolderCachedImap *mFolder;
00207 QStringList mDeletedFolders;
00208 QStringList mPreviouslyDeletedFolders;
00209 QMap<QString, RenamedFolder> mRenamedFolders;
00210 bool mAnnotationCheckPassed;
00211 };
00212
00213 #endif
|