diff --git a/src/calendarworker.cpp b/src/calendarworker.cpp index 675bae0c..2f12c504 100644 --- a/src/calendarworker.cpp +++ b/src/calendarworker.cpp @@ -119,7 +119,7 @@ void CalendarWorker::deleteEvent(const QString &uid, const KDateTime &recurrence event->setRevision(event->revision() + 1); } else { mCalendar->deleteEvent(event); - mExceptionEvents.append(QPair(uid, dateTime)); + mDeletedEvents.append(QPair(uid, recurrenceId)); } } @@ -133,7 +133,7 @@ void CalendarWorker::deleteAll(const QString &uid) mCalendar->deleteEventInstances(event); mCalendar->deleteEvent(event); - mDeletedEvents.append(uid); + mDeletedEvents.append(QPair(uid, KDateTime())); } bool CalendarWorker::sendResponse(const CalendarData::Event &eventData, const CalendarEvent::Response response) @@ -174,8 +174,8 @@ void CalendarWorker::save() // FIXME: should send response update if deleting an even we have responded to. // FIXME: should send cancel only if we own the event if (!mDeletedEvents.isEmpty()) { - for (const QString &uid: mDeletedEvents) { - KCalCore::Event::Ptr event = mCalendar->deletedEvent(uid); + for (const QPair &pair: mDeletedEvents) { + KCalCore::Event::Ptr event = mCalendar->deletedEvent(pair.first, pair.second); if (!needSendCancellation(event)) { continue; } @@ -184,18 +184,6 @@ void CalendarWorker::save() } mDeletedEvents.clear(); } - if (!mExceptionEvents.isEmpty()) { - for (const QPair &exceptionEvent: mExceptionEvents) { - KCalCore::Event::Ptr event = mCalendar->deletedEvent(exceptionEvent.first, - KDateTime(exceptionEvent.second, KDateTime::Spec(KDateTime::LocalZone))); - if (!needSendCancellation(event)) { - continue; - } - event->setStatus(KCalCore::Incidence::StatusCanceled); - mKCal::ServiceHandler::instance().sendUpdate(event, QString(), mCalendar, mStorage); - } - mExceptionEvents.clear(); - } } void CalendarWorker::saveEvent(const CalendarData::Event &eventData, bool updateAttendees, diff --git a/src/calendarworker.h b/src/calendarworker.h index 2796646c..f8096afe 100644 --- a/src/calendarworker.h +++ b/src/calendarworker.h @@ -140,11 +140,10 @@ public slots: mKCal::ExtendedCalendar::Ptr mCalendar; mKCal::ExtendedStorage::Ptr mStorage; - // mDeletedEvents and mExceptionEvents are used to make sure + // mDeletedEvents is used to make sure // that we are sending a cancellation email for events only // when user actually saved (so truly deleted) changes by calling of save() - QStringList mDeletedEvents; - QList> mExceptionEvents; + QList> mDeletedEvents; QHash mNotebooks;