Branch 'dev/sieve_kep14' - libksieve/ksieveui
Sandro Knauß
knauss at kolabsys.com
Thu Mar 26 17:33:18 CET 2015
libksieve/ksieveui/vacation/vacationcheckjob.cpp | 2 +-
libksieve/ksieveui/vacation/vacationutils.cpp | 16 ++++++++++++++++
libksieve/ksieveui/vacation/vacationutils.h | 6 +++++-
3 files changed, 22 insertions(+), 2 deletions(-)
New commits:
commit 979c809208b574289674aafcd827a12af7402e26
Author: Sandro Knauà <knauss at kolabsys.com>
Date: Thu Mar 26 17:32:40 2015 +0100
show correct vacation status
diff --git a/libksieve/ksieveui/vacation/vacationcheckjob.cpp b/libksieve/ksieveui/vacation/vacationcheckjob.cpp
index 6f594db..aa5687f 100644
--- a/libksieve/ksieveui/vacation/vacationcheckjob.cpp
+++ b/libksieve/ksieveui/vacation/vacationcheckjob.cpp
@@ -87,7 +87,7 @@ void VacationCheckJob::slotGetResult(KManageSieve::SieveJob */*job*/, bool succe
if (mKep14Support) {
if (isVacationScipt(script)) {
const QString &scriptName = mAvailableScripts[mScriptPos-1];
- emit scriptActive(this, scriptName, mActiveScripts.contains(scriptName));
+ emit scriptActive(this, scriptName, mActiveScripts.contains(scriptName) && VacationUtils::vacationScriptActive(script));
kDebug() << "vacation script found :)";
} else if (isLastScript()) {
mNoScriptFound = true;
diff --git a/libksieve/ksieveui/vacation/vacationutils.cpp b/libksieve/ksieveui/vacation/vacationutils.cpp
index 806600d..ae01e9d 100644
--- a/libksieve/ksieveui/vacation/vacationutils.cpp
+++ b/libksieve/ksieveui/vacation/vacationutils.cpp
@@ -175,6 +175,22 @@ bool KSieveUi::VacationUtils::foundVacationScript(const QString &script)
return parser.parse() && vdx.commandFound();
}
+bool KSieveUi::VacationUtils::vacationScriptActive(const QString &script)
+{
+ const QByteArray scriptUTF8 = script.trimmed().toUtf8();
+ kDebug() << "scriptUtf8 = \"" + scriptUTF8 +"\"";
+
+ if (scriptUTF8.isEmpty()) {
+ return false;
+ }
+
+ KSieve::Parser parser( scriptUTF8.begin(),
+ scriptUTF8.begin() + scriptUTF8.length() );
+ VacationDataExtractor vdx;
+ parser.setScriptBuilder(&vdx);
+ return parser.parse() && vdx.commandFound() && vdx.active();
+}
+
QString composeOldScript( const QString & messageText,
const QString &subject,
int notificationInterval,
diff --git a/libksieve/ksieveui/vacation/vacationutils.h b/libksieve/ksieveui/vacation/vacationutils.h
index d6b8c6f..daed23e 100644
--- a/libksieve/ksieveui/vacation/vacationutils.h
+++ b/libksieve/ksieveui/vacation/vacationutils.h
@@ -51,7 +51,11 @@ bool parseScript( const QString & script, bool &active, QString & messageText,
bool & sendForSpam, QString & domainName,
QDate & startDate, QDate & endDate );
-bool foundVacationScript(const QString & script);
+//returns if a vacation script is found in the sieve script
+bool foundVacationScript(const QString &script);
+
+// returns if the vacation script is active
+bool vacationScriptActive(const QString &script);
QString mergeRequireLine(const QString &script1, const QString script2);
More information about the commits
mailing list