00001
00002
00003
00004
00005
00006
#ifndef kmfiltermgr_h
00007
#define kmfiltermgr_h
00008
00009
#include "kmfilteraction.h"
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 appendFilter( KMFilter* filter );
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