// -*- Mode: C++; c-basic-offset: 2; indent-tabs-mode: nil; -*- #ifndef MAILINGLIST_MAGIC_H #define MAILINGLIST_MAGIC_H #include #include class KMMessage; class KConfig; namespace KMail { /** * Class is used for all Mailing List handling inside * KMail. The static detect method is used to detect * a full set of ml informations from a message. The * features() method defines which addresses the mailing * has defined. * * @author Zack Rusin */ class MailingList { public: enum Handler { KMail, Browser }; enum Supports { None = 0 << 0, Post = 1 << 0, Subscribe = 1 << 1, Unsubscribe = 1 << 2, Help = 1 << 3, Archive = 1 << 4, Id = 1 << 5 }; public: static MailingList detect( const KMMessage* msg ); static TQString name( const KMMessage *message, TQCString &header_name, TQString &header_value ); public: MailingList(); int features() const; void setHandler( Handler han ); Handler handler() const; void setPostURLS ( const KURL::List& ); KURL::List postURLS() const; void setSubscribeURLS( const KURL::List& ); KURL::List subscribeURLS() const; void setUnsubscribeURLS ( const KURL::List& ); KURL::List unsubscribeURLS() const; void setHelpURLS( const KURL::List& ); KURL::List helpURLS() const; void setArchiveURLS( const KURL::List& ); KURL::List archiveURLS() const; void setId( const TQString& ); TQString id() const; void writeConfig( KConfig* config ) const; void readConfig( KConfig* config ); private: int mFeatures; Handler mHandler; KURL::List mPostURLS; KURL::List mSubscribeURLS; KURL::List mUnsubscribeURLS; KURL::List mHelpURLS; KURL::List mArchiveURLS; TQString mId; }; } #endif