35 #ifndef FOLDERSTORAGE_H
36 #define FOLDERSTORAGE_H
41 #include "kmfoldernode.h"
42 #include "kmfoldertype.h"
43 #include "kmmsginfo.h"
45 #include "folderjob.h"
46 using KMail::FolderJob;
48 #include "mimelib/string.h"
50 #include <sys/types.h>
57 class KMMsgDictREntry;
62 class AttachmentStrategy;
64 using KMail::AttachmentStrategy;
66 typedef TQValueList<TQ_UINT32> SerNumList;
93 KMFolder* folder() const { return mFolder; }
96 virtual KMFolderType folderType() const { return KMFolderTypeUnknown; }
125 virtual ChildrenState hasChildren() const { return mHasChildren; }
129 { mHasChildren = state; }
138 virtual KMMsgInfo* unGetMsg( int idx);
161 virtual FolderJob* createJob( KMMessage *msg, FolderJob::JobType jt = FolderJob::tGetMessage,
162 KMFolder *folder = 0, TQString partSpecifier = TQString(),
163 const AttachmentStrategy *as = 0 ) const;
164 virtual FolderJob* createJob( TQPtrList<KMMessage>& msgList, const TQString& sets,
165 FolderJob::JobType jt = FolderJob::tGetMessage,
172 virtual const KMMsgBase* getMsgBase( int idx) const = 0;
184 virtual void take(TQPtrList<KMMessage> msgList);
198 return addMsg(msg, index_return);
205 virtual int addMsg( TQPtrList<KMMessage>&, TQValueList<int>& index_return );
216 virtual void removeMsg( int i, bool imapQuiet = false);
217 virtual void removeMsg( const TQPtrList<KMMsgBase>& msgList, bool imapQuiet = false);
218 virtual void removeMsg( const TQPtrList<KMMessage>& msgList, bool imapQuiet = false);
229 virtual int moveMsg(TQPtrList<KMMessage>, int* index_return = 0);
232 virtual int find( const KMMsgBase* msg) const = 0;
236 virtual int count( bool cache = false) const;
251 const KMMsgStatus newStatus,
259 virtual int open( const char* owner) = 0;
268 void close( const char* owner, bool force= false);
269 virtual void reallyDoClose( const char* owner) = 0;
276 virtual void sync() = 0;
296 virtual void remove();
307 virtual int compact( bool silent ) = 0;
330 virtual void setNeedsCompacting( bool f) { needsCompact = f; }
340 virtual void quiet( bool beQuiet);
349 TQString label() const;
356 virtual int writeIndex( bool createEmptyIndex = false ) = 0;
367 virtual void setStatus( int idx, KMMsgStatus status, bool toggle= false);
370 virtual void setStatus(TQValueList<int>& ids, KMMsgStatus status, bool toggle= false);
375 static TQString dotEscape( const TQString&);
393 void addJob( FolderJob* ) const;
421 virtual KMAccount* account() const;
423 virtual bool mailCheckInProgress() const;
466 void msgRemoved( int idx, TQString msgIdMD5 );
527 virtual void removeJob( TQObject* );
540 TQString partSpecifier, const AttachmentStrategy *as ) const = 0;
541 virtual FolderJob* doCreateJob( TQPtrList<KMMessage>& msgList, const TQString& sets,
542 FolderJob::JobType jt, KMFolder *folder ) const = 0;
577 void setRDict(KMMsgDictREntry *rentry) const;
604 virtual KMMsgBase* takeIndexEntry( int idx ) = 0;
605 virtual KMMsgInfo* setIndexEntry( int idx, KMMessage *msg ) = 0;
606 virtual void clearIndex( bool autoDelete= true, bool syncDict = false) = 0;
607 virtual void truncateIndex() = 0;
609 virtual TQ_INT64 doFolderSize() const { return 0; };
628 bool mWriteConfigEnabled :1;
635 bool mConvertToUtf8 :1;
642 TQTimer *mDirtyTimer;
643 enum { mDirtyTimerInterval = 600000 };
645 ChildrenState mHasChildren;
652 TQTimer * mEmitChangedTimer;
654 int mCurrentSearchedMsg;
658 #endif // FOLDERSTORAGE_H
|