kmail
kmfoldermgr.h00001
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 TQ_OBJECT
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
|