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 
00049   void appendFilters( const QPtrList<KMFilter> filters );
00050 
00063   int process( KMMessage * msg, FilterSet aSet=Inbound );
00064 
00067   int process( KMMessage * msg, const KMFilter * filter );
00068 
00069   void cleanup();
00072   void ref();
00078   void deref(bool force = false);
00079 
00084   int tempOpenFolder(KMFolder* aFolder);
00085 
00088   void beginUpdate() {}
00089 
00091   void endUpdate();
00092 
00094 #ifndef NDEBUG
00095   void dump();
00096 #endif
00097 
00102   bool folderRemoved(KMFolder* aFolder, KMFolder* aNewFolder);
00103 
00106   void folderCreated(KMFolder*) {}
00107 
00109   void setShowLaterMsgs( bool show ) {
00110     mShowLater = show;
00111   }
00112 
00114   bool showLaterMsgs() const {
00115     return mShowLater;
00116   }
00117 public slots:
00118   void slotFolderRemoved( KMFolder *aFolder );
00119 
00120 signals:
00121   void filterListUpdated();
00122 
00123 private:
00124   int processPop( KMMessage * msg ) const;
00125 
00126   QGuardedPtr<KMFilterDlg> mEditDialog;
00127   QPtrList<KMFolder> mOpenFolders;
00128   bool bPopFilter;
00129   bool mShowLater;
00130   int mRefCount;
00131 };
00132 
00133 #endif /*kmfiltermgr_h*/
KDE Logo
This file is part of the documentation for kmail Library Version 3.3.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Jul 25 11:20:06 2007 by doxygen 1.4.2 written by Dimitri van Heesch, © 1997-2003