kmacctcachedimap.h
00001
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 ImapJob;
00058 friend class CachedImapJob;
00059
00060 protected:
00061 void setPrefixHook();
00062
00063 public:
00064 virtual ~KMAcctCachedImap();
00065 virtual void init();
00066
00068 virtual void pseudoAssign( const KMAccount * a );
00069
00073 virtual void setAutoExpunge(bool);
00074
00078 virtual QString type() const;
00079 virtual void processNewMail( bool interactive );
00080
00084 void killJobsForItem(KMFolderTreeItem * fti);
00085
00089 virtual void killAllJobs( bool disconnectSlave=false );
00090
00094 virtual void cancelMailCheck();
00095
00099 virtual void setImapFolder(KMFolderCachedImap *);
00100 KMFolderCachedImap* imapFolder() const { return mFolder; }
00101
00102 bool isProgressDialogEnabled() const { return mProgressDialogEnabled; }
00103 void setProgressDialogEnabled( bool enable ) { mProgressDialogEnabled = enable; }
00104
00105 virtual void readConfig( KConfig & config );
00106 virtual void writeConfig( KConfig & config ) ;
00107
00111 virtual void invalidateIMAPFolders();
00112 virtual void invalidateIMAPFolders( KMFolderCachedImap* );
00113
00117 void addDeletedFolder( KMFolder* folder );
00118
00123 void addDeletedFolder( const QString& imapPath );
00124
00128 bool isDeletedFolder( const QString& subFolderPath ) const;
00129
00133 bool isPreviouslyDeletedFolder( const QString& subFolderPath ) const;
00134
00138 QStringList deletedFolderPaths( const QString& subFolderPath ) const;
00139
00143 void removeDeletedFolder( const QString& subFolderPath );
00144
00148 void addRenamedFolder( const QString& subFolderPath,
00149 const QString& oldLabel, const QString& newName );
00150
00155 void removeRenamedFolder( const QString& subFolderPath );
00156
00157 struct RenamedFolder {
00158 RenamedFolder() {}
00159 RenamedFolder( const QString& oldLabel, const QString& newName )
00160 : mOldLabel( oldLabel ), mNewName( newName ) {}
00161 QString mOldLabel;
00162 QString mNewName;
00163 };
00164
00168 QString renamedFolder( const QString& imapPath ) const;
00172 const QMap<QString, RenamedFolder>& renamedFolders() const { return mRenamedFolders; }
00173
00177 void addUnreadMsgCount( const KMFolderCachedImap *folder, int countUnread );
00178
00182 void addLastUnreadMsgCount( const KMFolderCachedImap *folder,
00183 int countLastUnread );
00184
00188 virtual FolderStorage* const rootFolder() const;
00189
00190 protected:
00191 friend class KMAcctMgr;
00192 KMAcctCachedImap(KMAcctMgr* owner, const QString& accountName, uint id);
00193
00194 protected slots:
00196 void postProcessNewMail(KMFolderCachedImap*, bool);
00197
00198 void slotProgressItemCanceled( ProgressItem* );
00199
00200 virtual void slotCheckQueuedFolders();
00201
00202 private:
00203 QValueList<KMFolderCachedImap*> killAllJobsInternal( bool disconnectSlave );
00204 void processNewMail( KMFolderCachedImap* folder, bool interactive, bool recurse );
00205
00206 private:
00207 QPtrList<CachedImapJob> mJobList;
00208 KMFolderCachedImap *mFolder;
00209 bool mProgressDialogEnabled;
00210 QStringList mDeletedFolders;
00211 QStringList mPreviouslyDeletedFolders;
00212 QMap<QString, RenamedFolder> mRenamedFolders;
00213 };
00214
00215 #endif
This file is part of the documentation for kmail Library Version 3.3.2.