7 #include "parseuserscriptjob.h" 8 #include "ksieveui/scriptsparsing/parsingutil.h" 9 #include <KLocalizedString> 10 #include <QXmlStreamReader> 11 #include <kmanagesieve/sievejob.h> 14 ParseUserScriptJob::ParseUserScriptJob(
const QUrl &url,
QObject *parent)
20 ParseUserScriptJob::~ParseUserScriptJob()
26 void ParseUserScriptJob::kill()
34 QUrl ParseUserScriptJob::scriptUrl()
const 39 void ParseUserScriptJob::start()
41 if (mCurrentUrl.isEmpty()) {
42 emitError(
i18n(
"Path is not specified."));
54 void ParseUserScriptJob::setAutoDelete(
bool deleteMe)
56 mAutoDelete = deleteMe;
64 i18n(
"Retrieving the script failed.\n" 65 "The server responded:\n%1",
70 emitError(
i18n(
"Script is empty. (%1)", mCurrentUrl.fileName()));
74 const QStringList lst = parsescript(script, result);
78 emitError(
i18n(
"Script parsing error."));
82 void ParseUserScriptJob::emitError(
const QString &msgError)
85 Q_EMIT finished(
this);
91 void ParseUserScriptJob::emitSuccess(
const QStringList &activeScriptList)
93 mActiveScripts = activeScriptList;
94 Q_EMIT finished(
this);
103 const QString doc = ParsingUtil::parseScript(script, result);
105 lst = extractActiveScript(doc);
110 QStringList ParseUserScriptJob::activeScriptList()
const 112 return mActiveScripts;
115 QString ParseUserScriptJob::error()
const 124 if (mStreamReader->readNextStartElement()) {
125 while (mStreamReader->readNextStartElement()) {
126 const QStringRef tagname = mStreamReader->name();
128 if (mStreamReader->attributes().hasAttribute(
QLatin1String(
"name"))) {
132 const QString str = loadInclude();
139 mStreamReader->skipCurrentElement();
143 mStreamReader->skipCurrentElement();
150 QString ParseUserScriptJob::loadInclude()
153 while (mStreamReader->readNextStartElement()) {
155 scriptName = mStreamReader->readElementText();
157 mStreamReader->skipCurrentElement();
bool contains(const QString &str, Qt::CaseSensitivity cs) const const
void result(KManageSieve::SieveJob *job, bool success, const QString &script, bool active)
This signal is emitted for all kind of jobs when they have finished.
void append(const T &value)
bool isEmpty() const const
QString errorString() const
A human-readable error message.
QString i18n(const char *text, const TYPE &arg...)
static SieveJob * get(const QUrl &source)
Gets a sieve script from an IMAP server.
A job to manage sieve scripts.