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
00401 virtual bool folderRemoved(KMFolder* aFolder, KMFolder* aNewFolder);
00402
00403 protected:
00404 QGuardedPtr<KMFolder> mFolder;
00405 QString mFolderName;
00406 };
00407
00408
00409
00410
00411
00412
00413
00414
00429 class KMFilterActionWithAddress : public KMFilterActionWithString
00430 {
00431 public:
00434 KMFilterActionWithAddress(const char* aName, const QString aLabel);
00435
00438 virtual QWidget* createParamWidget(QWidget* parent) const;
00439
00443 virtual void applyParamWidgetValue(QWidget* paramWidget);
00444
00447 virtual void setParamWidgetValue(QWidget* paramWidget) const;
00448
00451 virtual void clearParamWidget(QWidget* paramWidget) const;
00452 };
00453
00454
00455
00456
00457
00458
00459
00460
00480 class KMFilterActionWithUrl : public KMFilterAction
00481 {
00482 public:
00485 KMFilterActionWithUrl(const char* aName, const QString aLabel);
00486 ~KMFilterActionWithUrl();
00491 virtual bool isEmpty() const { return mParameter.stripWhiteSpace().isEmpty(); }
00492
00495 virtual QWidget* createParamWidget(QWidget* parent) const;
00496
00500 virtual void applyParamWidgetValue(QWidget* paramWidget);
00501
00504 virtual void setParamWidgetValue(QWidget* paramWidget) const;
00505
00508 virtual void clearParamWidget(QWidget* paramWidget) const;
00509
00511 virtual void argsFromString(const QString argsStr);
00512
00514 virtual const QString argsAsString() const;
00515
00516 protected:
00517 QString mParameter;
00518 };
00519
00520
00521 class KMFilterActionWithCommand : public KMFilterActionWithUrl
00522 {
00523 public:
00526 KMFilterActionWithCommand(const char* aName, const QString aLabel);
00527
00530 virtual QWidget* createParamWidget(QWidget* parent) const;
00531
00535 virtual void applyParamWidgetValue(QWidget* paramWidget);
00536
00539 virtual void setParamWidgetValue(QWidget* paramWidget) const;
00540
00543 virtual void clearParamWidget(QWidget* paramWidget) const;
00544
00550 virtual QString substituteCommandLineArgsFor( KMMessage *aMsg, QPtrList<KTempFile> & aTempFileList ) const;
00551
00552 virtual ReturnCode genericProcess( KMMessage * aMsg, bool filtering ) const;
00553 };
00554
00555
00556
00557 class KMFilterActionWithTest : public KMFilterAction
00558 {
00559 public:
00562 KMFilterActionWithTest(const char* aName, const QString aLabel);
00563 ~KMFilterActionWithTest();
00568 virtual bool isEmpty() const { return mParameter.stripWhiteSpace().isEmpty(); }
00569
00572 virtual QWidget* createParamWidget(QWidget* parent) const;
00573
00577 virtual void applyParamWidgetValue(QWidget* paramWidget);
00578
00581 virtual void setParamWidgetValue(QWidget* paramWidget) const;
00582
00585 virtual void clearParamWidget(QWidget* paramWidget) const;
00586
00588 virtual void argsFromString(const QString argsStr);
00589
00591 virtual const QString argsAsString() const;
00592
00593 protected:
00594 QString mParameter;
00595 };
00596
00597
00598 typedef KMFilterAction* (*KMFilterActionNewFunc)(void);
00599
00600
00601
00603 struct KMFilterActionDesc
00604 {
00605 QString label, name;
00606 KMFilterActionNewFunc create;
00607 };
00608
00631 class KMFilterActionDict: public QDict<KMFilterActionDesc>
00632 {
00633 public:
00634 KMFilterActionDict();
00635
00643 void insert(KMFilterActionNewFunc aNewFunc);
00644
00647 const QPtrList<KMFilterActionDesc>& list() const { return mList; }
00648
00649 protected:
00652 virtual void init(void);
00653
00654 private:
00655 QPtrList<KMFilterActionDesc> mList;
00656 };
00657
00658 #endif
This file is part of the documentation for kmail Library Version 3.2.2.