kmfoldermgr.h
00001 /* KMail Folder Manager 00002 * 00003 */ 00004 #ifndef kmfoldermgr_h 00005 #define kmfoldermgr_h 00006 00007 #include <tqstring.h> 00008 #include <tqvaluelist.h> 00009 #include <tqobject.h> 00010 #include <tqguardedptr.h> 00011 00012 #include "kmfolderdir.h" 00013 00014 class KMFolder; 00015 00016 class KMFolderMgr: public TQObject 00017 { 00018 Q_OBJECT 00019 00020 00021 public: 00022 KMFolderMgr(const TQString& basePath, KMFolderDirType dirType = KMStandardDir); 00023 virtual ~KMFolderMgr(); 00024 00026 TQString basePath() const { return mBasePath; } 00027 00029 virtual void setBasePath(const TQString&); 00030 00032 KMFolderRootDir& dir(); 00033 00036 virtual KMFolder* find(const TQString& folderName, bool foldersOnly=TRUE); 00037 00039 virtual KMFolder* findIdString(const TQString& folderId, 00040 const uint id = 0, KMFolderDir *dir = 0); 00041 00046 virtual KMFolder* findOrCreate(const TQString& folderName, bool sysFldr=TRUE, 00047 const uint id = 0); 00048 00051 virtual KMFolder* findById(const uint id); 00052 00053 virtual void getFolderURLS( TQStringList& flist, 00054 const TQString& prefix=TQString(), 00055 KMFolderDir *adir=0 ); 00056 virtual KMFolder* getFolderByURL( const TQString& vpath, 00057 const TQString& prefix=TQString(), 00058 KMFolderDir *adir=0 ); 00059 00062 virtual KMFolder* createFolder(const TQString& 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( TQStringList *str, 00078 TQValueList<TQGuardedPtr<KMFolder> > *folders ); 00079 00082 virtual void createFolderList( TQStringList *str, 00083 TQValueList<TQGuardedPtr<KMFolder> > *folders, 00084 KMFolderDir *adir, 00085 const TQString& prefix, 00086 bool i18nized=FALSE ); 00087 00090 virtual void createI18nFolderList( TQStringList *str, 00091 TQValueList<TQGuardedPtr<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 00103 void quiet(bool); 00104 00106 int folderCount(KMFolderDir *dir=0); 00107 00110 void tryReleasingFolder(KMFolder* folder, KMFolderDir *Dir=0); 00111 00113 uint createId(); 00114 00116 void moveFolder( KMFolder* folder, KMFolderDir* newParent ); 00117 00119 void renameFolder( KMFolder* folder, const TQString& newName, 00120 KMFolderDir* newParent = 0 ); 00121 00123 void copyFolder( KMFolder* folder, KMFolderDir* newParent ); 00124 00126 KMFolder* parentFolder( KMFolder* folder ); 00127 00128 public slots: 00130 void compactAll() { compactAllFolders( true ); } 00131 00133 void expireAll(); 00134 00136 void removeFolderAux(KMFolder* obsoleteFolder, bool success); 00137 00139 void slotRenameDone( TQString newName, bool success ); 00140 00141 signals: 00146 void changed(); 00147 00149 void folderRemoved(KMFolder*); 00150 00152 void folderAdded(KMFolder*); 00153 00155 void folderInvalidated(KMFolder*); 00156 00158 void msgAdded(KMFolder*, TQ_UINT32); 00159 00161 void msgRemoved(KMFolder*, TQ_UINT32); 00162 00164 void msgChanged(KMFolder*, TQ_UINT32, int delta); 00165 00167 void msgHeaderChanged(KMFolder*, int idx); 00168 00170 void folderMoveOrCopyOperationFinished(); 00171 00172 protected: 00173 00175 void removeFolder(KMFolder* aFolder); 00176 00178 void removeDirAux(KMFolderDir* aFolderDir); 00179 00180 TQString mBasePath; 00181 KMFolderRootDir mDir; 00182 int mQuiet; 00183 bool mChanged; 00184 KMFolder* mRemoveOrig; 00185 }; 00186 00187 #endif /*kmfoldermgr_h*/