kmfoldermgr.h
00001
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
00127 public slots:
00129 void compactAll() { compactAllFolders( true ); }
00130
00132 void expireAll();
00133
00135 void removeFolderAux(KMFolder* obsoleteFolder, bool success);
00136
00137 signals:
00142 void changed();
00143
00145 void folderRemoved(KMFolder*);
00146
00148 void folderAdded(KMFolder*);
00149
00151 void folderInvalidated(KMFolder*);
00152
00154 void msgAdded(KMFolder*, Q_UINT32);
00155
00157 void msgRemoved(KMFolder*, Q_UINT32);
00158
00160 void msgChanged(KMFolder*, Q_UINT32, int delta);
00161
00163 void msgHeaderChanged(KMFolder*, int idx);
00164
00165 protected:
00166
00168 void removeFolder(KMFolder* aFolder);
00169
00171 void removeDirAux(KMFolderDir* aFolderDir);
00172
00173 QString mBasePath;
00174 KMFolderRootDir mDir;
00175 int mQuiet;
00176 bool mChanged;
00177 KMFolder* mRemoveOrig;
00178 };
00179
00180 #endif
This file is part of the documentation for kmail Library Version 3.3.2.