mirror of
https://bitbucket.org/smil3y/kde-playground.git
synced 2025-02-24 10:52:52 +00:00
167 lines
4.7 KiB
C++
167 lines
4.7 KiB
C++
/* -*- c++ -*-
|
|
sievejob.h
|
|
|
|
Copyright (c) 2002 Marc Mutz <mutz@kde.org>
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License,
|
|
version 2.0, as published by the Free Software Foundation.
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software Foundation,
|
|
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, US
|
|
*/
|
|
|
|
#ifndef KSIEVE_KMANAGESIEVE_SIEVEJOB_H
|
|
#define KSIEVE_KMANAGESIEVE_SIEVEJOB_H
|
|
|
|
#include "kmanagesieve_export.h"
|
|
|
|
#include <QtCore/QObject>
|
|
#include <QtCore/QStack>
|
|
#include <QtCore/QStringList>
|
|
|
|
#include <kurl.h>
|
|
#include <kio/global.h>
|
|
#include <kio/udsentry.h>
|
|
|
|
namespace KIO {
|
|
class Job;
|
|
}
|
|
|
|
class KJob;
|
|
|
|
namespace KManageSieve {
|
|
|
|
class Session;
|
|
|
|
/**
|
|
* @short A job to manage sieve scripts.
|
|
*
|
|
* This class provides functionality to manage sieve scripts
|
|
* on an IMAP server.
|
|
*/
|
|
class KMANAGESIEVE_EXPORT SieveJob : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
/**
|
|
* Stores a sieve script on an IMAP server.
|
|
*
|
|
* @param destination The sieve URL that describes the destination.
|
|
* @param script The raw sieve script.
|
|
* @param makeActive If @c true, the script will be marked as active.
|
|
* @param wasActive If @c true, the script will be marked as inactive.
|
|
*/
|
|
static SieveJob* put( const KUrl &destination, const QString &script,
|
|
bool makeActive, bool wasActive );
|
|
|
|
/**
|
|
* Gets a sieve script from an IMAP server.
|
|
*
|
|
* @param source The sieve URL that describes the source.
|
|
*/
|
|
static SieveJob* get( const KUrl &source );
|
|
|
|
/**
|
|
* Lists all available scripts at the given sieve @p url.
|
|
*/
|
|
static SieveJob* list( const KUrl &url );
|
|
|
|
/**
|
|
* Deletes the script with the given sieve @p url.
|
|
*/
|
|
static SieveJob* del( const KUrl &url );
|
|
|
|
/**
|
|
* Activates the script with the given sieve @p url.
|
|
*/
|
|
static SieveJob* activate( const KUrl &url );
|
|
|
|
/**
|
|
* Deactivates the script with the given sieve @p url.
|
|
*/
|
|
static SieveJob* deactivate( const KUrl &url );
|
|
|
|
/**
|
|
* Kills the sieve job.
|
|
*/
|
|
void kill( KJob::KillVerbosity verbosity = KJob::Quietly );
|
|
|
|
/**
|
|
* Sets whether the sieve job shall be interactive.
|
|
*/
|
|
void setInteractive( bool interactive );
|
|
|
|
/**
|
|
* Returns the sieve capabilities of the IMAP server.
|
|
*/
|
|
QStringList sieveCapabilities() const;
|
|
|
|
/**
|
|
* Returns whether the requested sieve script exists on
|
|
* the IMAP server.
|
|
*/
|
|
bool fileExists() const;
|
|
|
|
Q_SIGNALS:
|
|
/**
|
|
* This signal is emitted when a get job has finished.
|
|
*
|
|
* @param job The job that has finished
|
|
* @param success Whether the job was successfully.
|
|
* @param script The downloaded sieve script.
|
|
* @param active Whether the script is active on the server.
|
|
*/
|
|
void gotScript( KManageSieve::SieveJob *job, bool success,
|
|
const QString &script, bool active );
|
|
|
|
/**
|
|
* This signal is emitted when a list job has finished.
|
|
*
|
|
* @param job The job that has finished.
|
|
* @param success Whether the job was successfully.
|
|
* @param scriptList The list of script filenames on the server.
|
|
* @param activeScript The filename of the active script, or an
|
|
* empty string if no script is active.
|
|
*/
|
|
void gotList( KManageSieve::SieveJob *job, bool success,
|
|
const QStringList &scriptList, const QString &activeScript );
|
|
|
|
/**
|
|
* This signal is emitted for all kind of jobs when they have finished.
|
|
*
|
|
* @param job The job that has finished.
|
|
* @param success Whether the job was successfully.
|
|
* @param script The script the action was about.
|
|
* @param active The filename of the active script, or an
|
|
* @param active Whether the script is active on the server.
|
|
*/
|
|
void result( KManageSieve::SieveJob *job, bool success,
|
|
const QString &script, bool active);
|
|
|
|
void errorMessage( KManageSieve::SieveJob *job, bool success,
|
|
const QString& errMsg );
|
|
/**
|
|
* This signal is emitted for each result entry of a list job.
|
|
*
|
|
* @param job The job the result belongs to.
|
|
* @param filename The filename of the sieve script on the server.
|
|
* @param active Whether the script is active on the server.
|
|
*/
|
|
void item( KManageSieve::SieveJob *job, const QString &filename, bool active );
|
|
|
|
private:
|
|
//@cond PRIVATE
|
|
SieveJob( QObject *parent = 0 );
|
|
~SieveJob();
|
|
|
|
class Private;
|
|
Private* const d;
|
|
friend class Session;
|
|
//@endcond
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|