kmail Library API Documentation

kmfiltermgr.h

00001 /* Mail Filter Manager
00002  *
00003  * Author: Stefan Taferner <taferner@kde.org>
00004  * This code is under GPL
00005  */
00006 #ifndef kmfiltermgr_h
00007 #define kmfiltermgr_h
00008 
00009 #include "kmfilteraction.h" // for KMFilterAction::ReturnCode
00010 #include "kmfolder.h"
00011 
00012 #include <qptrlist.h>
00013 #include <qguardedptr.h>
00014 #include <qobject.h>
00015 
00016 class KMFilter;
00017 class KMFilterDlg;
00018 
00019 class KMFilterMgr: public QObject, public QPtrList<KMFilter>
00020 {
00021   Q_OBJECT
00022 
00023 public:
00024   KMFilterMgr(bool popFilter = false);
00025   virtual ~KMFilterMgr();
00026 
00027   enum FilterSet { NoSet = 0x0, Inbound = 0x1, Outbound = 0x2, Explicit = 0x4,
00028            All = Inbound|Outbound|Explicit };
00029 
00031   void readConfig(void);
00032 
00034   void writeConfig(bool withSync=TRUE);
00035 
00037   void openDialog( QWidget *parent );
00038 
00041   void createFilter( const QCString & field, const QString & value );
00042 
00043   bool beginFiltering(KMMsgBase *msgBase) const;
00044   int moveMessage(KMMessage *msg) const;
00045   void endFiltering(KMMsgBase *msgBase) const;
00046 
00059   int process( KMMessage * msg, FilterSet aSet=Inbound );
00060 
00063   int process( KMMessage * msg, const KMFilter * filter );
00064 
00065   void cleanup();
00068   void ref();
00074   void deref(bool force = false);
00075 
00080   int tempOpenFolder(KMFolder* aFolder);
00081 
00084   void beginUpdate() {}
00085 
00087   void endUpdate();
00088 
00090 #ifndef NDEBUG
00091   void dump();
00092 #endif
00093 
00098   bool folderRemoved(KMFolder* aFolder, KMFolder* aNewFolder);
00099 
00102   void folderCreated(KMFolder*) {}
00103 
00105   void setShowLaterMsgs( bool show ) {
00106     mShowLater = show;
00107   }
00108 
00110   bool showLaterMsgs() const {
00111     return mShowLater;
00112   }
00113 
00114 signals:
00115   void filterListUpdated();
00116 
00117 private:
00118   int processPop( KMMessage * msg ) const;
00119 
00120   QGuardedPtr<KMFilterDlg> mEditDialog;
00121   QPtrList<KMFolder> mOpenFolders;
00122   bool bPopFilter;
00123   bool mShowLater;
00124   int mRefCount;
00125 };
00126 
00127 #endif /*kmfiltermgr_h*/
KDE Logo
This file is part of the documentation for kmail Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat May 1 11:37:26 2004 by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2003