00001
#ifndef kmfoldermaildir_h
00002
#define kmfoldermaildir_h
00003
00004
#include "kmfolderindex.h"
00005
00006
00007
class KMFolderMaildir;
00008
namespace KMail {
00009
class FolderJob;
00010
class MaildirJob;
00011
class AttachmentStrategy;
00012 }
00013
using KMail::FolderJob;
00014
using KMail::MaildirJob;
00015
using KMail::AttachmentStrategy;
00016
00017
class KMFolderMaildir :
public KMFolderIndex
00018 {
00019 Q_OBJECT
00020
friend class MaildirJob;
00021
public:
00025 KMFolderMaildir(
KMFolder* folder,
const char* name=0);
00026
virtual ~KMFolderMaildir();
00027
00029
virtual KMFolderType folderType()
const {
return KMFolderTypeMaildir; }
00030
00032
virtual QCString& getMsgString(
int idx,
QCString& mDest);
00033
virtual DwString getDwString(
int idx);
00034
00037
virtual KMMessage* take(
int idx);
00038
virtual void take(
QPtrList<KMMessage> msgList)
00039 {
return KMFolderIndex::take(msgList); }
00040
00047
virtual int addMsg(KMMessage* msg,
int* index_return = 0);
00048
00050
virtual void removeMsg(
int i,
bool imapQuiet = FALSE);
00051
virtual void removeMsg(
QPtrList<KMMessage> msgList,
bool imapQuiet = FALSE)
00052 {
return KMFolderIndex::removeMsg(msgList, imapQuiet); }
00053
00054
00055
00056
virtual void msgStatusChanged(
const KMMsgStatus oldStatus,
00057
const KMMsgStatus newStatus,
00058
int idx);
00059
00065
virtual int open();
00066
00067
virtual int canAccess();
00068
00070
virtual void sync();
00071
00074
virtual void close(
bool force=FALSE);
00075
00079
virtual int create(
bool imap = FALSE);
00080
00083
int compact(
unsigned int startIndex,
int nbMessages,
const QStringList& entryList,
bool& done );
00084
00087
virtual int compact(
bool silent );
00088
00090
virtual bool isReadOnly()
const {
return false; }
00091
00092
protected:
00093
virtual FolderJob* doCreateJob( KMMessage *msg, FolderJob::JobType jt,
KMFolder *folder,
00094
QString partSpecifier,
const AttachmentStrategy *as )
const;
00095
virtual FolderJob* doCreateJob(
QPtrList<KMMessage>& msgList,
const QString& sets,
00096 FolderJob::JobType jt,
KMFolder *folder )
const;
00099
virtual KMMessage* readMsg(
int idx);
00100
00104
virtual int removeContents();
00105
00109
virtual int expungeContents();
00110
00114
virtual int createIndexFromContents();
00115
00116
private:
00117
void readFileHeaderIntern(
const QString& dir,
const QString& file, KMMsgStatus status);
00118
QString constructValidFileName(
QString& file, KMMsgStatus status);
00119
QString moveInternal(
const QString& oldLoc,
const QString& newLoc, KMMsgInfo* mi);
00120
QString moveInternal(
const QString& oldLoc,
const QString& newLoc,
QString& aFileName, KMMsgStatus status);
00121
bool removeFile(
const QString& filename);
00122
00128
virtual IndexStatus indexStatus();
00129
00130
QStrList mIdxToFileList;
00131
int mIdxCount;
00132 };
00133
#endif