• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdepim
  • Sitemap
  • Contact Us
 

kmail

kmfilteraction.h

Go to the documentation of this file.
00001 /*
00002  * kmail: KDE mail client
00003  * Copyright (c) 1996-1998 Stefan Taferner <taferner@kde.org>
00004  *
00005  * This program is free software; you can redistribute it and/or modify
00006  * it under the terms of the GNU General Public License as published by
00007  * the Free Software Foundation; either version 2 of the License, or
00008  * (at your option) any later version.
00009  *
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program; if not, write to the Free Software
00017  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00018  *
00019  */
00020 #ifndef kmfilteraction_h
00021 #define kmfilteraction_h
00022 
00023 #include <kmime/kmime_mdn.h>
00024 
00025 #include <QList>
00026 #include <QMultiHash>
00027 #include <QPointer>
00028 #include <QStringList>
00029 
00030 class KMMsgBase;
00031 class KMMessage;
00032 class KMFolder;
00033 class KTemporaryFile;
00034 
00035 class QWidget;
00036 
00037 //=========================================================
00038 //
00039 // class KMFilterAction
00040 //
00041 //=========================================================
00042 
00043 
00053 class KMFilterAction
00054 {
00055 public:
00071   enum ReturnCode { ErrorNeedComplete = 0x1, GoOn = 0x2, ErrorButGoOn = 0x4,
00072             CriticalError = 0x8 };
00075   KMFilterAction(const char* aName, const QString &aLabel);
00076   virtual ~KMFilterAction();
00077 
00080   const QString label() const { return mLabel; }
00081 
00084   const QString name() const { return mName; }
00085 
00093   virtual ReturnCode process(KMMessage* msg) const = 0;
00094 
00098   virtual void processAsync(KMMessage* msg) const;
00099 
00102   virtual bool requiresBody(KMMsgBase* msgBase) const;
00103 
00108   virtual bool isEmpty() const { return false; }
00109 
00112   virtual QWidget* createParamWidget(QWidget* parent) const;
00113 
00117   virtual void applyParamWidgetValue(QWidget* paramWidget);
00118 
00121   virtual void setParamWidgetValue(QWidget* paramWidget) const;
00122 
00125   virtual void clearParamWidget(QWidget* paramWidget) const;
00126 
00128   virtual void argsFromString(const QString &argsStr) = 0;
00129 
00131   virtual const QString argsAsString() const = 0;
00132 
00135   virtual const QString displayString() const = 0;
00136 
00140   virtual bool folderRemoved(KMFolder* aFolder, KMFolder* aNewFolder);
00141 
00143   static KMFilterAction* newAction();
00144 
00147   static int tempOpenFolder(KMFolder* aFolder);
00148 
00150   static void sendMDN( KMMessage * msg, KMime::MDN::DispositionType d,
00151                const QList<KMime::MDN::DispositionModifier> & m
00152                = QList<KMime::MDN::DispositionModifier>() );
00153 
00154 private:
00155   QString mName;
00156   QString mLabel;
00157 };
00158 
00159 //=========================================================
00160 //
00161 // class KMFilterActionWithNone
00162 //
00163 //=========================================================
00164 
00165 
00179 class KMFilterActionWithNone : public KMFilterAction
00180 {
00181 public:
00184   KMFilterActionWithNone(const char* aName, const QString &aLabel);
00185 
00188   virtual void argsFromString(const QString &/*argStr*/) {}
00189 
00192   virtual const QString argsAsString() const { return QString(); }
00193 
00196   virtual const QString displayString() const;
00197 };
00198 
00199 
00200 //=========================================================
00201 //
00202 // class KMFilterActionWithString
00203 //
00204 //=========================================================
00205 
00206 
00220 class KMFilterActionWithString : public KMFilterAction
00221 {
00222 public:
00225   KMFilterActionWithString(const char* aName, const QString &aLabel);
00226 
00231   virtual bool isEmpty() const { return mParameter.trimmed().isEmpty(); }
00232 
00235   virtual QWidget* createParamWidget(QWidget* parent) const;
00236 
00240   virtual void applyParamWidgetValue(QWidget* paramWidget);
00241 
00244   virtual void setParamWidgetValue(QWidget* paramWidget) const;
00245 
00248   virtual void clearParamWidget(QWidget* paramWidget) const;
00249 
00251   virtual void argsFromString(const QString &argsStr);
00252 
00254   virtual const QString argsAsString() const;
00255 
00258   virtual const QString displayString() const;
00259 
00260 protected:
00261   QString mParameter;
00262 };
00263 
00264 //=========================================================
00265 //
00266 // class KMFilterActionWithUOID
00267 //
00268 //=========================================================
00269 
00270 
00284 class KMFilterActionWithUOID : public KMFilterAction
00285 {
00286 public:
00289   KMFilterActionWithUOID(const char* aName, const QString &aLabel);
00290 
00295   virtual bool isEmpty() const { return mParameter == 0; }
00296 
00298   virtual void argsFromString(const QString &argsStr);
00299 
00301   virtual const QString argsAsString() const;
00302 
00305   virtual const QString displayString() const;
00306 
00307 protected:
00308   uint mParameter;
00309 };
00310 
00311 //=========================================================
00312 //
00313 // class KMFilterActionWithStringList
00314 //
00315 //=========================================================
00316 
00317 
00337 class KMFilterActionWithStringList : public KMFilterActionWithString
00338 {
00339 public:
00342   KMFilterActionWithStringList(const char* aName, const QString &aLabel);
00343 
00346   virtual QWidget* createParamWidget(QWidget* parent) const;
00347 
00351   virtual void applyParamWidgetValue(QWidget* paramWidget);
00352 
00355   virtual void setParamWidgetValue(QWidget* paramWidget) const;
00356 
00359   virtual void clearParamWidget(QWidget* paramWidget) const;
00360 
00362   virtual void argsFromString(const QString &argsStr);
00363 
00364 protected:
00365   QStringList mParameterList;
00366 };
00367 
00368 
00369 //=========================================================
00370 //
00371 // class KMFilterActionWithFolder
00372 //
00373 //=========================================================
00374 
00375 
00390 class KMFilterActionWithFolder : public KMFilterAction
00391 {
00392 public:
00395   KMFilterActionWithFolder(const char* aName, const QString &aLabel);
00396 
00401   virtual bool isEmpty() const { return (mFolder.isNull() && mFolderName.isEmpty()); }
00402 
00405   virtual QWidget* createParamWidget(QWidget* parent) const;
00406 
00410   virtual void applyParamWidgetValue(QWidget* paramWidget);
00411 
00414   virtual void setParamWidgetValue(QWidget* paramWidget) const;
00415 
00418   virtual void clearParamWidget(QWidget* paramWidget) const;
00419 
00421   virtual void argsFromString(const QString &argsStr);
00422 
00424   virtual const QString argsAsString() const;
00425 
00428   virtual const QString displayString() const;
00429 
00433   virtual bool folderRemoved(KMFolder* aFolder, KMFolder* aNewFolder);
00434 
00435 protected:
00436   QPointer<KMFolder> mFolder;
00437   QString mFolderName;
00438 };
00439 
00440 //=========================================================
00441 //
00442 // class KMFilterActionWithAddress
00443 //
00444 //=========================================================
00445 
00446 
00461 class KMFilterActionWithAddress : public KMFilterActionWithString
00462 {
00463 public:
00466   KMFilterActionWithAddress(const char* aName, const QString &aLabel);
00467 
00470   virtual QWidget* createParamWidget(QWidget* parent) const;
00471 
00475   virtual void applyParamWidgetValue(QWidget* paramWidget);
00476 
00479   virtual void setParamWidgetValue(QWidget* paramWidget) const;
00480 
00483   virtual void clearParamWidget(QWidget* paramWidget) const;
00484 };
00485 
00486 //=========================================================
00487 //
00488 // class KMFilterActionWithCommand
00489 //
00490 //=========================================================
00491 
00492 
00512 class KMFilterActionWithUrl : public KMFilterAction
00513 {
00514 public:
00517     KMFilterActionWithUrl(const char* aName, const QString &aLabel);
00518     ~KMFilterActionWithUrl();
00523   virtual bool isEmpty() const { return mParameter.trimmed().isEmpty(); }
00524 
00527   virtual QWidget* createParamWidget(QWidget* parent) const;
00528 
00532   virtual void applyParamWidgetValue(QWidget* paramWidget);
00533 
00536   virtual void setParamWidgetValue(QWidget* paramWidget) const;
00537 
00540   virtual void clearParamWidget(QWidget* paramWidget) const;
00541 
00543   virtual void argsFromString(const QString &argsStr);
00544 
00546   virtual const QString argsAsString() const;
00547 
00550   virtual const QString displayString() const;
00551 
00552 protected:
00553   QString mParameter;
00554 };
00555 
00556 
00557 class KMFilterActionWithCommand : public KMFilterActionWithUrl
00558 {
00559 public:
00562   KMFilterActionWithCommand(const char* aName, const QString &aLabel);
00563 
00566   virtual QWidget* createParamWidget(QWidget* parent) const;
00567 
00571   virtual void applyParamWidgetValue(QWidget* paramWidget);
00572 
00575   virtual void setParamWidgetValue(QWidget* paramWidget) const;
00576 
00579   virtual void clearParamWidget(QWidget* paramWidget) const;
00580 
00586   virtual QString substituteCommandLineArgsFor( KMMessage *aMsg, QList<KTemporaryFile*> & aTempFileList  ) const;
00587 
00588   virtual ReturnCode genericProcess( KMMessage * aMsg, bool filtering ) const;
00589 };
00590 
00591 
00592 
00593 class KMFilterActionWithTest : public KMFilterAction
00594 {
00595 public:
00598   KMFilterActionWithTest(const char* aName, const QString &aLabel);
00599     ~KMFilterActionWithTest();
00604   virtual bool isEmpty() const { return mParameter.trimmed().isEmpty(); }
00605 
00608   virtual QWidget* createParamWidget(QWidget* parent) const;
00609 
00613   virtual void applyParamWidgetValue(QWidget* paramWidget);
00614 
00617   virtual void setParamWidgetValue(QWidget* paramWidget) const;
00618 
00621   virtual void clearParamWidget(QWidget* paramWidget) const;
00622 
00624   virtual void argsFromString(const QString &argsStr);
00625 
00627   virtual const QString argsAsString() const;
00628 
00631   virtual const QString displayString() const;
00632 
00633 protected:
00634   QString mParameter;
00635 };
00636 
00637 
00638 typedef KMFilterAction* (*KMFilterActionNewFunc)(void);
00639 
00640 
00641 //-----------------------------------------------------------------------------
00643 struct KMFilterActionDesc
00644 {
00645   QString label, name;
00646   KMFilterActionNewFunc create;
00647 };
00648 
00671 class KMFilterActionDict : public QMultiHash<QString, KMFilterActionDesc*>
00672 {
00673 public:
00674   KMFilterActionDict();
00675   virtual ~KMFilterActionDict();
00676 
00684   void insert(KMFilterActionNewFunc aNewFunc);
00685 
00688   const QList<KMFilterActionDesc*>& list() const { return mList; }
00689 
00690 protected:
00693   virtual void init(void);
00694 
00695 private:
00696   QList<KMFilterActionDesc*> mList;
00697 };
00698 
00699 #endif /*kmfilteraction_h*/

kmail

Skip menu "kmail"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdepim

Skip menu "kdepim"
  • akonadi
  •   clients
  •   kabc
  •   kcal
  •   kcm
  • akregator
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt
  • kdgantt1
  • kjots
  • kleopatra
  • kmail
  • kmobiletools
  • knode
  • knotes
  • kontact
  • kontactinterfaces
  • korganizer
  •   korgac
  • kpilot
  • ktimetracker
  •   doc
  • libkdepim
  • libkholidays
  • libkleo
  • libkpgp
  • maildir
Generated for kdepim by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal