kmail

kmfolder.h
1 /*
2  * kmail: KDE mail client
3  * Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  *
19  */
20 #ifndef kmfolder_h
21 #define kmfolder_h
22 
23 // for large file support
24 #include <config.h>
25 
26 #include "kmfoldernode.h"
27 #include "kmfoldertype.h"
28 #include "kmmsginfo.h"
29 #include "kmglobal.h"
30 #include "kmkernel.h"
31 #include "folderjob.h"
32 using KMail::FolderJob;
33 #include "mailinglist-magic.h"
34 using KMail::MailingList;
35 #include "kmaccount.h" // for AccountList
36 
37 #include "mimelib/string.h"
38 
39 #include <tqptrvector.h>
40 #include <sys/types.h>
41 #include <stdio.h>
42 #include <tdeshortcut.h>
43 
44 class KMMessage;
45 class KMFolderDir;
46 class TQTimer;
47 class FolderStorage;
48 class KMFolderTreeItem;
49 class KMFolderJob;
50 
51 namespace KMail {
52  class AttachmentStrategy;
53 }
54 using KMail::AttachmentStrategy;
55 
56 typedef TQValueList<TQ_UINT32> SerNumList;
57 
68 class KMFolder: public KMFolderNode
69 {
70  TQ_OBJECT
71 
72  friend class ::KMFolderJob;
73 public:
74 
90  KMFolder( KMFolderDir* parent, const TQString& name,
91  KMFolderType aFolderType, bool withIndex = true,
92  bool exportedSernums = true );
93  ~KMFolder();
94 
96  bool isMainInbox() {
97  return this == KMKernel::self()->inboxFolder();
98  }
100  bool isOutbox() {
101  return this == KMKernel::self()->outboxFolder();
102  }
105  bool isSent() {
106  return KMKernel::self()->folderIsSentMailFolder( this );
107  }
110  bool isTrash() {
111  return KMKernel::self()->folderIsTrash( this );
112  }
115  bool isDrafts() {
116  return KMKernel::self()->folderIsDrafts( this );
117  }
120  bool isTemplates() {
121  return KMKernel::self()->folderIsTemplates( this );
122  }
123 
124  void setAcctList( AccountList* list ) { mAcctList = list; }
125  AccountList* acctList() { return mAcctList; }
126 
128  bool hasAccounts() const { return (mAcctList != 0); }
129 
131  void readConfig( TDEConfig* config );
132 
134  void writeConfig( TDEConfig* config ) const;
135 
136  FolderStorage* storage() { return mStorage; }
138  const FolderStorage* storage() const { return mStorage; }
139 
141  KMFolderType folderType() const;
142 
144  TQString fileName() const;
145 
147  TQString location() const;
148 
150  TQString indexLocation() const;
151 
153  TQString subdirLocation() const;
154 
158  { return mChild; }
159 
162 
164  void setChild( KMFolderDir* aChild );
165 
167  bool noContent() const;
168 
170  void setNoContent(bool aNoContent);
171 
173  bool noChildren() const;
174 
176  void setNoChildren(bool aNoChildren);
177 
179  KMMessage* getMsg(int idx);
180 
182  KMMsgInfo* unGetMsg(int idx);
183 
185  bool isMessage(int idx);
186 
188  DwString getDwString(int idx);
189 
194 
199  FolderJob* createJob( KMMessage *msg, FolderJob::JobType jt = FolderJob::tGetMessage,
200  KMFolder *folder = 0, TQString partSpecifier = TQString(),
201  const AttachmentStrategy *as = 0 ) const;
202  FolderJob* createJob( TQPtrList<KMMessage>& msgList, const TQString& sets,
203  FolderJob::JobType jt = FolderJob::tGetMessage,
204  KMFolder *folder = 0 ) const;
205 
210  const KMMsgBase* getMsgBase(int idx) const;
211  KMMsgBase* getMsgBase(int idx);
212 
214  const KMMsgBase* operator[](int idx) const;
215 
217  KMMsgBase* operator[](int idx);
218 
221  KMMessage* take(int idx);
222  void take(TQPtrList<KMMessage> msgList);
223 
230  int addMsg(KMMessage* msg, int* index_return = 0);
231 
235  int addMsgKeepUID(KMMessage* msg, int* index_return = 0);
236 
241  int addMsg(TQPtrList<KMMessage>&, TQValueList<int>& index_return);
242 
245  void emitMsgAddedSignals(int idx);
246 
248  void removeMsg(int i, bool imapQuiet = false);
249  void removeMsg(TQPtrList<KMMessage> msgList, bool imapQuiet = false);
250 
253  int expungeOldMsg(int days);
254 
259  int moveMsg(KMMessage* msg, int* index_return = 0);
260  int moveMsg(TQPtrList<KMMessage>, int* index_return = 0);
261 
263  int find(const KMMsgBase* msg) const;
264  int find( const KMMessage * msg ) const;
265 
267  int count(bool cache = false) const;
268 
270  int countUnread();
271 
274  int countUnreadRecursive();
275 
278  void msgStatusChanged( const KMMsgStatus oldStatus,
279  const KMMsgStatus newStatus,
280  int idx);
281 
287  int open(const char *owner);
288 
291  int canAccess();
292 
295  void close(const char *owner, bool force=false);
296 
298  void sync();
299 
301  bool isOpened() const;
302 
304  void markNewAsUnread();
305 
307  void markUnreadAsRead();
308 
313  void remove();
314 
318  int expunge();
319 
320  enum CompactOptions { CompactLater, CompactNow, CompactSilentlyNow };
327  void compact( CompactOptions options );
328 
331  int rename(const TQString& newName, KMFolderDir *aParent = 0);
332 
336  bool dirty() const;
337 
339  void setDirty(bool f);
340 
342  bool needsCompacting() const;
343  void setNeedsCompacting(bool f);
344 
353  void quiet(bool beQuiet);
354 
356  bool isReadOnly() const;
358  bool isWritable() const;
359 
360  bool mailCheckInProgress() const;
361 
363  bool canDeleteMessages() const;
364 
369  bool isSystemFolder() const { return mIsSystemFolder; }
370  void setSystemFolder(bool itIs) { mIsSystemFolder=itIs; }
371 
373  virtual TQString label() const;
374  void setLabel( const TQString& l ) { mLabel = l; }
375 
377  virtual TQString systemLabel() const { return mSystemLabel; }
378  void setSystemLabel( const TQString& l ) { mSystemLabel = l; }
379 
381  virtual TQString prettyURL() const;
382 
384  void setMailingListEnabled( bool enabled );
385  bool isMailingListEnabled() const { return mMailingListEnabled; }
386 
387  void setMailingList( const MailingList& mlist );
388  MailingList mailingList() const
389  { return mMailingList; }
390  TQString mailingListPostAddress() const;
391 
392  void setIdentity(uint identity);
393  uint identity() const;
394 
396  TQString whoField() const { return mWhoField; }
397  void setWhoField(const TQString& aWhoField);
398 
400  TQString userWhoField(void) { return mUserWhoField; }
401  void setUserWhoField(const TQString &whoField,bool writeConfig=true);
402 
404  void correctUnreadMsgsCount();
405 
407  TQString idString() const;
408 
412  void setAutoExpire(bool enabled);
413 
417  bool isAutoExpire() const { return mExpireMessages; }
418 
424  void setUnreadExpireAge(int age);
425 
430  void setUnreadExpireUnits(ExpireUnits units);
431 
437  void setReadExpireAge(int age);
438 
443  void setReadExpireUnits(ExpireUnits units);
444 
449  int getUnreadExpireAge() const { return mUnreadExpireAge; }
450 
455  int getReadExpireAge() const { return mReadExpireAge; }
456 
461  ExpireUnits getUnreadExpireUnits() const { return mUnreadExpireUnits; }
462 
467  ExpireUnits getReadExpireUnits() const { return mReadExpireUnits; }
468 
469  enum ExpireAction { ExpireDelete, ExpireMove };
473  ExpireAction expireAction() const { return mExpireAction; }
474  void setExpireAction( ExpireAction a );
475 
479  TQString expireToFolderId() const { return mExpireToFolderId; }
480  void setExpireToFolderId( const TQString& id );
481 
486  void expireOldMessages( bool immediate );
487 
490  int writeIndex( bool createEmptyIndex = false );
491 
493  void setStatus(int idx, KMMsgStatus status, bool toggle=false);
494 
496  void setStatus(TQValueList<int>& ids, KMMsgStatus status, bool toggle=false);
497 
499  bool useCustomIcons() const { return mUseCustomIcons; }
500  void setUseCustomIcons(bool useCustomIcons) { mUseCustomIcons = useCustomIcons; }
501  TQString normalIconPath() const { return mNormalIconPath; }
502  TQString unreadIconPath() const { return mUnreadIconPath; }
503  void setIconPaths(const TQString &normalPath, const TQString &unreadPath);
504 
505  void removeJobs();
506 
507  void daysToExpire( int& unreadDays, int& readDays );
508 
513  KMFolder* trashFolder() const;
514 
519  bool putRepliesInSameFolder() const { return mPutRepliesInSameFolder; }
520  void setPutRepliesInSameFolder( bool b ) { mPutRepliesInSameFolder = b; }
521 
526  bool ignoreNewMail() const { return mIgnoreNewMail; }
527  void setIgnoreNewMail( bool b ) { mIgnoreNewMail = b; }
528 
529  const TDEShortcut &shortcut() const { return mShortcut; }
530  void setShortcut( const TDEShortcut& );
531 
533  bool isMoveable() const;
534 
538  bool moveInProgress() const { return mMoveInProgress; }
539 
541  void setMoveInProgress( bool b ) { mMoveInProgress = b; }
542 
548  bool isValidName( const TQString &folderName, TQString &message );
549 
550 signals:
553  void changed();
554 
557  void closed();
558 
561  void cleared();
562 
565  void expunged( KMFolder* );
566 
568  void iconsChanged();
569 
571  void nameChanged();
572 
574  void shortcutChanged( KMFolder * );
575 
577  void msgRemoved(KMFolder*, TQ_UINT32 sernum);
578 
580  void msgRemoved( int idx, TQString msgIdMD5 );
581  void msgRemoved(KMFolder*);
582 
584  void msgAdded(int idx);
585  void msgAdded(KMFolder*, TQ_UINT32 sernum);
586 
588  void msgChanged(KMFolder*, TQ_UINT32 sernum, int delta);
589 
591  void msgHeaderChanged(KMFolder*, int);
592 
594  void statusMsg(const TQString&);
595 
598 
600  void removed(KMFolder*, bool);
601 
603  void viewConfigChanged();
604 
606  void folderSizeChanged( KMFolder * );
607 
609  void noContentChanged();
610 
615  void syncStateChanged();
616 
617 public slots:
619  int updateIndex();
620 
623  void reallyAddMsg(KMMessage* aMsg);
624 
627  void reallyAddCopyOfMsg(KMMessage* aMsg);
628 
629 private slots:
631  void slotContentsTypeChanged( KMail::FolderContentsType type );
633  void slotFolderSizeChanged();
634 
635 private:
636  FolderStorage* mStorage;
637  KMFolderDir* mChild;
638  bool mIsSystemFolder;
639  bool mHasIndex :1;
640  bool mExportsSernums :1;
641  bool mMoveInProgress :1;
642 
644  TQString mLabel;
645  TQString mSystemLabel;
646 
648  bool mExpireMessages; // true if old messages are expired
649  int mUnreadExpireAge; // Given in unreadExpireUnits
650  int mReadExpireAge; // Given in readExpireUnits
651  ExpireUnits mUnreadExpireUnits;
652  ExpireUnits mReadExpireUnits;
653  ExpireAction mExpireAction;
654  TQString mExpireToFolderId;
655 
657  bool mUseCustomIcons;
658  TQString mNormalIconPath;
659  TQString mUnreadIconPath;
660 
662  bool mMailingListEnabled;
663  MailingList mMailingList;
664 
665  AccountList* mAcctList;
666 
667  uint mIdentity;
668 
670  TQString mWhoField, mUserWhoField;
671 
673  bool mPutRepliesInSameFolder;
674 
676  bool mIgnoreNewMail;
677 
679  TDEShortcut mShortcut;
680 };
681 
682 
689  KMFolder* mFolder;
690  const char* const mOwner;
691  int mOpenRc;
692 
693 public:
694  KMFolderOpener( KMFolder* folder, const char* const owner )
695  : mFolder( folder )
696  , mOwner( owner )
697  {
698  assert( folder ); //change if that's not what you want
699  mOpenRc = folder->open( owner );
700  }
701 
702  ~KMFolderOpener()
703  {
704  if ( !mOpenRc )
705  mFolder->close( mOwner );
706  }
707 
708  KMFolder* folder() const { return mFolder; }
709 
710  int openResult() const { return mOpenRc; }
711 
712 private:
713  //we forbid construction on the heap as good as we can
714  void* operator new( size_t size );
715 };
716 
717 
718 #endif /*kmfolder_h*/
bool putRepliesInSameFolder() const
Returns true if the replies to mails from this folder should be put in the same folder.
Definition: kmfolder.h:519
void statusMsg(const TQString &)
Emmited to display a message somewhere in a status line.
int canAccess()
Check folder for permissions Returns zero if readable and writable.
Definition: kmfolder.cpp:484
bool isMoveable() const
Returns true if this folder can be moved.
Definition: kmfolder.cpp:879
bool ignoreNewMail() const
Returns true if the user doesn't want to get notified about new mail in this folder.
Definition: kmfolder.h:526
KMMessage * getMsg(int idx)
Read message at given index.
Definition: kmfolder.cpp:321
const FolderStorage * storage() const
if the folder is const, the storage should be as well
Definition: kmfolder.h:138
void folderSizeChanged(KMFolder *)
Emitted when the folder's size changes.
TQString location() const
Returns full path to folder file.
Definition: kmfolder.cpp:243
static KMKernel * self()
normal control stuff
Definition: kmkernel.h:259
void msgRemoved(KMFolder *, TQ_UINT32 sernum)
Emitted before a message is removed from the folder.
void setMoveInProgress(bool b)
Sets the move-in-progress flag.
Definition: kmfolder.h:541
bool isAutoExpire() const
Does this folder automatically expire old messages?
Definition: kmfolder.h:417
void remove()
Removes the folder physically from disk and empties the contents of the folder in memory.
Definition: kmfolder.cpp:515
void sync()
fsync buffers to disk
Definition: kmfolder.cpp:495
FolderJob * createJob(KMMessage *msg, FolderJob::JobType jt=FolderJob::tGetMessage, KMFolder *folder=0, TQString partSpecifier=TQString(), const AttachmentStrategy *as=0) const
These methods create respective FolderJob (You should derive FolderJob for each derived KMFolder).
Definition: kmfolder.cpp:346
TQString expireToFolderId() const
If expiry should move to folder, return the ID of that folder.
Definition: kmfolder.h:479
TQString fileName() const
Returns the filename of the folder (reimplemented in KMFolderImap)
Definition: kmfolder.cpp:238
const KMMsgBase * getMsgBase(int idx) const
Provides access to the basic message fields that are also stored in the index.
Definition: kmfolder.cpp:360
void viewConfigChanged()
Emitted when the variables for the config of the view have changed.
int find(const KMMsgBase *msg) const
Returns the index of the given message or -1 if not found.
Definition: kmfolder.cpp:435
void cleared()
Emitted when the contents of a folder have been cleared (new search in a search folder,...
bool noContent() const
Returns, if the folder can't contain mails, but only subfolder.
Definition: kmfolder.cpp:301
bool isReadOnly() const
Is the folder read-only?
Definition: kmfolder.cpp:561
int countUnreadRecursive()
Number of new or unread messages in this folder and all folders contained by this folder.
Definition: kmfolder.cpp:455
void emitMsgAddedSignals(int idx)
Called by derived classes implementation of addMsg.
Definition: kmfolder.cpp:405
bool isOutbox()
Returns true only if this is the outbox for outgoing mail.
Definition: kmfolder.h:100
TQString subdirLocation() const
Returns full path to sub directory file.
Definition: kmfolder.cpp:253
int updateIndex()
Incrementally update the index if possible else call writeIndex.
Definition: kmfolder.cpp:856
KMail list that manages the contents of one directory that may contain folders and/or other directori...
Definition: kmfolderdir.h:15
void markNewAsUnread()
Mark all new messages as unread.
Definition: kmfolder.cpp:505
void msgHeaderChanged(KMFolder *, int)
Emitted when a field of the header of a specific message changed.
void quiet(bool beQuiet)
If set to quiet the folder will not emit msgAdded(idx) signal.
Definition: kmfolder.cpp:556
void setReadExpireUnits(ExpireUnits units)
Set units to use for expiry of read messages.
Definition: kmfolder.cpp:756
bool useCustomIcons() const
Icon related methods.
Definition: kmfolder.h:499
int addMsg(KMMessage *msg, int *index_return=0)
Add the given message to the folder.
Definition: kmfolder.cpp:390
bool isValidName(const TQString &folderName, TQString &message)
Returns true if the name is valid for a child of this folder.
Definition: kmfolder.cpp:899
bool canDeleteMessages() const
Can messages in this folder be deleted?
Definition: kmfolder.cpp:576
bool dirty() const
Returns true if the table of contents is dirty.
Definition: kmfolder.cpp:536
KMFolderDir * createChildFolder()
Create a child folder directory and associates it with this folder.
Definition: kmfolder.cpp:264
TQString userWhoField(void)
Get / set the user-settings for the WhoField (From/To/Empty)
Definition: kmfolder.h:400
virtual TQString label() const
Returns the label of the folder for visualization.
Definition: kmfolder.cpp:581
KMMessage * take(int idx)
Detach message from this folder.
Definition: kmfolder.cpp:380
void ignoreJobsForMessage(KMMessage *)
Removes and deletes all jobs associated with the particular message.
Definition: kmfolder.cpp:341
void noContentChanged()
Emitted when the no content state changed.
void setUnreadExpireUnits(ExpireUnits units)
Set units to use for expiry of unread messages.
Definition: kmfolder.cpp:741
void reallyAddCopyOfMsg(KMMessage *aMsg)
Add a copy of the message to the folder after it has been retrieved from an IMAP server.
Definition: kmfolder.cpp:866
void syncStateChanged()
Emiitted when the sync state, i.e.
bool isDrafts()
Returns true if this folder is the drafts box of the local account, or is configured to be the drafts...
Definition: kmfolder.h:115
bool isOpened() const
Test if folder is opened.
Definition: kmfolder.cpp:500
ExpireUnits getReadExpireUnits() const
Units getReadExpireAge() is returned in.
Definition: kmfolder.h:467
void shortcutChanged(KMFolder *)
Emitted when the shortcut associated with this folder changes.
int open(const char *owner)
Open folder for access.
Definition: kmfolder.cpp:479
const KMMsgBase * operator[](int idx) const
Same as getMsgBase(int).
Definition: kmfolder.cpp:370
TQString whoField() const
Get / set the name of the field that is used for the Sender/Receiver column in the headers (From/To)
Definition: kmfolder.h:396
Class is used for all Mailing List handling inside KMail.
void writeConfig(TDEConfig *config) const
This is used by the storage to save the folder specific configuration.
Definition: kmfolder.cpp:200
bool isSent()
Returns true if this folder is the sent-mail box of the local account, or is configured to be the sen...
Definition: kmfolder.h:105
bool isMainInbox()
Returns true if this folder is the inbox on the local disk.
Definition: kmfolder.h:96
int count(bool cache=false) const
Number of messages in this folder.
Definition: kmfolder.cpp:445
void setNoChildren(bool aNoChildren)
Specify, that the folder can't have children.
Definition: kmfolder.cpp:316
void setDirty(bool f)
Change the dirty flag.
Definition: kmfolder.cpp:541
int rename(const TQString &newName, KMFolderDir *aParent=0)
Physically rename the folder.
Definition: kmfolder.cpp:531
KMFolderDir * child() const
Returns the folder directory associated with this node or 0 if no such directory exists.
Definition: kmfolder.h:157
void msgStatusChanged(const KMMsgStatus oldStatus, const KMMsgStatus newStatus, int idx)
Called by KMMsgBase::setStatus when status of a message has changed required to keep the number unrea...
Definition: kmfolder.cpp:473
void msgChanged(KMFolder *, TQ_UINT32 sernum, int delta)
Emitted, when the status of a message is changed.
The FolderStorage class is the bass class for the storage related aspects of a collection of mail (a ...
Definition: folderstorage.h:79
void setMailingListEnabled(bool enabled)
Returns true if this folder is associated with a mailing-list.
Definition: kmfolder.cpp:620
bool hasAccounts() const
Returns TRUE if accounts are associated with this folder.
Definition: kmfolder.h:128
void expunged(KMFolder *)
Emitted after an expunge.
void changed()
Emitted when the status, name, or associated accounts of this folder changed.
void setAutoExpire(bool enabled)
Set whether this folder automatically expires messages.
Definition: kmfolder.cpp:725
void correctUnreadMsgsCount()
A cludge to help make sure the count of unread messges is kept in sync.
Definition: kmfolder.cpp:700
TQString indexLocation() const
Returns full path to index file.
Definition: kmfolder.cpp:248
void reallyAddMsg(KMMessage *aMsg)
Add the message to the folder after it has been retrieved from an IMAP server.
Definition: kmfolder.cpp:861
KMMsgInfo * unGetMsg(int idx)
Replace KMMessage with KMMsgInfo and delete KMMessage
Definition: kmfolder.cpp:326
ExpireUnits getUnreadExpireUnits() const
Units getUnreadExpireAge() is returned in.
Definition: kmfolder.h:461
void markUnreadAsRead()
Mark all new and unread messages as read.
Definition: kmfolder.cpp:510
void compact(CompactOptions options)
Compact this folder.
Definition: kmfolder.cpp:811
int 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 addMs...
Definition: kmfolder.cpp:395
void setReadExpireAge(int age)
Set the maximum age for read messages in this folder.
Definition: kmfolder.cpp:748
KMFolder * trashFolder() const
If this folder has a special trash folder set, return it.
Definition: kmfolder.cpp:821
void setStatus(int idx, KMMsgStatus status, bool toggle=false)
Set the status of the message at index idx to status.
Definition: kmfolder.cpp:831
void setUnreadExpireAge(int age)
Set the maximum age for unread messages in this folder.
Definition: kmfolder.cpp:733
DwString getDwString(int idx)
Read a message and returns a DwString.
Definition: kmfolder.cpp:336
int countUnread()
Number of new or unread messages in this folder.
Definition: kmfolder.cpp:450
int expungeOldMsg(int days)
Delete messages in the folder that are older than days.
Definition: kmfolder.cpp:420
TQString idString() const
Returns a string that can be used to identify this folder.
Definition: kmfolder.cpp:705
bool noChildren() const
Returns, if the folder can't have children.
Definition: kmfolder.cpp:311
bool folderIsSentMailFolder(const KMFolder *)
Returns true if the folder is one of the sent-mail folders.
Definition: kmkernel.cpp:2222
int expunge()
Delete entire folder.
Definition: kmfolder.cpp:526
bool isTemplates()
Returns true if this folder is the templates folder of the local account, or is configured to be the ...
Definition: kmfolder.h:120
void nameChanged()
Emitted when the name of the folder changes.
void setChild(KMFolderDir *aChild)
Set the folder directory associated with this node.
Definition: kmfolder.cpp:295
RAII for KMFolder::open() / close().
Definition: kmfolder.h:688
void expireOldMessages(bool immediate)
Expire old messages in this folder.
Definition: kmfolder.cpp:801
bool needsCompacting() const
Returns true if the folder contains deleted messages.
Definition: kmfolder.cpp:546
void readConfig(TDEConfig *config)
This is used by the storage to read the folder specific configuration.
Definition: kmfolder.cpp:161
int writeIndex(bool createEmptyIndex=false)
Write index to index-file.
Definition: kmfolder.cpp:826
bool isWritable() const
Can we write into and delete from this folder (on IMAP that's not necessarily !isReadOnly())
Definition: kmfolder.cpp:571
void removed(KMFolder *, bool)
Emitted when a folder was removed.
bool moveInProgress() const
Returns true if there is currently a move or copy operation going on with this folder as target.
Definition: kmfolder.h:538
int moveMsg(KMMessage *msg, int *index_return=0)
Detaches the given message from it's current folder and adds it to this folder.
Definition: kmfolder.cpp:425
ExpireAction expireAction() const
What should expiry do? Delete or move to another folder?
Definition: kmfolder.h:473
This is a Mime Message.
Definition: kmmessage.h:67
KMFolderType folderType() const
Returns the type of this folder.
Definition: kmfolder.cpp:233
int getReadExpireAge() const
Get the age at which read messages are expired.
Definition: kmfolder.h:455
bool isTrash()
Returns true if this folder is configured as a trash folder, locally or for one of the accounts.
Definition: kmfolder.h:110
int getUnreadExpireAge() const
Get the age at which unread messages are expired.
Definition: kmfolder.h:449
void setNoContent(bool aNoContent)
Specify, that the folder can't contain mails.
Definition: kmfolder.cpp:306
folderdiaquotatab.h
Definition: aboutdata.cpp:40
void numUnreadMsgsChanged(KMFolder *)
Emitted when number of unread messages has changed.
KMFolder(KMFolderDir *parent, const TQString &name, KMFolderType aFolderType, bool withIndex=true, bool exportedSernums=true)
Constructs a new Folder object.
Definition: kmfolder.cpp:48
bool isSystemFolder() const
Returns true if the folder is a kmail system folder.
Definition: kmfolder.h:369
bool isMessage(int idx)
Checks if the message is already "gotten" with getMsg.
Definition: kmfolder.cpp:331
void iconsChanged()
Emitted when the icon paths are set.
void closed()
Emitted when the folder is closed for real - ticket holders should discard any messages.
void msgAdded(int idx)
Emitted when a message is added from the folder.
Mail folder.
Definition: kmfolder.h:68
void close(const char *owner, bool force=false)
Close folder.
Definition: kmfolder.cpp:489
void removeMsg(int i, bool imapQuiet=false)
Remove (first occurrence of) given message from the folder.
Definition: kmfolder.cpp:410
virtual TQString systemLabel() const
Set the label that is used as a system default.
Definition: kmfolder.h:377
virtual TQString prettyURL() const
URL of the node for visualization purposes.
Definition: kmfolder.cpp:593