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 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: // ### Hacks
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( /*const*/ KConfig/*Base*/ & config );
00105   virtual void writeConfig( KConfig/*Base*/ & config ) /*const*/;
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() {} // for QMap
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; // folders deleted in this session
00199   QStringList mPreviouslyDeletedFolders; // folders deleted in a previous session
00200   QMap<QString, RenamedFolder> mRenamedFolders;
00201 };
00202 
00203 #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 Wed Mar 23 22:43:42 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003