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

kmail

KMFolder Class Reference

#include <kmfolder.h>

Inheritance diagram for KMFolder:

Inheritance graph
[legend]

List of all members.


Detailed Description

Mail folder.

(description will be here).

Accounts

The accounts (of KMail) that are fed into the folder are represented as the children of the folder. They are only stored here during runtime to have a reference for which accounts point to a specific folder.

Definition at line 69 of file kmfolder.h.


Public Types

enum  CompactOptions { CompactLater, CompactNow, CompactSilentlyNow }
enum  ExpireAction { ExpireDelete, ExpireMove }

Public Slots

void reallyAddCopyOfMsg (KMMessage *aMsg)
void reallyAddMsg (KMMessage *aMsg)
int updateIndex ()

Signals

void changed ()
void cleared ()
void closed ()
void expunged (KMFolder *)
void folderSizeChanged (KMFolder *)
void iconsChanged ()
void msgAdded (KMFolder *, quint32 sernum)
void msgAdded (int idx)
void msgChanged (KMFolder *, quint32 sernum, int delta)
void msgHeaderChanged (KMFolder *, int)
void msgRemoved (KMFolder *)
void msgRemoved (int idx, const QString &msgIdMD5)
void msgRemoved (KMFolder *, quint32 sernum)
void nameChanged ()
void numUnreadMsgsChanged (KMFolder *)
void removed (KMFolder *, bool)
void shortcutChanged (KMFolder *)
void statusMsg (const QString &)
void viewConfigChanged ()

Public Member Functions

AccountList * acctList ()
int addMessages (QList< KMMessage * > &, QList< int > &index_return)
int addMsg (KMMessage *msg, int *index_return=0)
int addMsgKeepUID (KMMessage *msg, int *index_return=0)
virtual bool canAccess () const
KMFolderDir * child () const
void close (const char *owner, bool force=false)
void compact (CompactOptions options)
void correctUnreadMsgsCount ()
int count (bool cache=false) const
int countUnread ()
int countUnreadRecursive ()
KMFolderDir * createChildFolder ()
FolderJob * createJob (QList< KMMessage * > &msgList, const QString &sets, FolderJob::JobType jt=FolderJob::tGetMessage, KMFolder *folder=0) const
FolderJob * createJob (KMMessage *msg, FolderJob::JobType jt=FolderJob::tGetMessage, KMFolder *folder=0, const QString &partSpecifier=QString(), const AttachmentStrategy *as=0) const
void daysToExpire (int &unreadDays, int &readDays)
bool dirty () const
void emitMsgAddedSignals (int idx)
ExpireAction expireAction () const
void expireOldMessages (bool immediate)
QString expireToFolderId () const
int expunge ()
int expungeOldMsg (int days)
QString fileName () const
int find (const KMMessage *msg) const
int find (const KMMsgBase *msg) const
KMFolderType folderType () const
DwString getDwString (int idx)
KMMessage * getMsg (int idx)
KMMsgBase * getMsgBase (int idx)
const KMMsgBase * getMsgBase (int idx) const
int getReadExpireAge () const
ExpireUnits getReadExpireUnits () const
int getUnreadExpireAge () const
ExpireUnits getUnreadExpireUnits () const
bool hasAccounts () const
uint identity () const
virtual QString idsLocation () const
QString idString () const
void ignoreJobsForMessage (KMMessage *)
bool ignoreNewMail () const
virtual QString indexLocation () const
bool isAutoExpire () const
bool isDrafts ()
bool isMailingListEnabled () const
bool isMainInbox ()
bool isMessage (int idx)
bool isMoveable () const
bool isOpened () const
bool isOutbox ()
bool isReadOnly () const
bool isSent ()
bool isSystemFolder () const
bool isTemplates ()
bool isTrash ()
 KMFolder (KMFolderDir *parent, const QString &name, KMFolderType aFolderType, bool withIndex=true, bool exportedSernums=true)
virtual QString label () const
QString location () const
MailingList mailingList () const
QString mailingListPostAddress () const
void markNewAsUnread ()
void markUnreadAsRead ()
bool moveInProgress () const
int moveMsg (QList< KMMessage * >, int *index_return=0)
int moveMsg (KMMessage *msg, int *index_return=0)
void msgStatusChanged (const MessageStatus &oldStatus, const MessageStatus &newStatus, int idx)
bool needsCompacting () const
bool noChildren () const
bool noContent () const
QString normalIconPath () const
int open (const char *owner)
KMMsgBase * operator[] (int idx)
const KMMsgBase * operator[] (int idx) const
virtual QString prettyUrl () const
bool putRepliesInSameFolder () const
void quiet (bool beQuiet)
void readConfig (KConfigGroup &config)
void remove ()
void removeJobs ()
void removeMessages (QList< KMMessage * > msgList, bool imapQuiet=false)
void removeMsg (int i, bool imapQuiet=false)
int rename (const QString &newName, KMFolderDir *aParent=0)
void setAcctList (AccountList *list)
void setAutoExpire (bool enabled)
void setChild (KMFolderDir *aChild)
void setDirty (bool f)
void setExpireAction (ExpireAction a)
void setExpireToFolderId (const QString &id)
void setIconPaths (const QString &normalPath, const QString &unreadPath)
void setIdentity (uint identity)
void setIgnoreNewMail (bool b)
void setLabel (const QString &l)
void setMailingList (const MailingList &mlist)
void setMailingListEnabled (bool enabled)
void setMoveInProgress (bool b)
void setNeedsCompacting (bool f)
void setNoChildren (bool aNoChildren)
void setNoContent (bool aNoContent)
void setPutRepliesInSameFolder (bool b)
void setReadExpireAge (int age)
void setReadExpireUnits (ExpireUnits units)
void setShortcut (const KShortcut &)
void setStatus (QList< int > &ids, const MessageStatus &status, bool toggle=false)
void setStatus (int idx, const MessageStatus &status, bool toggle=false)
void setSystemFolder (bool itIs)
void setSystemLabel (const QString &l)
void setUnreadExpireAge (int age)
void setUnreadExpireUnits (ExpireUnits units)
void setUseCustomIcons (bool useCustomIcons)
void setUseDefaultIdentity (bool useDefaultIdentity)
void setUserWhoField (const QString &whoField, bool writeConfig=true)
void setWhoField (const QString &aWhoField)
const KShortcut & shortcut () const
virtual QString sortedLocation () const
const FolderStorage * storage () const
FolderStorage * storage ()
QString subdirLocation () const
void sync ()
virtual QString systemLabel () const
KMMessage * take (int idx)
void takeMessages (const QList< KMMessage * > &msgList)
KMFolder * trashFolder () const
KMMsgInfo * unGetMsg (int idx)
QString unreadIconPath () const
bool useCustomIcons () const
bool useDefaultIdentity () const
QString userWhoField (void)
QString whoField () const
void writeConfig (KConfigGroup &config) const
int writeIndex (bool createEmptyIndex=false)
 ~KMFolder ()

Member Enumeration Documentation

enum KMFolder::CompactOptions

Enumerator:
CompactLater 
CompactNow 
CompactSilentlyNow 

Definition at line 330 of file kmfolder.h.

enum KMFolder::ExpireAction

Enumerator:
ExpireDelete 
ExpireMove 

Definition at line 477 of file kmfolder.h.


Constructor & Destructor Documentation

KMFolder::KMFolder ( KMFolderDir *  parent,
const QString &  name,
KMFolderType  aFolderType,
bool  withIndex = true,
bool  exportedSernums = true 
)

Constructs a new Folder object.

Parameters:
parent The directory in the folder storage hierarchy under which the folder's storage will be found or created.
name If name of the folder. In case there is no parent directory, because the folder is free-standing (/var/spool/mail/foo), this is used for the full path to the folder's storage location.
aFolderType The type of folder to create.
withIndex Wether this folder has an index. No-index folders are those used by KMail internally, the Outbox, and those of local spool accounts, for example.
exportedSernums whether this folder exports its serial numbers to the global MsgDict for lookup.
Returns:
A new folder instance.

Definition at line 50 of file kmfolder.cpp.

KMFolder::~KMFolder (  ) 

Definition at line 154 of file kmfolder.cpp.


Member Function Documentation

AccountList* KMFolder::acctList (  )  [inline]

Definition at line 126 of file kmfolder.h.

int KMFolder::addMessages ( QList< KMMessage * > &  list,
QList< int > &  index_return 
)

Adds the given messages to the folder.

Behaviour is identical to addMsg(msg)

Definition at line 422 of file kmfolder.cpp.

int KMFolder::addMsg ( KMMessage *  msg,
int *  index_return = 0 
)

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).

Definition at line 412 of file kmfolder.cpp.

int KMFolder::addMsgKeepUID ( KMMessage *  msg,
int *  index_return = 0 
)

(Note(bo): This needs to be fixed better at a later point.

) This is overridden by dIMAP because addMsg strips the X-UID header from the mail.

Definition at line 417 of file kmfolder.cpp.

bool KMFolder::canAccess (  )  const [virtual]

Check folder for permissions.

Returns:
true if readable and writable.

Definition at line 506 of file kmfolder.cpp.

void KMFolder::changed (  )  [signal]

Emitted when the status, name, or associated accounts of this folder changed.

KMFolderDir* KMFolder::child (  )  const [inline]

Returns the folder directory associated with this node or 0 if no such directory exists.

Definition at line 164 of file kmfolder.h.

void KMFolder::cleared (  )  [signal]

Emitted when the contents of a folder have been cleared (new search in a search folder, for example).

void KMFolder::close ( const char *  owner,
bool  force = false 
)

Close folder.

open() and close() use reference counting. If force is true the files are closed even if others are still using it (e.g. other mail reader windows). owner is for debugging.

Definition at line 511 of file kmfolder.cpp.

void KMFolder::closed (  )  [signal]

Emitted when the folder is closed for real - ticket holders should discard any messages.

void KMFolder::compact ( CompactOptions  options  ) 

Compact this folder.

Options: CompactLater: schedule it as a background task CompactNow: do it now, and inform the user of the result (manual compaction) CompactSilentlyNow: do it now, and keep silent about it (e.g. for outbox)

Definition at line 824 of file kmfolder.cpp.

void KMFolder::correctUnreadMsgsCount (  ) 

A cludge to help make sure the count of unread messges is kept in sync.

Definition at line 713 of file kmfolder.cpp.

int KMFolder::count ( bool  cache = false  )  const

Number of messages in this folder.

Definition at line 467 of file kmfolder.cpp.

int KMFolder::countUnread (  ) 

Number of new or unread messages in this folder.

Definition at line 472 of file kmfolder.cpp.

int KMFolder::countUnreadRecursive (  ) 

Number of new or unread messages in this folder and all folders contained by this folder.

Definition at line 477 of file kmfolder.cpp.

KMFolderDir * KMFolder::createChildFolder (  ) 

Create a child folder directory and associates it with this folder.

Definition at line 284 of file kmfolder.cpp.

FolderJob * KMFolder::createJob ( QList< KMMessage * > &  msgList,
const QString &  sets,
FolderJob::JobType  jt = FolderJob::tGetMessage,
KMFolder *  folder = 0 
) const

Definition at line 375 of file kmfolder.cpp.

FolderJob* KMFolder::createJob ( KMMessage *  msg,
FolderJob::JobType  jt = FolderJob::tGetMessage,
KMFolder *  folder = 0,
const QString &  partSpecifier = QString(),
const AttachmentStrategy *  as = 0 
) const

These methods create respective FolderJob (You should derive FolderJob for each derived KMFolder).

void KMFolder::daysToExpire ( int &  unreadDays,
int &  readDays 
)

Definition at line 809 of file kmfolder.cpp.

bool KMFolder::dirty (  )  const

Returns true if the table of contents is dirty.

This happens when a message is deleted from the folder. The toc will then be re-created when the folder is closed.

Definition at line 558 of file kmfolder.cpp.

void KMFolder::emitMsgAddedSignals ( int  idx  ) 

Called by derived classes implementation of addMsg.

Emits msgAdded signals

Definition at line 427 of file kmfolder.cpp.

ExpireAction KMFolder::expireAction (  )  const [inline]

What should expiry do? Delete or move to another folder?

Definition at line 481 of file kmfolder.h.

void KMFolder::expireOldMessages ( bool  immediate  ) 

Expire old messages in this folder.

If immediate is true, do it immediately; otherwise schedule it for later

Definition at line 814 of file kmfolder.cpp.

QString KMFolder::expireToFolderId (  )  const [inline]

If expiry should move to folder, return the ID of that folder.

Definition at line 487 of file kmfolder.h.

int KMFolder::expunge (  ) 

Delete entire folder.

Forces a close *but* opens the folder again afterwards. Returns errno(3) error code or zero on success. see KMFolder::expungeContents

Definition at line 548 of file kmfolder.cpp.

void KMFolder::expunged ( KMFolder *   )  [signal]

Emitted after an expunge.

If not quiet, changed() will be emmitted first.

int KMFolder::expungeOldMsg ( int  days  ) 

Delete messages in the folder that are older than days.

Return the number of deleted messages.

Definition at line 442 of file kmfolder.cpp.

QString KMFolder::fileName (  )  const

Returns the filename of the folder (reimplemented in KMFolderImap).

Definition at line 248 of file kmfolder.cpp.

int KMFolder::find ( const KMMessage *  msg  )  const

Definition at line 462 of file kmfolder.cpp.

int KMFolder::find ( const KMMsgBase *  msg  )  const

Returns the index of the given message or -1 if not found.

Definition at line 457 of file kmfolder.cpp.

void KMFolder::folderSizeChanged ( KMFolder *   )  [signal]

Emitted when the folder's size changes.

KMFolderType KMFolder::folderType (  )  const

Returns the type of this folder.

Definition at line 243 of file kmfolder.cpp.

DwString KMFolder::getDwString ( int  idx  ) 

Read a message and returns a DwString.

Definition at line 358 of file kmfolder.cpp.

KMMessage * KMFolder::getMsg ( int  idx  ) 

Read message at given index.

Indexing starts at zero

Definition at line 343 of file kmfolder.cpp.

KMMsgBase * KMFolder::getMsgBase ( int  idx  ) 

Definition at line 387 of file kmfolder.cpp.

const KMMsgBase * KMFolder::getMsgBase ( int  idx  )  const

Provides access to the basic message fields that are also stored in the index.

Whenever you only need subject, from, date, status you should use this method instead of getMsg() because getMsg() will load the message if necessary and this method does not.

Definition at line 382 of file kmfolder.cpp.

int KMFolder::getReadExpireAge (  )  const [inline]

Get the age at which read messages are expired.

Units are determined by getReadExpireUnits().

Definition at line 463 of file kmfolder.h.

ExpireUnits KMFolder::getReadExpireUnits (  )  const [inline]

Units getReadExpireAge() is returned in.

1 = days, 2 = weeks, 3 = months.

Definition at line 475 of file kmfolder.h.

int KMFolder::getUnreadExpireAge (  )  const [inline]

Get the age at which unread messages are expired.

Units are determined by getUnreadExpireUnits().

Definition at line 457 of file kmfolder.h.

ExpireUnits KMFolder::getUnreadExpireUnits (  )  const [inline]

Units getUnreadExpireAge() is returned in.

1 = days, 2 = weeks, 3 = months.

Definition at line 469 of file kmfolder.h.

bool KMFolder::hasAccounts (  )  const [inline]

Returns true if accounts are associated with this folder.

Definition at line 129 of file kmfolder.h.

void KMFolder::iconsChanged (  )  [signal]

Emitted when the icon paths are set.

uint KMFolder::identity (  )  const

Definition at line 653 of file kmfolder.cpp.

QString KMFolder::idsLocation (  )  const [virtual]

Returns full path to 'ids' file.

Definition at line 268 of file kmfolder.cpp.

QString KMFolder::idString (  )  const

Returns a string that can be used to identify this folder.

Definition at line 718 of file kmfolder.cpp.

void KMFolder::ignoreJobsForMessage ( KMMessage *  m  ) 

Removes and deletes all jobs associated with the particular message.

Definition at line 363 of file kmfolder.cpp.

bool KMFolder::ignoreNewMail (  )  const [inline]

Returns true if the user doesn't want to get notified about new mail in this folder.

Definition at line 534 of file kmfolder.h.

QString KMFolder::indexLocation (  )  const [virtual]

Returns full path to index file.

Definition at line 258 of file kmfolder.cpp.

bool KMFolder::isAutoExpire (  )  const [inline]

Does this folder automatically expire old messages?

Definition at line 425 of file kmfolder.h.

bool KMFolder::isDrafts (  )  [inline]

Returns true if this folder is the drafts box of the local account, or is configured to be the drafts box of any of the users identities.

Definition at line 115 of file kmfolder.h.

bool KMFolder::isMailingListEnabled (  )  const [inline]

Definition at line 388 of file kmfolder.h.

bool KMFolder::isMainInbox (  )  [inline]

Returns true if this folder is the inbox on the local disk.

Definition at line 96 of file kmfolder.h.

bool KMFolder::isMessage ( int  idx  ) 

Checks if the message is already "gotten" with getMsg.

Definition at line 353 of file kmfolder.cpp.

bool KMFolder::isMoveable (  )  const

Returns true if this folder can be moved.

Definition at line 892 of file kmfolder.cpp.

bool KMFolder::isOpened (  )  const

Test if folder is opened.

Definition at line 522 of file kmfolder.cpp.

bool KMFolder::isOutbox (  )  [inline]

Returns true only if this is the outbox for outgoing mail.

Definition at line 100 of file kmfolder.h.

bool KMFolder::isReadOnly (  )  const

Is the folder read-only?

Definition at line 583 of file kmfolder.cpp.

bool KMFolder::isSent (  )  [inline]

Returns true if this folder is the sent-mail box of the local account, or is configured to be the sent mail box of any of the users identities.

Definition at line 105 of file kmfolder.h.

bool KMFolder::isSystemFolder (  )  const [inline]

Returns true if the folder is a kmail system folder.

These are the folders 'inbox', 'outbox', 'sent', 'trash', 'drafts', 'templates'. The name of these folders is nationalized in the folder display and they cannot have accounts associated. Deletion is also forbidden. Etc.

Definition at line 372 of file kmfolder.h.

bool KMFolder::isTemplates (  )  [inline]

Returns true if this folder is the templates folder of the local account, or is configured to be the templates folder of any of the users identities.

Definition at line 121 of file kmfolder.h.

bool KMFolder::isTrash (  )  [inline]

Returns true if this folder is configured as a trash folder, locally or for one of the accounts.

Definition at line 110 of file kmfolder.h.

QString KMFolder::label ( void   )  const [virtual]

Returns the label of the folder for visualization.

Reimplemented from KMFolderNode.

Definition at line 588 of file kmfolder.cpp.

QString KMFolder::location ( void   )  const

Returns full path to folder file.

Definition at line 253 of file kmfolder.cpp.

MailingList KMFolder::mailingList (  )  const [inline]

Definition at line 391 of file kmfolder.h.

QString KMFolder::mailingListPostAddress (  )  const

Definition at line 612 of file kmfolder.cpp.

void KMFolder::markNewAsUnread (  ) 

Mark all new messages as unread.

Definition at line 527 of file kmfolder.cpp.

void KMFolder::markUnreadAsRead (  ) 

Mark all new and unread messages as read.

Definition at line 532 of file kmfolder.cpp.

bool KMFolder::moveInProgress (  )  const [inline]

Returns true if there is currently a move or copy operation going on with this folder as target.

Definition at line 546 of file kmfolder.h.

int KMFolder::moveMsg ( QList< KMMessage * >  q,
int *  index_return = 0 
)

Definition at line 452 of file kmfolder.cpp.

int KMFolder::moveMsg ( KMMessage *  msg,
int *  index_return = 0 
)

Detaches the given message from it's current folder and adds it to this 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.

Definition at line 447 of file kmfolder.cpp.

void KMFolder::msgAdded ( KMFolder *  ,
quint32  sernum 
) [signal]

void KMFolder::msgAdded ( int  idx  )  [signal]

Emitted when a message is added from the folder.

void KMFolder::msgChanged ( KMFolder *  ,
quint32  sernum,
int  delta 
) [signal]

Emitted, when the status of a message is changed.

void KMFolder::msgHeaderChanged ( KMFolder *  ,
int   
) [signal]

Emitted when a field of the header of a specific message changed.

void KMFolder::msgRemoved ( KMFolder *   )  [signal]

void KMFolder::msgRemoved ( int  idx,
const QString &  msgIdMD5 
) [signal]

Emitted after a message is removed from the folder.

void KMFolder::msgRemoved ( KMFolder *  ,
quint32  sernum 
) [signal]

Emitted before a message is removed from the folder.

void KMFolder::msgStatusChanged ( const MessageStatus &  oldStatus,
const MessageStatus &  newStatus,
int  idx 
)

Called by KMMsgBase::setStatus when status of a message has changed required to keep the number of unread messages variable current.

Definition at line 495 of file kmfolder.cpp.

void KMFolder::nameChanged