kmfilteraction.h
00001
00002
00003
00004
00005
00006
00007 #ifndef kmfilteraction_h
00008 #define kmfilteraction_h
00009
00010 #include <kmime_mdn.h>
00011
00012 #include <qstring.h>
00013 #include <qstringlist.h>
00014 #include <qdict.h>
00015 #include <qptrlist.h>
00016 #include <qvaluelist.h>
00017 #include <qguardedptr.h>
00018 #include <qwidget.h>
00019
00020 class KMMsgBase;
00021 class KMMessage;
00022 class QWidget;
00023 class KMFolder;
00024 class KTempFile;
00025
00026
00027
00028
00029
00030
00031
00032
00042 class KMFilterAction
00043 {
00044 public:
00060 enum ReturnCode { ErrorNeedComplete = 0x1, GoOn = 0x2, ErrorButGoOn = 0x4,
00061 CriticalError = 0x8 };
00064 KMFilterAction(const char* aName, const QString aLabel);
00065 virtual ~KMFilterAction();
00066
00069 const QString label() const { return mLabel; }
00070
00073 const QString name() const { return mName; }
00074
00082 virtual ReturnCode process(KMMessage* msg) const = 0;
00083
00087 virtual void processAsync(KMMessage* msg) const;
00088
00091 virtual bool requiresBody(KMMsgBase* msgBase) const;
00092
00097 virtual bool isEmpty() const { return FALSE; }
00098
00101 virtual QWidget* createParamWidget(QWidget* parent) const;
00102
00106 virtual void applyParamWidgetValue(QWidget* paramWidget);
00107
00110 virtual void setParamWidgetValue(QWidget* paramWidget) const;
00111
00114 virtual void clearParamWidget(QWidget* paramWidget) const;
00115
00117 virtual void argsFromString(const QString argsStr) = 0;
00118
00120 virtual const QString argsAsString() const = 0;
00121
00125 virtual bool folderRemoved(KMFolder* aFolder, KMFolder* aNewFolder);
00126
00128 static KMFilterAction* newAction();
00129
00132 static int tempOpenFolder(KMFolder* aFolder);
00133
00135 static void sendMDN( KMMessage * msg, KMime::MDN::DispositionType d,
00136 const QValueList<KMime::MDN::DispositionModifier> & m
00137 =QValueList<KMime::MDN::DispositionModifier>() );
00138
00139 private:
00140 QString mName;
00141 QString mLabel;
00142 };
00143
00144
00145
00146
00147
00148
00149
00150
00164 class KMFilterActionWithNone : public KMFilterAction
00165 {
00166 public:
00169 KMFilterActionWithNone(const char* aName, const QString aLabel);
00170
00173 virtual void argsFromString(const QString) {};
00174
00177 virtual const QString argsAsString() const { return QString::null; }
00178 };
00179
00180
00181
00182
00183
00184
00185
00186
00200 class KMFilterActionWithString : public KMFilterAction
00201 {
00202 public:
00205 KMFilterActionWithString(const char* aName, const QString aLabel);
00206
00211 virtual bool isEmpty() const { return mParameter.stripWhiteSpace().isEmpty(); }
00212
00215 virtual QWidget* createParamWidget(QWidget* parent) const;
00216
00220 virtual void applyParamWidgetValue(QWidget* paramWidget);
00221
00224 virtual void setParamWidgetValue(QWidget* paramWidget) const;
00225
00228 virtual void clearParamWidget(QWidget* paramWidget) const;
00229
00231 virtual void argsFromString(const QString argsStr);
00232
00234 virtual const QString argsAsString() const;
00235
00236 protected:
00237 QString mParameter;
00238 };
00239
00240
00241
00242
00243
00244
00245
00246
00260 class KMFilterActionWithUOID : public KMFilterAction
00261 {
00262 public:
00265 KMFilterActionWithUOID(const char* aName, const QString aLabel);
00266
00271 virtual bool isEmpty() const { return mParameter == 0; }
00272
00274 virtual void argsFromString(const QString argsStr);
00275
00277 virtual const QString argsAsString() const;
00278
00279 protected:
00280 uint mParameter;
00281 };
00282
00283
00284
00285
00286
00287
00288
00289
00309 class KMFilterActionWithStringList : public KMFilterActionWithString
00310 {
00311 public:
00314 KMFilterActionWithStringList(const char* aName, const QString aLabel);
00315
00318 virtual QWidget* createParamWidget(QWidget* parent) const;
00319
00323 virtual void applyParamWidgetValue(QWidget* paramWidget);
00324
00327 virtual void setParamWidgetValue(QWidget* paramWidget) const;
00328
00331 virtual void clearParamWidget(QWidget* paramWidget) const;
00332
00334 virtual void argsFromString(const QString argsStr);
00335
00336 protected:
00337 QStringList mParameterList;
00338 };
00339
00340
00341
00342
00343
00344
00345
00346
00347
00362 class KMFilterActionWithFolder : public KMFilterAction
00363 {
00364 public:
00367 KMFilterActionWithFolder(const char* aName, const QString aLabel);
00368
00373 virtual bool isEmpty() const { return (!mFolder && mFolderName.isEmpty()); }
00374
00377 virtual QWidget* createParamWidget(QWidget* parent) const;
00378
00382 virtual void applyParamWidgetValue(QWidget* paramWidget);
00383
00386 virtual void setParamWidgetValue(QWidget* paramWidget) const;
00387
00390 virtual void clearParamWidget(QWidget* paramWidget) const;
00391
00393 virtual void argsFromString(const QString argsStr);
00394
00396 virtual const QString argsAsString() const;
00397
00400 virtual const QString displayString() const;
00401
00402
00406 virtual bool folderRemoved(KMFolder* aFolder, KMFolder* aNewFolder);
00407
00408 protected:
00409 QGuardedPtr<KMFolder> mFolder;
00410 QString mFolderName;
00411 };
00412
00413
00414
00415
00416
00417
00418
00419
00434 class KMFilterActionWithAddress : public KMFilterActionWithString
00435 {
00436 public:
00439 KMFilterActionWithAddress(const char* aName, const QString aLabel);
00440
00443 virtual QWidget* createParamWidget(QWidget* parent) const;
00444
00448 virtual void applyParamWidgetValue(QWidget* paramWidget);
00449
00452 virtual void setParamWidgetValue(QWidget* paramWidget) const;
00453
00456 virtual void clearParamWidget(QWidget* paramWidget) const;
00457 };
00458
00459
00460
00461
00462
00463
00464
00465
00485 class KMFilterActionWithUrl : public KMFilterAction
00486 {
00487 public:
00490 KMFilterActionWithUrl(const char* aName, const QString aLabel);
00491 ~KMFilterActionWithUrl();
00496 virtual bool isEmpty() const { return mParameter.stripWhiteSpace().isEmpty(); }
00497
00500 virtual QWidget* createParamWidget(QWidget* parent) const;
00501
00505 virtual void applyParamWidgetValue(QWidget* paramWidget);
00506
00509 virtual void setParamWidgetValue(QWidget* paramWidget) const;
00510
00513 virtual void clearParamWidget(QWidget* paramWidget) const;
00514
00516 virtual void argsFromString(const QString argsStr);
00517
00519 virtual const QString argsAsString() const;
00520
00521 protected:
00522 QString mParameter;
00523 };
00524
00525
00526 class KMFilterActionWithCommand : public KMFilterActionWithUrl
00527 {
00528 public:
00531 KMFilterActionWithCommand(const char* aName, const QString aLabel);
00532
00535 virtual QWidget* createParamWidget(QWidget* parent) const;
00536
00540 virtual void applyParamWidgetValue(QWidget* paramWidget);
00541
00544 virtual void setParamWidgetValue(QWidget* paramWidget) const;
00545
00548 virtual void clearParamWidget(QWidget* paramWidget) const;
00549
00555 virtual QString substituteCommandLineArgsFor( KMMessage *aMsg, QPtrList<KTempFile> & aTempFileList ) const;
00556
00557 virtual ReturnCode genericProcess( KMMessage * aMsg, bool filtering ) const;
00558 };
00559
00560
00561
00562 class KMFilterActionWithTest : public KMFilterAction
00563 {
00564 public:
00567 KMFilterActionWithTest(const char* aName, const QString aLabel);
00568 ~KMFilterActionWithTest();
00573 virtual bool isEmpty() const { return mParameter.stripWhiteSpace().isEmpty(); }
00574
00577 virtual QWidget* createParamWidget(QWidget* parent) const;
00578
00582 virtual void applyParamWidgetValue(QWidget* paramWidget);
00583
00586 virtual void setParamWidgetValue(QWidget* paramWidget) const;
00587
00590 virtual void clearParamWidget(QWidget* paramWidget) const;
00591
00593 virtual void argsFromString(const QString argsStr);
00594
00596 virtual const QString argsAsString() const;
00597
00598 protected:
00599 QString mParameter;
00600 };
00601
00602
00603 typedef KMFilterAction* (*KMFilterActionNewFunc)(void);
00604
00605
00606
00608 struct KMFilterActionDesc
00609 {
00610 QString label, name;
00611 KMFilterActionNewFunc create;
00612 };
00613
00636 class KMFilterActionDict: public QDict<KMFilterActionDesc>
00637 {
00638 public:
00639 KMFilterActionDict();
00640
00648 void insert(KMFilterActionNewFunc aNewFunc);
00649
00652 const QPtrList<KMFilterActionDesc>& list() const { return mList; }
00653
00654 protected:
00657 virtual void init(void);
00658
00659 private:
00660 QPtrList<KMFilterActionDesc> mList;
00661 };
00662
00663 #endif
This file is part of the documentation for kmail Library Version 3.3.2.