Merge libksieve changes form kolab to upstream
ClosedPublic

Authored by knauss on Oct 14 2015, 12:21 PM.

Details

Summary

Enable word-wrap in the "no-IMAP resource available" error message in Sieve
(cherry picked from commit b41de4b7120b79a02f1200a9c83cc12c1f64fdf8)

Out of office replies: allow configuring dates when OOO should be active

When Sieve server supports the "date" extension, users will be able to
specify date range in which the out-of-office auto reply sieve script is
supposed to be active.

(cherry picked from commit 873834c0990c900919c7201c5dd4563b8fe53330)

Add missing include of kstandarddirs.

(cherry picked from commit ce2a344fa2ccfe5fe2a2ceefb098a8a141090b12)

VacationDialog: Add subject

You often wants to set also the subject of the vacation messages.

KOLAB: 4226
(cherry picked from commit adc523c16c94ddebfd5f8afe3699bfac61f2d952)

Support KEP:14 in sieveeditor

(cherry picked from commit c0166215bd66ad3fd58b962bec9248637aa40aa4)

parse new vacation script

(cherry picked from commit 30c20931379a2644fb133bacf1dc0836c77e7297)

show correct vacation status

(cherry picked from commit 94cb8575a11cf63d3972fd83bfd361659e6ecdf6)

Use struct to parse/read vacation script.

(cherry picked from commit 1d9d97d7ea1c1cfd583e97210f28272ff0089659)

some cleanups in sieve Vacation

  • Make test shutdown. Because the VacationManager is in place, this needs to be shutdown too.

(cherry picked from commit f5cf0da9a2b4df3d1f486e8ea982277a57e61d63)

Allow intervall 0 for vacation resend

0 indicates, that the vacation response should be send at every email.

The write and parse script have the support already for that, so only
the gui part is missing.

(cherry picked from commit aaf3d3ddde890b0f53a9acdd9391dcc1d68df9fc)

Add time support for vacation dialog

(cherry picked from commit 38c44420ecf38eeaf053b76d5e3c34281c6c4250)

disable vacation script debug

there are so much unnneeded kDebugs

(cherry picked from commit 2dbae70c85abd126a70d6845bb58e74745d31f8d)

remove kDebugs

(cherry picked from commit 0d1bff151a2a1663b978f69037ae00b31c3d63d3)

VacationDialog: Add mailaction

We need different mailActionsfor vacationdialog:

Keep, Discard, Send To, Copy To

I created the testfiles out of scripts from roundcubemail.
Tested, that the createdscript is parseable by rcm.

(cherry picked from commit 1572d9cde0c85ed7325b9a745fef0c925d044c72)

Disabled libksieve/ksieveui/vacation/tests to fix build

(cherry picked from commit a25aa2f031bbf88d13864bdc3b3ab49aedfdf964)

Merge branch 'dev/libksieve' into dev/libksieve-kf5

Test Plan

ctest passes and it is used for kolab for some months already

Diff Detail

Repository
R43 KDE PIM
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
knauss updated this revision to Diff 975.Oct 14 2015, 12:21 PM
knauss retitled this revision from to Merge libksieve changes form kolab to upstream.
knauss updated this object.
knauss edited the test plan for this revision. (Show Details)
knauss added a reviewer: mlaurent.
knauss added a project: KDE PIM.

what is currently missing - support for read/parse the old script. The old write part is actually available.

mlaurent edited edge metadata.Oct 14 2015, 1:10 PM

"what is currently missing - support for read/parse the old script. The old write part is actually available." what do you means ?

Now it's a big patch with several features.
Please create separate patch for them.

I don't want an unique patch for vacation support + kep-14 support etc.
Thanks.

libksieve/src/ksieveui/managescriptsjob/autotests/parseuserjobtest.h
23 ↗(On Diff #975)

coding style
namespace ...
{
...
}

libksieve/src/ksieveui/managescriptsjob/checkkep14supportjob.cpp
31 ↗(On Diff #975)

Q_NULLPTR

49 ↗(On Diff #975)

new connect api ?

87 ↗(On Diff #975)

Q_EMIT

93 ↗(On Diff #975)

Q_EMIT

libksieve/src/ksieveui/managescriptsjob/checkkep14supportjob.h
28 ↗(On Diff #975)

coding style

37 ↗(On Diff #975)

Q_NULLPTR

44 ↗(On Diff #975)

const;

46 ↗(On Diff #975)

const; too

47 ↗(On Diff #975)

add const where it's necessary

libksieve/src/ksieveui/vacation/autotests/vacationutilstest.cpp
29 ↗(On Diff #975)

const'ref ?

32 ↗(On Diff #975)

++i

37 ↗(On Diff #975)

const'ref + "++i" when necessary

207 ↗(On Diff #975)

QStringLiteral

262 ↗(On Diff #975)

QStringLiteral where necessary

libksieve/src/ksieveui/vacation/autotests/vacationutilstest.h
23 ↗(On Diff #975)

coding style

libksieve/src/ksieveui/vacation/multiimapvacationdialog.cpp
121 ↗(On Diff #975)

const

libksieve/src/ksieveui/vacation/multiimapvacationmanager.h
40 ↗(On Diff #975)

const'

43 ↗(On Diff #975)

const'ref

libksieve/src/ksieveui/vacation/vacation.cpp
116 ↗(On Diff #975)

QStringLiteral

libksieve/src/ksieveui/vacation/vacationcheckjob.cpp
98 ↗(On Diff #975)

Q_EMIT where it's necessary

124 ↗(On Diff #975)

i18n ?

libksieve/src/ksieveui/vacation/vacationcheckjob.h
43 ↗(On Diff #975)

const as usual where it's necessary

libksieve/src/ksieveui/vacation/vacationcreatescriptjob.cpp
103 ↗(On Diff #975)

qCDebug

200 ↗(On Diff #975)

qCWarning

libksieve/src/ksieveui/vacation/vacationeditwidget.cpp
165 ↗(On Diff #975)

++i

414 ↗(On Diff #975)

static_cast<...>

libksieve/src/ksieveui/vacation/vacationmanager.cpp
37 ↗(On Diff #975)

indent

libksieve/src/ksieveui/vacation/vacationscriptextractor.h
495 ↗(On Diff #975)

QStringLiteral

498 ↗(On Diff #975)

QStringLiteral where necessary

524 ↗(On Diff #975)

contains

533 ↗(On Diff #975)

contains ?

libksieve/src/ksieveui/widgets/managesievewidget.cpp
486 ↗(On Diff #975)

qCWarning

Your comment suggests we are missing some backward compatibility features in this still? Does this need to be addressed first?

I agree with Laurent, let's please avoid these massive code dumps, this is extremely hard to review as it's mixing several different aspects. I know it's a lot of work to separate things at this point, but the reason we end up with this situation is the KS fork, so it's unfair to make the community pay for this by forcing us to deal with unreviewable monster patches.

libksieve/src/ksieveui/managescriptsjob/checkkep14supportjob.cpp
6 ↗(On Diff #975)

Let's try to avoid new code with GPLv2 non-plus please, this will in the longer-term future become a problem regarding compatibility with the evolving license of Qt, or other dependencies moving towards xGPLv3+.

29 ↗(On Diff #975)

Kep14 is a Kolab-specific term that makes no sense outside of Kolab, so maybe use a better name for that, at least something like "KolabKep14", to make it clear for non-Kolabians where this comes from.

knauss edited edge metadata.Oct 17 2015, 2:24 PM
knauss set the repository for this revision to R43 KDE PIM.
knauss abandoned this revision.Oct 23 2015, 5:06 PM

I have splitted the patch into: D444 - D448

The only issue i havend solved sofar is the moving/renaming issue for kep14

This revision was automatically updated to reflect the committed changes.