kmail Library API Documentation

kmfoldermgr.h

00001 /* KMail Folder Manager
00002  *
00003  */
00004 #ifndef kmfoldermgr_h
00005 #define kmfoldermgr_h
00006 
00007 #include <qstring.h>
00008 #include <qvaluelist.h>
00009 #include <qobject.h>
00010 #include <qguardedptr.h>
00011 
00012 #include "kmfolderdir.h"
00013 
00014 class KMFolder;
00015 class KMMsgDict;
00016 
00017 class KMFolderMgr: public QObject
00018 {
00019   Q_OBJECT
00020 
00021 public:
00022   KMFolderMgr(const QString& basePath, KMFolderDirType dirType = KMStandardDir);
00023   virtual ~KMFolderMgr();
00024 
00026   QString basePath() const { return mBasePath; }
00027 
00029   virtual void setBasePath(const QString&);
00030 
00032   KMFolderRootDir& dir();
00033 
00036   virtual KMFolder* find(const QString& folderName, bool foldersOnly=TRUE);
00037 
00039   virtual KMFolder* findIdString(const QString& folderId,
00040      const uint id = 0, KMFolderDir *dir = 0);
00041 
00046   virtual KMFolder* findOrCreate(const QString& folderName, bool sysFldr=TRUE,
00047       const uint id = 0);
00048 
00051   virtual KMFolder* findById(const uint id);
00052 
00053   virtual void        getFolderURLS( QStringList& flist,
00054                                      const QString& prefix=QString::null,
00055                                      KMFolderDir *adir=0 );
00056   virtual KMFolder*   getFolderByURL( const QString& vpath,
00057                                       const QString& prefix=QString::null,
00058                                       KMFolderDir *adir=0 );
00059 
00062   virtual KMFolder* createFolder(const QString& fName, bool sysFldr=FALSE,
00063                  KMFolderType aFolderType=KMFolderTypeMbox,
00064                  KMFolderDir *aFolderDir = 0);
00065 
00067   virtual void remove(KMFolder* obsoleteFolder);
00068 
00070   virtual void contentsChanged(void);
00071 
00073   virtual void reload(void);
00074 
00077   virtual void createFolderList( QStringList *str,
00078                  QValueList<QGuardedPtr<KMFolder> > *folders );
00079 
00082   virtual void createFolderList( QStringList *str,
00083                  QValueList<QGuardedPtr<KMFolder> > *folders,
00084                  KMFolderDir *adir,
00085                  const QString& prefix,
00086                  bool i18nized=FALSE );
00087 
00090   virtual void createI18nFolderList( QStringList *str,
00091                  QValueList<QGuardedPtr<KMFolder> > *folders );
00092 
00094   void syncAllFolders( KMFolderDir *adir = 0 );
00095 
00097   void compactAllFolders( bool immediate, KMFolderDir *adir = 0 );
00098 
00100   void expireAllFolders( bool immediate, KMFolderDir *adir = 0 );
00101 
00104   void readMsgDict(KMMsgDict *dict, KMFolderDir *dir=0, int pass = 1);
00105 
00107   void writeMsgDict(KMMsgDict *dict, KMFolderDir *dir=0);
00108 
00110   void quiet(bool);
00111 
00113   int folderCount(KMFolderDir *dir=0);
00114 
00118   void invalidateFolder(KMMsgDict *dict, KMFolder *folder);
00119 
00122   void tryReleasingFolder(KMFolder* folder, KMFolderDir *Dir=0);
00123 
00125   uint createId();
00126 
00128   void moveFolder( KMFolder* folder, KMFolderDir* newParent );
00129 
00131   void renameFolder( KMFolder* folder, const QString& newName, 
00132                             KMFolderDir* newParent = 0 );
00134   void copyFolder( KMFolder* folder, KMFolderDir* newParent );
00135 
00136 public slots:
00138   void compactAll() { compactAllFolders( true ); }
00139 
00141   void expireAll();
00142 
00144   void removeFolderAux(KMFolder* obsoleteFolder, bool success);
00145 
00147   void slotRenameDone( QString newName, bool success );
00148 
00149 signals:
00154   void changed();
00155 
00157   void folderRemoved(KMFolder*);
00158 
00160   void folderAdded(KMFolder*);
00161 
00163   void folderInvalidated(KMFolder*);
00164 
00166   void msgAdded(KMFolder*, Q_UINT32);
00167 
00169   void msgRemoved(KMFolder*, Q_UINT32);
00170 
00172   void msgChanged(KMFolder*, Q_UINT32, int delta);
00173 
00175   void msgHeaderChanged(KMFolder*, int idx);
00176 
00177 protected:
00178 
00180   void removeFolder(KMFolder* aFolder);
00181 
00183   void removeDirAux(KMFolderDir* aFolderDir);
00184 
00185   QString mBasePath;
00186   KMFolderRootDir mDir;
00187   int mQuiet;
00188   bool mChanged;
00189   KMFolder* mRemoveOrig;
00190 };
00191 
00192 #endif /*kmfoldermgr_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:22 2007 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003