00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
#ifndef __KMAIL_VACATION_H__
00016
#define __KMAIL_VACATION_H__
00017
00018
#include <qobject.h>
00019
00020
#include <kurl.h>
00021
00022
class QString;
00023
class QStringList;
00024
template <
typename T>
class QValueList;
00025
namespace KMail {
00026
class SieveJob;
00027
class VacationDialog;
00028 }
00029
namespace KMime {
00030
namespace Types {
00031
struct AddrSpec;
00032
typedef QValueList<AddrSpec> AddrSpecList;
00033 }
00034 }
00035
00036
namespace KMail {
00037
00038
class Vacation :
public QObject {
00039 Q_OBJECT
00040
public:
00041 Vacation(
QObject * parent=0,
const char * name=0 );
00042
virtual ~Vacation();
00043
00044
bool isUsable()
const {
return !mUrl.isEmpty(); }
00045
00046
static QString defaultMessageText();
00047
static int defaultNotificationInterval();
00048
static QStringList defaultMailAliases();
00049
00050
protected:
00051
static QString composeScript(
const QString & messageText,
00052
int notificationInterval,
00053
const KMime::Types::AddrSpecList & aliases);
00054
static bool parseScript(
const QString & script,
QString & messageText,
00055
int & notificationInterval,
QStringList & aliases );
00056 KURL findURL() const;
00057
void handlePutResult( KMail::SieveJob * job,
bool success,
bool );
00058
00059
00060 signals:
00061
void result(
bool success );
00062
00063 protected slots:
00064
void slotDialogDefaults();
00065
void slotGetResult( KMail::SieveJob * job,
bool success,
00066 const
QString & script,
bool active );
00067
void slotDialogOk();
00068
void slotDialogCancel();
00069
void slotPutActiveResult( KMail::SieveJob *,
bool );
00070
void slotPutInactiveResult( KMail::SieveJob *,
bool );
00071 protected:
00072
00073 KMail::SieveJob * mSieveJob;
00074 KURL mUrl;
00075
00076 KMail::VacationDialog * mDialog;
00077
bool mWasActive;
00078 };
00079
00080 }
00081
00082 #endif