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