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 namespace KMail {
00042 class FolderJob;
00043 class ImapJob;
00044 class CachedImapJob;
00045 }
00046 using KMail::ImapJob;
00047 using KMail::CachedImapJob;
00048
00049 namespace KIO {
00050 class Job;
00051 }
00052
00053 class KMAcctCachedImap: public KMail::ImapAccountBase
00054 {
00055 Q_OBJECT
00056 friend class ImapJob;
00057 friend class CachedImapJob;
00058
00059 protected:
00060 void setPrefixHook();
00061
00062 public:
00063 virtual ~KMAcctCachedImap();
00064 virtual void init();
00065
00067 virtual void pseudoAssign( const KMAccount * a );
00068
00072 virtual void setAutoExpunge(bool);
00073
00077 virtual QString type() const;
00078 virtual void processNewMail( bool interactive );
00079
00083 void killJobsForItem(KMFolderTreeItem * fti);
00084
00088 virtual void killAllJobs( bool disconnectSlave=false );
00089
00093 virtual void cancelMailCheck();
00094
00098 virtual void setImapFolder(KMFolderCachedImap *);
00099 KMFolderCachedImap* imapFolder() const { return mFolder; }
00100
00101 bool isProgressDialogEnabled() const { return mProgressDialogEnabled; }
00102 void setProgressDialogEnabled( bool enable ) { mProgressDialogEnabled = enable; }
00103
00104 virtual void readConfig( KConfig & config );
00105 virtual void writeConfig( KConfig & config ) ;
00106
00110 virtual void invalidateIMAPFolders();
00111 virtual void invalidateIMAPFolders( KMFolderCachedImap* );
00112
00116 void addDeletedFolder( const QString& subFolderPath );
00117
00121 bool isDeletedFolder( const QString& subFolderPath ) const;
00122
00126 bool isPreviouslyDeletedFolder( const QString& subFolderPath ) const;
00127
00131 void removeDeletedFolder( const QString& subFolderPath );
00132
00136 void addRenamedFolder( const QString& subFolderPath,
00137 const QString& oldLabel, const QString& newName );
00138
00143 void removeRenamedFolder( const QString& subFolderPath );
00144
00145 struct RenamedFolder {
00146 RenamedFolder() {}
00147 RenamedFolder( const QString& oldLabel, const QString& newName )
00148 : mOldLabel( oldLabel ), mNewName( newName ) {}
00149 QString mOldLabel;
00150 QString mNewName;
00151 };
00152
00156 QString renamedFolder( const QString& imapPath ) const;
00160 const QMap<QString, RenamedFolder>& renamedFolders() const { return mRenamedFolders; }
00161
00165 void addUnreadMsgCount( const KMFolderCachedImap *folder, int countUnread );
00166
00170 void addLastUnreadMsgCount( const KMFolderCachedImap *folder,
00171 int countLastUnread );
00172
00176 virtual FolderStorage* const rootFolder() const;
00177
00178 protected:
00179 friend class KMAcctMgr;
00180 KMAcctCachedImap(KMAcctMgr* owner, const QString& accountName, uint id);
00181
00182 protected slots:
00184 void postProcessNewMail(KMFolderCachedImap*, bool);
00185
00186 void slotProgressItemCanceled( ProgressItem* );
00187
00188 virtual void slotCheckQueuedFolders();
00189
00190 private:
00191 QValueList<KMFolderCachedImap*> killAllJobsInternal( bool disconnectSlave );
00192 void processNewMail( KMFolderCachedImap* folder, bool interactive, bool recurse );
00193
00194 private:
00195 QPtrList<CachedImapJob> mJobList;
00196 KMFolderCachedImap *mFolder;
00197 bool mProgressDialogEnabled;
00198 QStringList mDeletedFolders;
00199 QStringList mPreviouslyDeletedFolders;
00200 QMap<QString, RenamedFolder> mRenamedFolders;
00201 };
00202
00203 #endif
This file is part of the documentation for kmail Library Version 3.3.2.