diff -r bd7edf625bdd -r 97232defd20e calendarui/commonutils/src/calenentryutil.cpp --- a/calendarui/commonutils/src/calenentryutil.cpp Wed Sep 01 12:32:31 2010 +0100 +++ b/calendarui/commonutils/src/calenentryutil.cpp Tue Sep 14 21:17:03 2010 +0300 @@ -30,6 +30,8 @@ #include #include #include +#include // for feature definitions +#include // Utility functions @@ -139,6 +141,15 @@ delete iSummary; delete iLocation; delete iDescription; + + // Do not call UnInitializeLib() if InitalizeLib() leaves. + if ( iFeatMgrInitialized ) + { + // Frees the TLS. Must be done after FeatureManager is used. + FeatureManager::UnInitializeLib(); + } + + TRACE_EXIT_POINT; } @@ -692,6 +703,12 @@ const TCalTime& aInstanceDateTime ) { TRACE_ENTRY_POINT; + // Sets up TLS, must be done before FeatureManager is used. + FeatureManager::InitializeLibL(); + // Used in destructor. + iFeatMgrInitialized = ETrue; + + iEntryType = aEntry.EntryTypeL(); iEntryStatus = aEntry.StatusL(); CopyDataFromEntryL( aEntry, aInstanceDateTime ); @@ -752,6 +769,10 @@ { TTime event = aInstanceDateTime.TimeLocalL(); SetEventDateL( event ); + if ( FeatureManager::FeatureSupported( KFeatureIdKorean ) ) + { + SetCalendarTypeL( ( TLunarCalendarType )aEntry.UserInt32L() ); + } } break; @@ -916,13 +937,25 @@ { // If the instance matches one of the RDates if( (aInstanceDateTime.TimeLocalL()) == (rdates[ index ].TimeLocalL()) ) - { - // instanceAlarmDay = actualAlarmDay + (alarmOffsetStart - alarmOffsetInstance) - deltaDays = alarmDateTime.DaysFrom( aEntry.StartTimeL().TimeLocalL() ).Int() - - alarmDateTime.DaysFrom( aInstanceDateTime.TimeLocalL() ).Int(); - alarmDateTime += deltaDays; - break; - } + { + // instanceAlarmDay = actualAlarmDay + (alarmOffsetStart - alarmOffsetInstance) + deltaDays = alarmDateTime.DaysFrom( aEntry.StartTimeL().TimeLocalL() ).Int() + - alarmDateTime.DaysFrom( aInstanceDateTime.TimeLocalL() ).Int(); + alarmDateTime += deltaDays; + if ( FeatureManager::FeatureSupported( KFeatureIdKorean ) ) + { + if ( aEntry.EntryTypeL() == CCalEntry::EAnniv && CalendarType() != ESolar ) + { + alarmDateTime = aEntry.StartTimeL().TimeLocalL(); + CCalAlarm* alarm = aEntry.AlarmL(); + if(alarm) + { + alarmDateTime = aInstanceDateTime.TimeLocalL() - alarm->TimeOffset(); + } + } + } + break; + } } } SetAlarmOnL( alarmDateTime ); @@ -1040,4 +1073,31 @@ TRACE_EXIT_POINT; } +// --------------------------------------------------------------------------- +// CalenViewUtils::CalendarType +// (other items were commented in a header) +// --------------------------------------------------------------------------- +// +EXPORT_C TLunarCalendarType CCalenEntryUtil::CalendarType() const + { + TRACE_ENTRY_POINT; + TRACE_EXIT_POINT; + + return iCalendarType; + } + +// --------------------------------------------------------------------------- +// CalenViewUtils::SetCalendarTypeL +// (other items were commented in a header) +// --------------------------------------------------------------------------- +// +EXPORT_C void CCalenEntryUtil::SetCalendarTypeL(TLunarCalendarType aCalendarType) + { + TRACE_ENTRY_POINT; + + iCalendarType = aCalendarType; + TRACE_EXIT_POINT; + + } + // End of file