sievejob.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
#ifndef __KMAIL_SIEVE_JOB_H__
00016
#define __KMAIL_SIEVE_JOB_H__
00017
00018
#include <qobject.h>
00019
#include <qvaluestack.h>
00020
#include <qstring.h>
00021
#include <qstringlist.h>
00022
#include <qcstring.h>
00023
00024
#include <kurl.h>
00025
#include <kio/global.h>
00026
00027
class QTextDecoder;
00028
namespace KIO {
00029
class Job;
00030 }
00031
00032
namespace KMail {
00033
00034
class SieveJob :
public QObject {
00035 Q_OBJECT
00036
protected:
00037
enum Command { Get, Put, Activate, Deactivate, SearchActive };
00038 SieveJob(
const KURL & url,
const QString & script,
00039
const QValueStack<Command> & commands,
00040
QObject * parent=0,
const char * name=0 );
00041
virtual ~SieveJob();
00042
00043
public:
00044
enum Existence { DontKnow, Yes, No };
00045
00046
static SieveJob * put(
const KURL & dest,
const QString & script,
00047
bool makeActive,
bool wasActive );
00048
static SieveJob * get(
const KURL & src );
00049
00050
void kill(
bool quiet=
true );
00051
00052
const QStringList & sieveCapabilities()
const {
00053
return mSieveCapabilities;
00054 }
00055
00056
bool fileExists()
const {
00057
return mFileExists;
00058 }
00059
00060 signals:
00061
void result( KMail::SieveJob * job,
bool success,
00062
const QString & script,
bool active );
00063
00064
protected:
00065
void schedule( Command command );
00066
00067
protected slots:
00068
void slotData( KIO::Job *,
const QByteArray & );
00069
void slotDataReq( KIO::Job *,
QByteArray & );
00070
void slotEntries( KIO::Job *,
const KIO::UDSEntryList & );
00071
void slotResult( KIO::Job * );
00072
00073
protected:
00074 KURL mUrl;
00075 KIO::Job * mJob;
00076
QTextDecoder * mDec;
00077
QString mScript;
00078
QString mActiveScriptName;
00079 Existence mFileExists;
00080
QStringList mSieveCapabilities;
00081
QValueStack<Command> mCommands;
00082 };
00083
00084 }
00085
00086
#endif // __KMAIL_SIEVE_JOB_H__
This file is part of the documentation for kmail Library Version 3.3.0.