kmail Library API Documentation

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: // ### Hacks
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( /*const*/ KConfig/*Base*/ & config );
00106   virtual void writeConfig( KConfig/*Base*/ & config ) /*const*/;
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() {} // for QMap
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; // folders deleted in this session
00211   QStringList mPreviouslyDeletedFolders; // folders deleted in a previous session
00212   QMap<QString, RenamedFolder> mRenamedFolders;
00213 };
00214 
00215 #endif /*KMAcctCachedImap_h*/
KDE Logo
This file is part of the documentation for kmail Library Version 3.3.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Aug 23 18:21:12 2007 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003