KMFolder Class Reference
Mail folder. More...
#include <kmfolder.h>
Inherits KMFolderNode.
Inherited by KMAcctFolder.
Public Types
- enum CompactOptions { CompactLater, CompactNow, CompactSilentlyNow }
- enum ExpireAction { ExpireDelete, ExpireMove }
Public Slots
- int updateIndex ()
- void reallyAddMsg (KMMessage *aMsg)
- void reallyAddCopyOfMsg (KMMessage *aMsg)
Signals
- void changed ()
- void cleared ()
- void expunged (KMFolder *)
- void iconsChanged ()
- void nameChanged ()
- void shortcutChanged (KMFolder *)
- void msgRemoved (KMFolder *, Q_UINT32 sernum)
- void msgRemoved (int idx, QString msgIdMD5)
- void msgRemoved (KMFolder *)
- void msgAdded (int idx)
- void msgAdded (KMFolder *, Q_UINT32 sernum)
- void msgChanged (KMFolder *, Q_UINT32 sernum, int delta)
- void msgHeaderChanged (KMFolder *, int)
- void statusMsg (const QString &)
- void numUnreadMsgsChanged (KMFolder *)
- void removed (KMFolder *, bool)
Public Member Functions
- KMFolder (KMFolderDir *parent, const QString &name, KMFolderType aFolderType)
- void readConfig (KConfig *config)
- void writeConfig (KConfig *config) const
- FolderStorage * storage ()
- const FolderStorage * storage () const
- KMFolderType folderType () const
- QString fileName () const
- QString location () const
- QString indexLocation () const
- QString subdirLocation () const
- KMFolderDir * child () const
- KMFolderDir * createChildFolder ()
- void setChild (KMFolderDir *aChild)
- bool noContent () const
- void setNoContent (bool aNoContent)
- bool noChildren () const
- void setNoChildren (bool aNoChildren)
- KMMessage * getMsg (int idx)
- KMMsgInfo * unGetMsg (int idx)
- bool isMessage (int idx)
- QCString & getMsgString (int idx, QCString &mDest)
- DwString getDwString (int idx)
- void ignoreJobsForMessage (KMMessage *)
- FolderJob * createJob (KMMessage *msg, FolderJob::JobType jt=FolderJob::tGetMessage, KMFolder *folder=0, QString partSpecifier=QString::null, const AttachmentStrategy *as=0) const
- FolderJob * createJob (QPtrList< KMMessage > &msgList, const QString &sets, FolderJob::JobType jt=FolderJob::tGetMessage, KMFolder *folder=0) const
- const KMMsgBase * getMsgBase (int idx) const
- KMMsgBase * getMsgBase (int idx)
- const KMMsgBase * operator[] (int idx) const
- KMMsgBase * operator[] (int idx)
- KMMessage * take (int idx)
- void take (QPtrList< KMMessage > msgList)
- int addMsg (KMMessage *msg, int *index_return=0)
- int addMsgKeepUID (KMMessage *msg, int *index_return=0)
- int addMsg (QPtrList< KMMessage > &, QValueList< int > &index_return)
- void emitMsgAddedSignals (int idx)
- void removeMsg (int i, bool imapQuiet=FALSE)
- void removeMsg (QPtrList< KMMessage > msgList, bool imapQuiet=FALSE)
- int expungeOldMsg (int days)
- int moveMsg (KMMessage *msg, int *index_return=0)
- int moveMsg (QPtrList< KMMessage >, int *index_return=0)
- int find (const KMMsgBase *msg) const
- int find (const KMMessage *msg) const
- int count (bool cache=false) const
- int countUnread ()
- int countUnreadRecursive ()
- void msgStatusChanged (const KMMsgStatus oldStatus, const KMMsgStatus newStatus, int idx)
- int open ()
- int canAccess ()
- void close (bool force=FALSE)
- void sync ()
- bool isOpened () const
- void markNewAsUnread ()
- void markUnreadAsRead ()
- int create (bool imap=FALSE)
- void remove ()
- int expunge ()
- void compact (CompactOptions options)
- int rename (const QString &newName, KMFolderDir *aParent=0)
- bool autoCreateIndex () const
- void setAutoCreateIndex (bool)
- bool dirty () const
- void setDirty (bool f)
- bool needsCompacting () const
- void setNeedsCompacting (bool f)
- void quiet (bool beQuiet)
- bool isReadOnly () const
- bool isSystemFolder () const
- void setSystemFolder (bool itIs)
- virtual QString label () const
- void setLabel (const QString &l)
- virtual QString systemLabel () const
- void setSystemLabel (const QString &l)
- virtual QString prettyURL () const
- const char * type () const
- bool hasAccounts () const
- void setMailingListEnabled (bool enabled)
- bool isMailingListEnabled () const
- void setMailingList (const MailingList &mlist)
- MailingList mailingList () const
- QString mailingListPostAddress () const
- void setIdentity (uint identity)
- uint identity () const
- QString whoField () const
- void setWhoField (const QString &aWhoField)
- QString userWhoField (void)
- void setUserWhoField (const QString &whoField, bool writeConfig=true)
- void correctUnreadMsgsCount ()
- QString idString () const
- void setAutoExpire (bool enabled)
- bool isAutoExpire () const
- void setUnreadExpireAge (int age)
- void setUnreadExpireUnits (ExpireUnits units)
- void setReadExpireAge (int age)
- void setReadExpireUnits (ExpireUnits units)
- int getUnreadExpireAge () const
- int getReadExpireAge () const
- ExpireUnits getUnreadExpireUnits () const
- ExpireUnits getReadExpireUnits () const
- ExpireAction expireAction () const
- void setExpireAction (ExpireAction a)
- QString expireToFolderId () const
- void setExpireToFolderId (const QString &id)
- void expireOldMessages (bool immediate)
- int writeIndex (bool createEmptyIndex=false)
- void fillMsgDict (KMMsgDict *dict)
- int writeMsgDict (KMMsgDict *dict=0)
- int touchMsgDict ()
- int appendtoMsgDict (int idx=-1)
- void setRDict (KMMsgDictREntry *rentry)
- KMMsgDictREntry * rDict () const
- void setStatus (int idx, KMMsgStatus status, bool toggle=false)
- void setStatus (QValueList< int > &ids, KMMsgStatus status, bool toggle=false)
- bool useCustomIcons () const
- void setUseCustomIcons (bool useCustomIcons)
- QString normalIconPath () const
- QString unreadIconPath () const
- void setIconPaths (const QString &normalPath, const QString &unreadPath)
- void removeJobs ()
- void daysToExpire (int &unreadDays, int &readDays)
- KMFolder * trashFolder () const
- bool putRepliesInSameFolder () const
- void setPutRepliesInSameFolder (bool b)
- bool ignoreNewMail () const
- void setIgnoreNewMail (bool b)
- const KShortcut & shortcut () const
- void setShortcut (const KShortcut &)
- bool isMoveable () const
Static Public Member Functions
- static size_t crlf2lf (char *str, const size_t strLen)
Friends
Detailed Description
Mail folder.(description will be here).
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. Constructor & Destructor Documentation
|
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. |
Member Function Documentation
|
This is used by the storage to read the folder specific configuration.
|
|
This is used by the storage to save the folder specific configuration.
|
|
if the folder is const, the storage should be as well
|
|
Returns the type of this folder.
|
|
Returns the filename of the folder (reimplemented in KMFolderImap).
|
|
Returns full path to folder file.
|
|
Returns full path to index file.
|
|
Returns full path to sub directory file.
|
|
Returns the folder directory associated with this node or 0 if no such directory exists.
|
|
Create a child folder directory and associates it with this folder.
|
|
Set the folder directory associated with this node.
|
|
Returns, if the folder can't contain mails, but only subfolder.
|
|
Specify, that the folder can't contain mails.
|
|
Returns, if the folder can't have children.
|
|
Specify, that the folder can't have children.
|
|
Read message at given index. Indexing starts at zero |
|
Replace KMMessage with KMMsgInfo and delete KMMessage.
|
|
Checks if the message is already "gotten" with getMsg.
|
|
Read a message and return a referece to a string.
|
|
Read a message and returns a DwString.
|
|
Removes and deletes all jobs associated with the particular message.
|
|
These methods create respective FolderJob (You should derive FolderJob for each derived KMFolder).
|
|
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. |
|
Same as getMsgBase(int).
|
|
Same as getMsgBase(int). This time non-const. |
|
Detach message from this folder. Usable to call addMsg() afterwards. Loads the message if it is not loaded up to now. |
|
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). |
|
(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. |
|
Adds the given messages to the folder. Behaviour is identical to addMsg(msg) |
|
Called by derived classes implementation of addMsg. Emits msgAdded signals |
|
Remove (first occurrence of) given message from the folder.
|
|
Delete messages in the folder that are older than days. Return the number of deleted messages. |
|
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. |
|
Returns the index of the given message or -1 if not found.
|
|
Number of messages in this folder.
|
|
Number of new or unread messages in this folder.
|
|
Number of new or unread messages in this folder and all folders contained by this folder.
|
|
Called by KMMsgBase::setStatus when status of a message has changed required to keep the number unread messages variable current.
|
|
Open folder for access. Does nothing if the folder is already opened. To reopen a folder call close() first. Returns zero on success and an error code equal to the c-library fopen call otherwise (errno). |
|
Check folder for permissions Returns zero if readable and writable.
|
|
Close folder. If force is TRUE the files are closed even if others still use it (e.g. other mail reader windows). |
|
fsync buffers to disk
|
|
Test if folder is opened.
|
|
Mark all new messages as unread.
|
|
Mark all new and unread messages as read.
|
|
Create a new folder with the name of this object and open it. Returns zero on success and an error code equal to the c-library fopen call otherwise. |
|
Removes the folder physically from disk and empties the contents of the folder in memory. Note that the folder is closed during this process, whether there are others using it or not.
|
|
Delete entire folder. Forces a close *but* opens the folder again afterwards. Returns errno(3) error code or zero on success.
|
|
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) |
|
Physically rename the folder. Returns zero on success and an errno on failure. |
|
Returns TRUE if a table of contents file is automatically created.
|
|
Allow/disallow automatic creation of a table of contents file. Default is TRUE. |
|
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. |
|
Change the dirty flag.
|
|
Returns TRUE if the folder contains deleted messages.
|
|
If set to quiet the folder will not emit msgAdded(idx) signal. This is necessary because adding the messages to the listview one by one as they come in ( as happens on msgAdded(idx) ) is very slow for large ( >10000 ) folders. For pop, where whole bodies are downloaded this is not an issue, but for imap, where we only download headers it becomes a bottleneck. We therefore set the folder quiet() and rebuild the listview completely once the complete folder has been checked. |
|
Is the folder read-only?
|
|
Returns TRUE if the folder is a kmail system folder. These are the folders 'outbox', 'sent', 'trash'. The name of these folders is nationalized in the folder display and they cannot have accounts associated. Deletion is also forbidden. Etc. |
|
Returns the label of the folder for visualization.
|
|
Set the label that is used as a system default.
|
|
URL of the node for visualization purposes.
|
|
Type of the folder. Inherited. |
|
Returns TRUE if accounts are associated with this folder.
|
|
Returns TRUE if this folder is associated with a mailing-list.
|
|
Get / set the name of the field that is used for the Sender/Receiver column in the headers (From/To).
|
|
Get / set the user-settings for the WhoField (From/To/Empty).
|
|
A cludge to help make sure the count of unread messges is kept in sync.
|
|
Returns a string that can be used to identify this folder.
|
|
Set whether this folder automatically expires messages.
|
|
Does this folder automatically expire old messages?
|
|
Set the maximum age for unread messages in this folder. Age should not be negative. Units are set using setUnreadExpireUnits(). |
|
Set units to use for expiry of unread messages. Values are 1 = days, 2 = weeks, 3 = months. |
|
Set the maximum age for read messages in this folder. Age should not be negative. Units are set using setReadExpireUnits(). |
|
Set units to use for expiry of read messages. Values are 1 = days, 2 = weeks, 3 = months. |
|
Get the age at which unread messages are expired. Units are determined by getUnreadExpireUnits(). |
|
Get the age at which read messages are expired. Units are determined by getReadExpireUnits(). |
|
Units getUnreadExpireAge() is returned in. 1 = days, 2 = weeks, 3 = months. |
|
Units getReadExpireAge() is returned in. 1 = days, 2 = weeks, 3 = months. |
|
What should expiry do? Delete or move to another folder?
|
|
If expiry should move to folder, return the ID of that folder.
|
|
Expire old messages in this folder. If immediate is true, do it immediately; otherwise schedule it for later |
|
Write index to index-file. Returns 0 on success and errno error on failure. |
|
Inserts messages into the message dictionary. Might be called during kernel initialization. |
|
Writes the message serial number file.
|
|
Touches the message serial number file.
|
|
Append message to end of message serial number file.
|
|
Sets the reverse-dictionary for this folder.
|
|
Returns the reverse-dictionary for this folder.
|
|
Set the status of the message at index
|
|
Set the status of the message(s) in the QValueList
|
|
Icon related methods.
|
|
Convert "\r\n" line endings in "\n" line endings. The conversion happens in place. Returns the length of the resulting string. |
|
If this folder has a special trash folder set, return it. Otherwise return 0. |
|
Returns true if the replies to mails from this folder should be put in the same folder.
|
|
Returns true if the user doesn't want to get notified about new mail in this folder.
|
|
Returns true if this folder can be moved.
|
|
Emitted when the status, name, or associated accounts of this folder changed.
|
|
Emitted when the contents of a folder have been cleared (new search in a search folder, for example).
|
|
Emitted after an expunge. If not quiet, changed() will be emmitted first. |
|
Emitted when the icon paths are set.
|
|
Emitted when the name of the folder changes.
|
|
Emitted when the shortcut associated with this folder changes.
|
|
Emitted before a message is removed from the folder.
|
|
Emitted after a message is removed from the folder.
|
|
Emitted when a message is added from the folder.
|
|
Emitted, when the status of a message is changed.
|
|
Emitted when a field of the header of a specific message changed.
|
|
Emmited to display a message somewhere in a status line.
|
|
Emitted when number of unread messages has changed.
|
|
Emitted when a folder was removed.
|
|
Incrementally update the index if possible else call writeIndex.
|
|
Add the message to the folder after it has been retrieved from an IMAP server.
|
|
Add a copy of the message to the folder after it has been retrieved from an IMAP server.
|
The documentation for this class was generated from the following files:
- kmfolder.h
- kmfolder.cpp