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,
KMFolderDir *dir=0);
00040
00043
virtual KMFolder* findOrCreate(
const QString& folderName,
bool sysFldr=TRUE);
00044
00045
virtual void getFolderURLS( QStringList& flist,
00046
const QString& prefix=QString::null,
00047
KMFolderDir *adir=0 );
00048
virtual KMFolder* getFolderByURL(
const QString& vpath,
00049
const QString& prefix=QString::null,
00050
KMFolderDir *adir=0 );
00051
00054
virtual KMFolder* createFolder(
const QString& fName,
bool sysFldr=FALSE,
00055 KMFolderType aFolderType=KMFolderTypeMbox,
00056
KMFolderDir *aFolderDir = 0);
00057
00059
virtual void remove(
KMFolder* obsoleteFolder);
00060
00062
virtual void contentsChanged(
void);
00063
00065
virtual void reload(
void);
00066
00069
virtual void createFolderList( QStringList *str,
00070 QValueList<QGuardedPtr<KMFolder> > *folders );
00071
00074
virtual void createFolderList( QStringList *str,
00075 QValueList<QGuardedPtr<KMFolder> > *folders,
00076
KMFolderDir *adir,
00077
const QString& prefix,
00078
bool i18nized=FALSE );
00079
00082
virtual void createI18nFolderList( QStringList *str,
00083 QValueList<QGuardedPtr<KMFolder> > *folders );
00084
00086
virtual void syncAllFolders(
KMFolderDir *adir = 0 );
00087
00089
virtual void expireAllFolders(
KMFolderDir *adir = 0 );
00090
00093
void readMsgDict(KMMsgDict *dict,
KMFolderDir *dir=0,
int pass = 1);
00094
00096
void writeMsgDict(KMMsgDict *dict,
KMFolderDir *dir=0);
00097
00099
void quiet(
bool);
00100
00102
int folderCount(
KMFolderDir *dir=0);
00103
00107
void invalidateFolder(KMMsgDict *dict,
KMFolder *folder);
00108
00109
public slots:
00111
void compactAll();
00112
void expireAll();
00113
00114 signals:
00119
void changed();
00120
00122
void folderRemoved(
KMFolder*);
00123
00125
void folderAdded(
KMFolder*);
00126
00128
void folderInvalidated(
KMFolder*);
00129
00131
void msgAdded(
KMFolder*, Q_UINT32);
00132
00134
void msgRemoved(
KMFolder*, Q_UINT32);
00135
00137
void msgChanged(
KMFolder*, Q_UINT32,
int delta);
00138
00140
void msgHeaderChanged(
KMFolder*,
int idx);
00141
00143
void progress();
00144
00145
protected:
00146
00148
void compactAllAux(
KMFolderDir* dir);
00149
00151
void removeFolderAux(
KMFolder* aFolder);
00152
00154
void removeDirAux(
KMFolderDir* aFolderDir);
00155
00156 QString mBasePath;
00157 KMFolderRootDir mDir;
00158
int mQuiet;
00159
bool mChanged;
00160 };
00161
00162
#endif