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