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
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
This file is part of the documentation for kmail Library Version 3.3.2.