• Skip to content
  • Skip to link menu
KDE 4.1 API Reference
  • KDE API Reference
  • kdepim
  • Sitemap
  • Contact Us
 

kmail

KMFolderImap Class Reference

#include <kmfolderimap.h>

Inheritance diagram for KMFolderImap:

Inheritance graph
[legend]

List of all members.


Detailed Description

Definition at line 79 of file kmfolderimap.h.


Public Types

enum  imapState { imapNoInformation = 0, imapListingInProgress = 1, imapDownloadInProgress = 2, imapFinished = 3 }

Public Slots

virtual int addMsg (QList< KMMessage * > &, QList< int > &index_return)
virtual int addMsg (KMMessage *msg, int *index_return=0)
virtual void addMsgQuiet (QList< KMMessage * >)
virtual void addMsgQuiet (KMMessage *)
void copyMsg (QList< KMMessage * > &msgList)
static void flagsToStatus (KMMsgBase *msg, int flags, bool newMsg=true, int supportedFalgs=31)
static void seenFlagToStatus (KMMsgBase *msg, int flags, bool newMsg=true)
void slotCheckNamespace (const QStringList &, const QStringList &, const QStringList &, const QStringList &, const ImapAccountBase::jobData &)
void slotCopyMsgResult (KMail::FolderJob *job)
void slotListResult (const QStringList &, const QStringList &, const QStringList &, const QStringList &, const ImapAccountBase::jobData &)
void slotSearchDone (quint32 serNum, const KMSearchPattern *pattern, bool matches)
void slotSearchDone (QList< quint32 > serNums, const KMSearchPattern *pattern, bool complete)
void slotSimpleData (KIO::Job *job, const QByteArray &data)
virtual void take (const QList< KMMessage * > &)
virtual KMMessage * take (int idx)

Signals

void deleted (KMFolderImap *)
void directoryListingFinished (KMFolderImap *)
void folderComplete (KMFolderImap *folder, bool success)
void folderCreationResult (const QString &name, bool success)

Public Member Functions

KMAcctImap * account () const
bool autoExpunge ()
virtual void close (const char *owner, bool force=false)
virtual int compact (bool)
virtual int create ()
void createFolder (const QString &name, const QString &imapPath=QString(), bool askUser=true)
void deleteMessage (const QList< KMMessage * > &msgList)
void deleteMessage (KMMessage *msg)
void expungeFolder (KMFolderImap *aFolder, bool quiet)
virtual QString fileName () const
virtual KMFolderType folderType () const
void getAndCheckFolder (bool force=false)
virtual imapState getContentState ()
void getFolder (bool force=false)
virtual KMMessage * getMsg (int idx)
virtual imapState getSubfolderState ()
void getUids (const QList< KMMessage * > &msgList, QList< ulong > &uids)
void getUids (QList< int > &ids, QList< ulong > &uids)
virtual void ignoreJobsForMessage (KMMessage *)
QString imapPath () const
bool includeInMailCheck ()
void initializeFrom (KMFolderImap *parent, const QString &path, const QString &mimeType)
virtual bool isAutoExpire () const
virtual bool isMoveable () const
bool isReadOnly () const
bool isSelected ()
 KMFolderImap (KMFolder *folder, const char *name=0)
ulong lastUid ()
virtual bool listDirectory ()
int permanentFlags () const
bool processNewMail (bool interactive)
virtual void readConfig ()
virtual void remove ()
virtual void removeMsg (const QList< KMMessage * > &msgList, bool quiet=false)
virtual void removeMsg (int i, bool quiet=false)
virtual int rename (const QString &newName, KMFolderDir *aParent=0)
void saveMsgMetaData (KMMessage *msg, ulong uid=0)
virtual void search (const KMSearchPattern *, quint32 serNum)
virtual void search (const KMSearchPattern *)
void sendFolderComplete (bool success)
const ulong serNumForUID (ulong uid)
void setAccount (KMAcctImap *acct)
void setAlreadyRemoved (bool removed)
void setCheckingValidity (bool val)
virtual void setContentState (imapState state)
void setImapPath (const QString &path)
void setIncludeInMailCheck (bool check)
void setSelected (bool selected)
virtual void setStatus (QList< int > &_ids, const MessageStatus &status, bool toggle)
virtual void setStatus (int idx, const MessageStatus &status, bool toggle)
virtual void setSubfolderState (imapState state)
void setUidValidity (const QString &validity)
void setUserRights (unsigned int userRights)
KMFolder * trashFolder () const
QString uidValidity ()
unsigned int userRights () const
virtual void writeConfig ()
virtual ~KMFolderImap ()

Static Public Member Functions

static QString cacheLocation ()
static QString decodeFileName (const QString &)
static QString encodeFileName (const QString &)
static QStringList makeSets (const QStringList &, bool sort=true)
static QStringList makeSets (QList< ulong > &, bool sort=true)
static QList< KMMessage * > splitMessageList (const QString &set, QList< KMMessage * > &msgList)
static QList< ulong > splitSets (const QString &)
static QString statusToFlags (const KPIM::MessageStatus &status, int supportedFalgs)

Protected Slots

void checkValidity ()
void reallyGetFolder (const QString &startUid=QString())
void slotCheckValidityResult (KJob *job)
void slotCompleteMailCheckProgress ()
void slotCreateFolderResult (KJob *job)
void slotCreatePendingFolders (int errorCode, const QString &errorMsg)
void slotGetLastMessagesResult (KJob *job)
void slotGetMessagesData (KIO::Job *job, const QByteArray &data)
void slotGetMessagesResult (KJob *job)
void slotListFolderEntries (KIO::Job *job, const KIO::UDSEntryList &uds)
void slotListFolderResult (KJob *job)
void slotListNamespaces ()
void slotProcessNewMail (int errorCode, const QString &errorMsg)
void slotRemoveFolderResult (KJob *job)
void slotStatResult (KJob *job)

Protected Member Functions

void checkFolders (const QStringList &folderNames, const QString &ns)
virtual FolderJob * doCreateJob (QList< KMMessage * > &msgList, const QString &sets, FolderJob::JobType jt, KMFolder *folder) const
virtual FolderJob * doCreateJob (KMMessage *msg, FolderJob::JobType jt, KMFolder *folder, const QString &partSpecifier, const AttachmentStrategy *as) const
virtual int expungeContents ()
KMFolderImap * findParent (const QString &path, const QString &name)
void finishMailCheck (const char *func, imapState state)
void getMessagesResult (KIO::Job *job, bool lastSet)
void initInbox ()
void setChildrenState (const QString &attributes)

Protected Attributes

QPointer< KMAcctImap > mAccount
bool mCheckFlags
bool mCheckMail
imapState mContentState
QString mImapPath
bool mIsSelected
ulong mLastUid
bool mReadOnly
imapState mSubfolderState
QString mUidValidity
unsigned int mUserRights

Member Enumeration Documentation

enum KMFolderImap::imapState

Enumerator:
imapNoInformation 
imapListingInProgress 
imapDownloadInProgress 
imapFinished 

Definition at line 89 of file kmfolderimap.h.


Constructor & Destructor Documentation

KMFolderImap::KMFolderImap ( KMFolder *  folder,
const char *  name = 0 
) [explicit]

Usually a parent is given.

But in some cases there is no fitting parent object available. Then the name of the folder is used as the absolute path to the folder file.

Definition at line 62 of file kmfolderimap.cpp.

KMFolderImap::~KMFolderImap (  )  [virtual]

Definition at line 86 of file kmfolderimap.cpp.


Member Function Documentation

KMAcctImap * KMFolderImap::account (  )  const [virtual]

Reimplemented from FolderStorage.

Definition at line 175 of file kmfolderimap.cpp.

int KMFolderImap::addMsg ( QList< KMMessage * > &  msgList,
QList< int > &  index_return 
) [virtual, slot]

Definition at line 417 of file kmfolderimap.cpp.

int KMFolderImap::addMsg ( KMMessage *  msg,
int *  index_return = 0 
) [virtual, slot]

Add the given message to the folder.

Usually the message is added at the end of the folder. Returns zero on success and an errno error code on failure. The index of the new message is stored in index_return if given. Please note that the message is added as is to the folder and the folder takes ownership of the message (deleting it in the destructor).

Reimplemented from KMFolderMbox.

Definition at line 406 of file kmfolderimap.cpp.

void KMFolderImap::addMsgQuiet ( QList< KMMessage * >  msgList  )  [virtual, slot]

Definition at line 369 of file kmfolderimap.cpp.

void KMFolderImap::addMsgQuiet ( KMMessage *  aMsg  )  [virtual, slot]

Add a message to a folder after is has been added on an IMAP server.

Definition at line 342 of file kmfolderimap.cpp.

bool KMFolderImap::autoExpunge (  ) 

Automatically expunge deleted messages when leaving the folder.

Definition at line 1833 of file kmfolderimap.cpp.

static QString KMFolderImap::cacheLocation (  )  [inline, static]

Definition at line 85 of file kmfolderimap.h.

void KMFolderImap::checkFolders ( const QStringList &  folderNames,
const QString &  ns 
) [protected]

See if all folders are still present on server, otherwise delete them.

Definition at line 974 of file kmfolderimap.cpp.

void KMFolderImap::checkValidity (  )  [protected, slot]

Retrieve the whole folder or only the changes.

Definition at line 1053 of file kmfolderimap.cpp.

void KMFolderImap::close ( const char *  owner,
bool  force = false 
) [virtual]

Close folder.

If force is TRUE the files are closed even if others still use it (e.g. other mail reader windows). This also cancels all pending jobs.

Reimplemented from KMFolderMbox.

Definition at line 108 of file kmfolderimap.cpp.

virtual int KMFolderImap::compact ( bool  silent  )  [inline, virtual]

Remove deleted messages from the folder.

Returns zero on success and an errno on failure.

Reimplemented from KMFolderMbox.

Definition at line 214 of file kmfolderimap.h.

void KMFolderImap::copyMsg ( QList< KMMessage * > &  msgList  )  [slot]

Copy the messages to this folder.

Definition at line 542 of file kmfolderimap.cpp.

int KMFolderImap::create (  )  [virtual]

Inherited.

Reimplemented from KMFolderMbox.

Definition at line 2215 of file kmfolderimap.cpp.

void KMFolderImap::createFolder ( const QString &  name,
const QString &  imapPath = QString(),
bool  askUser = true 
)

Create a new subfolder You may specify the root imap path or this folder will be used If you set askUser to false and the server can only handle folders that contain messages _or_ folders the new folder is set to "contains messages" by default.

Definition at line 1765 of file kmfolderimap.cpp.

QString KMFolderImap::decodeFileName ( const QString &  name  )  [static]

Definition at line 1827 of file kmfolderimap.cpp.

void KMFolderImap::deleted ( KMFolderImap *   )  [signal]

Emitted, when the account is deleted.

void KMFolderImap::deleteMessage ( const QList< KMMessage * > &  msgList  ) 

Definition at line 1880 of file kmfolderimap.cpp.

void KMFolderImap::deleteMessage ( KMMessage *  msg  ) 

Delete a message.

Definition at line 1855 of file kmfolderimap.cpp.

void KMFolderImap::directoryListingFinished ( KMFolderImap *   )  [signal]

Emitted at the end of the directory listing.

FolderJob * KMFolderImap::doCreateJob ( QList< KMMessage * > &  msgList,
const QString &  sets,
FolderJob::JobType  jt,
KMFolder *  folder 
) const [protected, virtual]

Reimplemented from KMFolderMbox.

Definition at line 1721 of file kmfolderimap.cpp.

FolderJob * KMFolderImap::doCreateJob ( KMMessage *  msg,
FolderJob::JobType  jt,
KMFolder *  folder,
const QString &  partSpecifier,
const AttachmentStrategy *  as 
) const [protected, virtual]

These two methods actually create the jobs.

They have to be implemented in all folders.

See also:
createJob

Reimplemented from KMFolderMbox.

Definition at line 1686 of file kmfolderimap.cpp.

QString KMFolderImap::encodeFileName ( const QString &  name  )  [static]

Encode the given string in a filename save 7 bit string.

Definition at line 1819 of file kmfolderimap.cpp.

int KMFolderImap::expungeContents (  )  [protected, virtual]

Called by KMFolder::expunge() to delete the actual contents.

At the time of the call the folder has already been closed, and the various index files deleted. Returns 0 on success.

Reimplemented from KMFolderMbox.

Definition at line 2274 of file kmfolderimap.cpp.

void KMFolderImap::expungeFolder ( KMFolderImap *  aFolder,
bool  quiet 
)

Expunge deleted messages from the folder.

Definition at line 2111 of file kmfolderimap.cpp.

virtual QString KMFolderImap::fileName (  )  const [inline, virtual]

Return the filename of the folder (reimplemented from KFolder).

Reimplemented from FolderStorage.

Definition at line 249 of file kmfolderimap.h.

KMFolderImap * KMFolderImap::findParent ( const QString &  path,
const QString &  name 
) [protected]

See if there is a better parent then this folder.

Definition at line 948 of file kmfolderimap.cpp.

void KMFolderImap::finishMailCheck ( const char *  func,
imapState  state 
) [protected]

Definition at line 2463 of file kmfolderimap.cpp.

void KMFolderImap::flagsToStatus ( KMMsgBase *  msg,
int  flags,
bool  newMsg = true,
int  supportedFalgs = 31 
) [static, slot]

Convert IMAP flags to a message status.

Parameters:
newMsg specifies whether unseen messages are new or unread

Definition at line 1461 of file kmfolderimap.cpp.

void KMFolderImap::folderComplete ( KMFolderImap *  folder,
bool  success 
) [signal]

void KMFolderImap::folderCreationResult ( const QString &  name,
bool  success 
) [signal]

Emitted when a folder creation has finished.

Parameters:
name The name of the folder that should have been created.
success True if the folder was created, false otherwise.

virtual KMFolderType KMFolderImap::folderType (  )  const [inline, virtual]

Returns the type of this folder.

Reimplemented from KMFolderMbox.

Definition at line 109 of file kmfolderimap.h.

void KMFolderImap::getAndCheckFolder ( bool  force = false  ) 

same as above but also checks for new mails

Definition at line 1226 of file kmfolderimap.cpp.

virtual imapState KMFolderImap::getContentState (  )  [inline, virtual]

Definition at line 96 of file kmfolderimap.h.

void KMFolderImap::getFolder ( bool  force = false  ) 

Retrieve all mails in a folder.

Definition at line 1242 of file kmfolderimap.cpp.

void KMFolderImap::getMessagesResult ( KIO::Job *  job,
bool  lastSet 
) [protected]

Definition at line 1731 of file kmfolderimap.cpp.

KMMessage * KMFolderImap::getMsg ( int  idx  )  [virtual]

Read message at given index.

Indexing starts at zero

Reimplemented from FolderStorage.

Definition at line 156 of file kmfolderimap.cpp.

virtual imapState KMFolderImap::getSubfolderState (  )  [inline, virtual]

Definition at line 99 of file kmfolderimap.h.

void KMFolderImap::getUids ( const QList< KMMessage * > &  msgList,
QList< ulong > &  uids 
)

same as above but accepts a Message-List

Definition at line 2100 of file kmfolderimap.cpp.

void KMFolderImap::getUids ( QList< int > &  ids,
QList< ulong > &  uids 
)

gets the uids of the given ids

Definition at line 2088 of file kmfolderimap.cpp.

void KMFolderImap::ignoreJobsForMessage ( KMMessage *  msg  )  [virtual]

Removes and deletes all jobs associated with the particular message.

Reimplemented from FolderStorage.

Definition at line 1545 of file kmfolderimap.cpp.

QString KMFolderImap::imapPath (  )  const [inline]

Definition at line 114 of file kmfolderimap.h.

bool KMFolderImap::includeInMailCheck (  )  [inline]

If this folder should be included in new-mail-check.

Definition at line 273 of file kmfolderimap.h.

void KMFolderImap::initializeFrom ( KMFolderImap *  parent,
const QString &  path,
const QString &  mimeType 
)

Initialize this storage from another one.

Used when creating a child folder

Definition at line 1022 of file kmfolderimap.cpp.

void KMFolderImap::initInbox (  )  [protected]

Create or find the INBOX and initialize it.

Definition at line 909 of file kmfolderimap.cpp.

virtual bool KMFolderImap::isAutoExpire (  )  const [inline, virtual]

imap folders cannot expire

Definition at line 280 of file kmfolderimap.h.

bool KMFolderImap::isMoveable (  )  const [virtual]

Returns true if this folder can be moved.

Reimplemented from FolderStorage.

Definition at line 2425 of file kmfolderimap.cpp.

bool KMFolderImap::isReadOnly (  )  const [inline, virtual]

Is the folder readonly?

Reimplemented from KMFolderMbox.

Definition at line 295 of file kmfolderimap.h.

bool KMFolderImap::isSelected (  )  [inline]

Definition at line 233 of file kmfolderimap.h.

ulong KMFolderImap::lastUid (  ) 

The highest UID in the folder.

Definition at line 1117 of file kmfolderimap.cpp.

bool KMFolderImap::listDirectory (  )  [virtual]

List a directory and add the contents to kmfoldermgr It uses a ListJob to get the folders returns false if the connection failed.

Definition at line 754 of file kmfolderimap.cpp.

QStringList KMFolderImap::makeSets ( const QStringList &  uids,
bool  sort = true 
) [static]

Definition at line 2026 of file kmfolderimap.cpp.

QStringList KMFolderImap::makeSets ( QList< ulong > &  uids,
bool  sort = true 
) [static]

generates sets of uids

Definition at line 2034 of file kmfolderimap.cpp.

int KMFolderImap::permanentFlags (  )  const [inline]

Returns the IMAP flags that can be stored on the server.

Definition at line 321 of file kmfolderimap.h.

bool KMFolderImap::processNewMail ( bool  interactive  ) 

Refresh the number of unseen mails Returns false in an error condition.

Definition at line 2140 of file kmfolderimap.cpp.

void KMFolderImap::readConfig ( void   )  [virtual]

Read the config file.

Reimplemented from FolderStorage.

Definition at line 209 of file kmfolderimap.cpp.

void KMFolderImap::reallyGetFolder ( const QString &  startUid = QString()  )  [protected, slot]

Get the folder now (internal).

Definition at line 1263 of file kmfolderimap.cpp.

void KMFolderImap::remove (  )  [virtual]

Remove the IMAP folder on the server and if successful also locally.

Reimplemented from FolderStorage.

Definition at line 248 of file kmfolderimap.cpp.

void KMFolderImap::removeMsg ( const QList< KMMessage * > &  msgList,
bool  quiet = false 
) [virtual]

Definition at line 310 of file kmfolderimap.cpp.

void KMFolderImap::removeMsg ( int  i,
bool  quiet = false 
) [virtual]

Remove (first occurrence of) given message from the folder.

Reimplemented from FolderStorage.

Definition at line 295 of file kmfolderimap.cpp.

int KMFolderImap::rename ( const QString &  newName,
KMFolderDir *  aParent = 0 
) [virtual]

Physically rename the folder.

Returns zero on success and an errno on failure.

Reimplemented from FolderStorage.

Definition at line 333 of file kmfolderimap.cpp.

void KMFolderImap::saveMsgMetaData ( KMMessage *  msg,
ulong  uid = 0 
)

Save the metadata for the UID If the UID is not supplied the one from the message is taken.

Definition at line 2444 of file kmfolderimap.cpp.

void KMFolderImap::search ( const KMSearchPattern *  pattern,
quint32  serNum 
) [virtual]

Check if the message matches the search criteria The end is signaled with searchDone().

Reimplemented from FolderStorage.

Definition at line 2403 of file kmfolderimap.cpp.

void KMFolderImap::search ( const KMSearchPattern *  pattern  )  [virtual]

Search for messages The actual search is done in slotSearch and the end is signaled with searchDone().

Reimplemented from FolderStorage.

Definition at line 2379 of file kmfolderimap.cpp.

void KMFolderImap::seenFlagToStatus ( KMMsgBase *  msg,
int  flags,
bool  newMsg = true 
) [static, slot]

Convert IMAP seen flag to a message status.

Parameters:
newMsg specifies whether unseen messages are new or unread

Definition at line 1494 of file kmfolderimap.cpp.

void KMFolderImap::sendFolderComplete ( bool  success  )  [inline]

Emit the folderComplete signal.

Definition at line 219 of file kmfolderimap.h.

const ulong KMFolderImap::serNumForUID ( ulong  uid  ) 

Get the serial number for the given UID (if available).

Definition at line 2432 of file kmfolderimap.cpp.

void KMFolderImap::setAccount ( KMAcctImap *  acct  ) 

The imap account associated with this folder.

Definition at line 195 of file kmfolderimap.cpp.

void KMFolderImap::setAlreadyRemoved ( bool  removed  ) 

Mark the folder as already removed from the server If set to true the folder will only be deleted locally This will recursively be applied to all children.

Definition at line 2348 of file kmfolderimap.cpp.

void KMFolderImap::setCheckingValidity ( bool  val  )  [inline]

Definition at line 282 of file kmfolderimap.h.

void KMFolderImap::setChildrenState ( const QString &  attributes  )  [protected]