Branch 'kolab/integration/4.13.0' - 2 commits - akonadi/calendar kcalutils/incidenceformatter.cpp

Sandro Knauß knauss at kolabsys.com
Thu Mar 5 20:37:53 CET 2015


 akonadi/calendar/incidencechanger.cpp |   25 +++++++++++--------------
 kcalutils/incidenceformatter.cpp      |    3 +++
 2 files changed, 14 insertions(+), 14 deletions(-)

New commits:
commit 7873780bf91ccf61f8764a28cb8eb0a48e4783b1
Author: Sandro Knauß <knauss at kolabsys.com>
Date:   Thu Mar 5 20:30:24 2015 +0100

    Event with PartStatus NEEDS-ACTION should overwrite RSVP
    
    Some clients send iTips with partStatus=NEEDS-ACTION but without
    RSVP=TRUE. Because the default RSVP is false users see not the expected
    accept,decliend etc. controls.
    
    KOLAB #4357

diff --git a/kcalutils/incidenceformatter.cpp b/kcalutils/incidenceformatter.cpp
index 4ef8c1a..a86e190 100644
--- a/kcalutils/incidenceformatter.cpp
+++ b/kcalutils/incidenceformatter.cpp
@@ -3172,6 +3172,9 @@ static QString formatICalInvitationHelper(QString invitation,
 
     // determine if RSVP needed, not-needed, or response already recorded
     bool rsvpReq = rsvpRequested(inc);
+    if (!rsvpReq && a && a->status() == Attendee::NeedsAction) {
+        rsvpReq = true;
+    }
     if (!myInc && a) {
         QString tStr;
         if (rsvpRec && inc) {


commit fbd6ef208f39d3114d81eebcb6cb032871fcb982
Author: Sandro Knauß <knauss at kolabsys.com>
Date:   Thu Mar 5 20:27:10 2015 +0100

    some small cleanups

diff --git a/akonadi/calendar/incidencechanger.cpp b/akonadi/calendar/incidencechanger.cpp
index 8f51cef..0ea54de 100644
--- a/akonadi/calendar/incidencechanger.cpp
+++ b/akonadi/calendar/incidencechanger.cpp
@@ -429,8 +429,8 @@ void IncidenceChanger::Private::handleModifyJobResult(KJob *job)
     const Item item = j->item();
     Q_ASSERT(mDirtyFieldsByJob.contains(job));
     Q_ASSERT(item.hasPayload<KCalCore::Incidence::Ptr>());
-    item.payload<KCalCore::Incidence::Ptr>()->setDirtyFields(mDirtyFieldsByJob.value(job));
     const QSet<KCalCore::IncidenceBase::Field> dirtyFields = mDirtyFieldsByJob.value(job);
+    item.payload<KCalCore::Incidence::Ptr>()->setDirtyFields(dirtyFields);
     QString description;
     if (change->atomicOperationId != 0) {
         AtomicOperation *a = mAtomicOperations[change->atomicOperationId];
@@ -658,20 +658,17 @@ void IncidenceChanger::Private::handleInvitationsAfterChange(const Change::Ptr &
                 if (!Akonadi::CalendarUtils::thatIsMe(incidence->organizer()->email())) {
                     const QStringList myEmails = Akonadi::CalendarUtils::allEmails();
                     bool notifyOrganizer = false;
-                    for (QStringList::ConstIterator it = myEmails.begin(); it != myEmails.end(); ++it) {
-                        const QString email = *it;
-                        KCalCore::Attendee::Ptr me(incidence->attendeeByMail(email));
-                        if (me) {
-                            if (me->status() == KCalCore::Attendee::Accepted ||
-                                    me->status() == KCalCore::Attendee::Delegated) {
-                                notifyOrganizer = true;
-                            }
-                            KCalCore::Attendee::Ptr newMe(new KCalCore::Attendee(*me));
-                            newMe->setStatus(KCalCore::Attendee::Declined);
-                            incidence->clearAttendees();
-                            incidence->addAttendee(newMe);
-                            break;
+                    KCalCore::Attendee::Ptr me(incidence->attendeeByMails(myEmails));
+                    if (me) {
+                        if (me->status() == KCalCore::Attendee::Accepted ||
+                                me->status() == KCalCore::Attendee::Delegated) {
+                            notifyOrganizer = true;
                         }
+                        KCalCore::Attendee::Ptr newMe(new KCalCore::Attendee(*me));
+                        newMe->setStatus(KCalCore::Attendee::Declined);
+                        incidence->clearAttendees();
+                        incidence->addAttendee(newMe);
+                        break;
                     }
 
                     if (notifyOrganizer) {




More information about the commits mailing list