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
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