diff -r bf573002ff72 -r aba12c885d83 calendarui/globaldata/src/calendbchangenotifier.cpp --- a/calendarui/globaldata/src/calendbchangenotifier.cpp Mon Jun 21 15:38:59 2010 +0300 +++ b/calendarui/globaldata/src/calendbchangenotifier.cpp Thu Jul 15 18:37:27 2010 +0300 @@ -174,6 +174,11 @@ TRACE_EXIT_POINT; } + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::HandleMissedAlarmsL +// Delete missed alarms when externally the entries are getting deleted. +// ----------------------------------------------------------------------------- void CCalenDbChangeNotifier::HandleMissedAlarmsL(const RArray& aChangeItems) { TRACE_ENTRY_POINT @@ -183,13 +188,18 @@ CMissedAlarmStore* missedAlarmStore = CMissedAlarmStore::NewL( *missedAlarmStoreRepository); CleanupStack::PushL(missedAlarmStore); + RPointerArray missedAlarmStorelist; CleanupResetAndDestroyPushL(missedAlarmStorelist); + missedAlarmStore->GetL(missedAlarmStorelist); + CCalCalendarInfo* calendarInfo = iSession.CalendarInfoL(); CleanupStack::PushL(calendarInfo); + CCalenDbChangeNotifier::TCalLuidFilename calLuidFilename; calLuidFilename.iFilename = calendarInfo->FileNameL(); + if (missedAlarmStorelist.Count()) { for (TInt idx = 0; idx < aChangeItems.Count(); idx++) @@ -197,9 +207,9 @@ if (aChangeItems[idx].iChangeType == EChangeDelete) { calLuidFilename.iLuid = aChangeItems[idx].iEntryId; - TInt index = missedAlarmStorelist.Find( - calLuidFilename,CCalenDbChangeNotifier::DoFindEntryByLuid); - if(index != KErrNotFound) + TInt index = missedAlarmStorelist.Find(calLuidFilename, + CCalenDbChangeNotifier::DoFindEntryByLuid); + if (index != KErrNotFound) { CMissedAlarm* missedAlarm = missedAlarmStorelist[index]; missedAlarmStore->RemoveL(*missedAlarm); @@ -207,11 +217,17 @@ } } } + CleanupStack::PopAndDestroy(calendarInfo); CleanupStack::PopAndDestroy(&missedAlarmStorelist); CleanupStack::PopAndDestroy(missedAlarmStore); + TRACE_EXIT_POINT } + +// ----------------------------------------------------------------------------- +// CCalenDbChangeNotifier::DoFindEntryByLuid +// ----------------------------------------------------------------------------- TBool CCalenDbChangeNotifier::DoFindEntryByLuid( const TCalLuidFilename* aLuidFilename,const CMissedAlarm& aMissedAlarm) {