201033_03
authorhgs
Tue, 31 Aug 2010 18:15:13 +0530
changeset 64 1881ad52dc45
parent 63 a3cb48f6c889
child 70 a5ed90760192
201033_03
agendainterface/agendautil/bwins/agendainterfaceu.def
agendainterface/agendautil/eabi/agendainterfaceu.def
agendainterface/agendautil/inc/agendautil_p.h
agendainterface/agendautil/src/agendautil.cpp
agendainterface/agendautil/src/agendautil_p.cpp
calendarengines/agnversit2/inc/CleanupPointerArray.inl
calendarui/caleneditor/inc/caleneditor_p.h
calendarui/caleneditor/inc/caleneditorcommon.h
calendarui/caleneditor/inc/caleneditorreminderfield.h
calendarui/caleneditor/src/caleneditor_p.cpp
calendarui/caleneditor/src/caleneditorreminderfield.cpp
calendarui/caleneditor/src/caleneditorrepeatfield.cpp
calendarui/controller/src/calenviewmanager.cpp
calendarui/regionalplugins/calenregionalutil/calenregionalutil.pro
calendarui/regionalplugins/calenregionalutil/eabi/calenregionalutilu.def
calendarui/regionalplugins/calenregionalutil/inc/calenlunarlocalizedinfo.h
calendarui/regionalplugins/calenregionalutil/src/calenlunarlocalizedinfo.cpp
calendarui/regionalplugins/calenregionalutil/traces/calenlunarlocalizedinfoTraces.h
calendarui/regionalplugins/calenregionalutil/traces/fixed_id.definitions
calendarui/regionalplugins/lunarchinese/bwins/calenlunarchinesepluginu.def
calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp
calendarui/views/bwins/calenviewsu.def
calendarui/views/dayview/inc/calendaycommonheaders.h
calendarui/views/dayview/resources/calendayeventspane.css
calendarui/views/dayview/resources/calendayhourelement.css
calendarui/views/dayview/resources/calendayitem.css
calendarui/views/dayview/src/calendaycontainer.cpp
calendarui/views/dayview/src/calendaycontentscrollarea.cpp
calendarui/views/dayview/src/calendayitem.cpp
calendarui/views/dayview/src/calendayutils.cpp
calendarui/views/dayview/src/calendayview.cpp
calendarui/views/eabi/calenviewsu.def
calendarui/views/inc/calenagendaviewwidget.h
calendarui/views/inc/caleneventlistviewitem.h
calendarui/views/resources/caleneventlistviewitem.css
calendarui/views/resources/caleneventlistviewitem.widgetml
calendarui/views/src/calenagendaviewwidget.cpp
calendarui/views/src/caleneventlistviewitem.cpp
calendarui/views/src/calenmonthview.cpp
calendarui/views/src/calenpreviewpane.cpp
clock/clockui/clockalarmeditor/src/clockalarmeditor.cpp
clock/clockui/clockviews/src/clockworldview.cpp
organizer_plat/agenda_interface_api/inc/agendautil.h
organizer_plat/agenda_interface_api/tsrc/unittest_agendautil/src/unittest_agendautil.cpp
--- a/agendainterface/agendautil/bwins/agendainterfaceu.def	Wed Aug 25 14:02:13 2010 +0530
+++ b/agendainterface/agendautil/bwins/agendainterfaceu.def	Tue Aug 31 18:15:13 2010 +0530
@@ -57,124 +57,124 @@
 	?lastModifiedDateTime@AgendaEntry@@QBE?AVQDateTime@@XZ @ 56 NONAME ; class QDateTime AgendaEntry::lastModifiedDateTime(void) const
 	?attendees@AgendaEntry@@QBEABV?$QList@VAgendaAttendee@@@@XZ @ 57 NONAME ; class QList<class AgendaAttendee> const & AgendaEntry::attendees(void) const
 	?setInterval@AgendaRepeatRule@@QAEXH@Z @ 58 NONAME ; void AgendaRepeatRule::setInterval(int)
-	?store@AgendaUtil@@QAEKAAVAgendaEntry@@W4RecurrenceRange@1@@Z @ 59 NONAME ; unsigned long AgendaUtil::store(class AgendaEntry &, enum AgendaUtil::RecurrenceRange)
-	??8AgendaGeoValue@@QBE_NABV0@@Z @ 60 NONAME ; bool AgendaGeoValue::operator==(class AgendaGeoValue const &) const
-	?id@AgendaEntry@@QBEKXZ @ 61 NONAME ; unsigned long AgendaEntry::id(void) const
-	?setByDay@AgendaRepeatRule@@QAEXABV?$QList@W4Day@AgendaRepeatRule@@@@@Z @ 62 NONAME ; void AgendaRepeatRule::setByDay(class QList<enum AgendaRepeatRule::Day> const &)
-	?setUntil@AgendaRepeatRule@@QAEXABVQDateTime@@@Z @ 63 NONAME ; void AgendaRepeatRule::setUntil(class QDateTime const &)
-	?setType@AgendaRepeatRule@@QAEXW4RuleType@1@@Z @ 64 NONAME ; void AgendaRepeatRule::setType(enum AgendaRepeatRule::RuleType)
-	?interval@AgendaRepeatRule@@QBEHXZ @ 65 NONAME ; int AgendaRepeatRule::interval(void) const
-	?rDates@AgendaEntry@@QBE?AV?$QList@VQDate@@@@XZ @ 66 NONAME ; class QList<class QDate> AgendaEntry::rDates(void) const
-	?repeatRuleStart@AgendaRepeatRule@@QBE?AVQDateTime@@XZ @ 67 NONAME ; class QDateTime AgendaRepeatRule::repeatRuleStart(void) const
-	??8AgendaAlarm@@QBE_NABV0@@Z @ 68 NONAME ; bool AgendaAlarm::operator==(class AgendaAlarm const &) const
-	??0AgendaRepeatRule@@QAE@ABV0@@Z @ 69 NONAME ; AgendaRepeatRule::AgendaRepeatRule(class AgendaRepeatRule const &)
-	?setStatus@AgendaAttendee@@QAEXW4StatusType@1@@Z @ 70 NONAME ; void AgendaAttendee::setStatus(enum AgendaAttendee::StatusType)
-	?setStatus@AgendaEntry@@QAEXW4Status@1@@Z @ 71 NONAME ; void AgendaEntry::setStatus(enum AgendaEntry::Status)
-	?setExtendedCategoryName@AgendaCategory@@QAEXABVQString@@@Z @ 72 NONAME ; void AgendaCategory::setExtendedCategoryName(class QString const &)
-	?setDescription@AgendaEntry@@QAEXABVQString@@@Z @ 73 NONAME ; void AgendaEntry::setDescription(class QString const &)
-	?recurrenceId@AgendaEntry@@QAE?AVQDateTime@@XZ @ 74 NONAME ; class QDateTime AgendaEntry::recurrenceId(void)
-	?until@AgendaRepeatRule@@QBE?AVQDateTime@@XZ @ 75 NONAME ; class QDateTime AgendaRepeatRule::until(void) const
-	?setByMonth@AgendaRepeatRule@@QAEXABV?$QList@W4Month@AgendaRepeatRule@@@@@Z @ 76 NONAME ; void AgendaRepeatRule::setByMonth(class QList<enum AgendaRepeatRule::Month> const &)
-	?qt_metacall@AgendaUtil@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 77 NONAME ; int AgendaUtil::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacast@AgendaUtil@@UAEPAXPBD@Z @ 78 NONAME ; void * AgendaUtil::qt_metacast(char const *)
-	?isNull@AgendaRepeatRule@@QBE_NXZ @ 79 NONAME ; bool AgendaRepeatRule::isNull(void) const
-	?getStaticMetaObject@AgendaUtil@@SAABUQMetaObject@@XZ @ 80 NONAME ; struct QMetaObject const & AgendaUtil::getStaticMetaObject(void)
-	??8AgendaAttendee@@QBE_NABV0@@Z @ 81 NONAME ; bool AgendaAttendee::operator==(class AgendaAttendee const &) const
-	?addCategory@AgendaEntry@@QAEXABVAgendaCategory@@@Z @ 82 NONAME ; void AgendaEntry::addCategory(class AgendaCategory const &)
-	?setLocation@AgendaEntry@@QAEXABVQString@@@Z @ 83 NONAME ; void AgendaEntry::setLocation(class QString const &)
-	?isTimedEntry@AgendaEntry@@QAE_NXZ @ 84 NONAME ; bool AgendaEntry::isTimedEntry(void)
-	?favourite@AgendaEntry@@QBEIXZ @ 85 NONAME ; unsigned int AgendaEntry::favourite(void) const
-	?entryViewCreationCompleted@AgendaUtil@@IAEXH@Z @ 86 NONAME ; void AgendaUtil::entryViewCreationCompleted(int)
-	?durationInSecs@AgendaEntry@@QBEHXZ @ 87 NONAME ; int AgendaEntry::durationInSecs(void) const
-	??1AgendaUtil@@UAE@XZ @ 88 NONAME ; AgendaUtil::~AgendaUtil(void)
-	?category@AgendaCategory@@QBE?AW4CategoryType@1@XZ @ 89 NONAME ; enum AgendaCategory::CategoryType AgendaCategory::category(void) const
-	?entryAdded@AgendaUtil@@IAEXK@Z @ 90 NONAME ; void AgendaUtil::entryAdded(unsigned long)
-	?role@AgendaAttendee@@QBE?AW4ParticipantRole@1@XZ @ 91 NONAME ; enum AgendaAttendee::ParticipantRole AgendaAttendee::role(void) const
-	?type@AgendaEntry@@QBE?AW4Type@1@XZ @ 92 NONAME ; enum AgendaEntry::Type AgendaEntry::type(void) const
-	??0AgendaEntry@@QAE@W4Type@0@@Z @ 93 NONAME ; AgendaEntry::AgendaEntry(enum AgendaEntry::Type)
-	?detach@AgendaRepeatRule@@AAEXXZ @ 94 NONAME ; void AgendaRepeatRule::detach(void)
-	?error@AgendaUtil@@QBE?AW4Error@1@XZ @ 95 NONAME ; enum AgendaUtil::Error AgendaUtil::error(void) const
-	?trUtf8@AgendaUtil@@SA?AVQString@@PBD0@Z @ 96 NONAME ; class QString AgendaUtil::trUtf8(char const *, char const *)
-	?status@AgendaEntry@@QBE?AW4Status@1@XZ @ 97 NONAME ; enum AgendaEntry::Status AgendaEntry::status(void) const
-	??0AgendaEntry@@QAE@ABV0@@Z @ 98 NONAME ; AgendaEntry::AgendaEntry(class AgendaEntry const &)
-	??4AgendaAttendee@@QAEAAV0@ABV0@@Z @ 99 NONAME ; class AgendaAttendee & AgendaAttendee::operator=(class AgendaAttendee const &)
-	?address@AgendaAttendee@@QBE?AVQString@@XZ @ 100 NONAME ; class QString AgendaAttendee::address(void) const
-	?entryDeleted@AgendaUtil@@IAEXK@Z @ 101 NONAME ; void AgendaUtil::entryDeleted(unsigned long)
-	?summary@AgendaEntry@@QBE?AVQString@@XZ @ 102 NONAME ; class QString AgendaEntry::summary(void) const
-	?priority@AgendaEntry@@QBEHXZ @ 103 NONAME ; int AgendaEntry::priority(void) const
-	?fetchById@AgendaUtil@@QAE?AVAgendaEntry@@K@Z @ 104 NONAME ; class AgendaEntry AgendaUtil::fetchById(unsigned long)
-	?setCommonName@AgendaAttendee@@QAEXABVQString@@@Z @ 105 NONAME ; void AgendaAttendee::setCommonName(class QString const &)
-	?setMethod@AgendaEntry@@QAEXW4Method@1@@Z @ 106 NONAME ; void AgendaEntry::setMethod(enum AgendaEntry::Method)
-	?setRDates@AgendaEntry@@QAEXABV?$QList@VQDate@@@@@Z @ 107 NONAME ; void AgendaEntry::setRDates(class QList<class QDate> const &)
-	?parentEntry@AgendaUtil@@QAE?AVAgendaEntry@@AAV2@@Z @ 108 NONAME ; class AgendaEntry AgendaUtil::parentEntry(class AgendaEntry &)
-	?addAttendee@AgendaEntry@@QAEXABVAgendaAttendee@@@Z @ 109 NONAME ; void AgendaEntry::addAttendee(class AgendaAttendee const &)
-	?setCompleted@AgendaUtil@@QAEXAAVAgendaEntry@@_NAAVQDateTime@@@Z @ 110 NONAME ; void AgendaUtil::setCompleted(class AgendaEntry &, bool, class QDateTime &)
-	??0AgendaCategory@@QAE@XZ @ 111 NONAME ; AgendaCategory::AgendaCategory(void)
-	?timeOffset@AgendaAlarm@@QBEHXZ @ 112 NONAME ; int AgendaAlarm::timeOffset(void) const
-	??0AgendaAttendee@@QAE@XZ @ 113 NONAME ; AgendaAttendee::AgendaAttendee(void)
-	?setAlarmSoundName@AgendaAlarm@@QAEXABVQString@@@Z @ 114 NONAME ; void AgendaAlarm::setAlarmSoundName(class QString const &)
-	?fetchEntriesInRange@AgendaUtil@@QAE?AV?$QList@VAgendaEntry@@@@VQDateTime@@0W4FilterFlags@1@@Z @ 115 NONAME ; class QList<class AgendaEntry> AgendaUtil::fetchEntriesInRange(class QDateTime, class QDateTime, enum AgendaUtil::FilterFlags)
-	?detach@AgendaAlarm@@AAEXXZ @ 116 NONAME ; void AgendaAlarm::detach(void)
-	?setWeekStart@AgendaRepeatRule@@QAEXW4Day@1@@Z @ 117 NONAME ; void AgendaRepeatRule::setWeekStart(enum AgendaRepeatRule::Day)
-	?setFavourite@AgendaEntry@@QAEXI@Z @ 118 NONAME ; void AgendaEntry::setFavourite(unsigned int)
-	?setDTStamp@AgendaEntry@@QAEXABVQDateTime@@@Z @ 119 NONAME ; void AgendaEntry::setDTStamp(class QDateTime const &)
-	?cloneEntry@AgendaUtil@@QAEKABVAgendaEntry@@W4Type@2@@Z @ 120 NONAME ; unsigned long AgendaUtil::cloneEntry(class AgendaEntry const &, enum AgendaEntry::Type)
-	?setRepeatRule@AgendaEntry@@QAEXABVAgendaRepeatRule@@@Z @ 121 NONAME ; void AgendaEntry::setRepeatRule(class AgendaRepeatRule const &)
-	?categories@AgendaEntry@@QBEABV?$QList@VAgendaCategory@@@@XZ @ 122 NONAME ; class QList<class AgendaCategory> const & AgendaEntry::categories(void) const
-	?tr@AgendaUtil@@SA?AVQString@@PBD0@Z @ 123 NONAME ; class QString AgendaUtil::tr(char const *, char const *)
-	??4AgendaRepeatRule@@QAEAAV0@ABV0@@Z @ 124 NONAME ; class AgendaRepeatRule & AgendaRepeatRule::operator=(class AgendaRepeatRule const &)
-	?setCompletedDateTime@AgendaEntry@@QAEXABVQDateTime@@@Z @ 125 NONAME ; void AgendaEntry::setCompletedDateTime(class QDateTime const &)
-	??0AgendaRepeatRule@@QAE@XZ @ 126 NONAME ; AgendaRepeatRule::AgendaRepeatRule(void)
-	?dtStamp@AgendaEntry@@QBE?AVQDateTime@@XZ @ 127 NONAME ; class QDateTime AgendaEntry::dtStamp(void) const
-	?method@AgendaEntry@@QBE?AW4Method@1@XZ @ 128 NONAME ; enum AgendaEntry::Method AgendaEntry::method(void) const
-	?type@AgendaRepeatRule@@QBE?AW4RuleType@1@XZ @ 129 NONAME ; enum AgendaRepeatRule::RuleType AgendaRepeatRule::type(void) const
-	??4AgendaGeoValue@@QAEAAV0@ABV0@@Z @ 130 NONAME ; class AgendaGeoValue & AgendaGeoValue::operator=(class AgendaGeoValue const &)
-	??0AgendaCategory@@QAE@W4CategoryType@0@@Z @ 131 NONAME ; AgendaCategory::AgendaCategory(enum AgendaCategory::CategoryType)
-	?commonName@AgendaAttendee@@QBE?AVQString@@XZ @ 132 NONAME ; class QString AgendaAttendee::commonName(void) const
-	?detach@AgendaCategory@@AAEXXZ @ 133 NONAME ; void AgendaCategory::detach(void)
-	??0AgendaGeoValue@@QAE@ABV0@@Z @ 134 NONAME ; AgendaGeoValue::AgendaGeoValue(class AgendaGeoValue const &)
-	?isWorkdaysRepeatingEntry@AgendaUtil@@SA_NABVAgendaRepeatRule@@@Z @ 135 NONAME ; bool AgendaUtil::isWorkdaysRepeatingEntry(class AgendaRepeatRule const &)
-	?setRole@AgendaAttendee@@QAEXW4ParticipantRole@1@@Z @ 136 NONAME ; void AgendaAttendee::setRole(enum AgendaAttendee::ParticipantRole)
-	?detach@AgendaAttendee@@AAEXXZ @ 137 NONAME ; void AgendaAttendee::detach(void)
-	?getLatLong@AgendaGeoValue@@QBEXAAN0@Z @ 138 NONAME ; void AgendaGeoValue::getLatLong(double &, double &) const
-	?maxTime@AgendaUtil@@SA?AVQDateTime@@XZ @ 139 NONAME ; class QDateTime AgendaUtil::maxTime(void)
-	?setCategory@AgendaCategory@@QAEXW4CategoryType@1@@Z @ 140 NONAME ; void AgendaCategory::setCategory(enum AgendaCategory::CategoryType)
-	?endTime@AgendaEntry@@QBE?AVQDateTime@@XZ @ 141 NONAME ; class QDateTime AgendaEntry::endTime(void) const
-	??9AgendaEntry@@QBE_NABV0@@Z @ 142 NONAME ; bool AgendaEntry::operator!=(class AgendaEntry const &) const
-	??0AgendaRepeatRule@@QAE@W4RuleType@0@@Z @ 143 NONAME ; AgendaRepeatRule::AgendaRepeatRule(enum AgendaRepeatRule::RuleType)
-	??9AgendaCategory@@QBE_NABV0@@Z @ 144 NONAME ; bool AgendaCategory::operator!=(class AgendaCategory const &) const
-	??0AgendaAttendee@@QAE@ABV0@@Z @ 145 NONAME ; AgendaAttendee::AgendaAttendee(class AgendaAttendee const &)
-	??0AgendaAttendee@@QAE@ABVQString@@@Z @ 146 NONAME ; AgendaAttendee::AgendaAttendee(class QString const &)
-	?importvCalendar@AgendaUtil@@QAEHABVQString@@AAVAgendaEntry@@@Z @ 147 NONAME ; int AgendaUtil::importvCalendar(class QString const &, class AgendaEntry &)
-	?instanceViewCreationCompleted@AgendaUtil@@IAEXH@Z @ 148 NONAME ; void AgendaUtil::instanceViewCreationCompleted(int)
-	??_EAgendaUtil@@UAE@I@Z @ 149 NONAME ; AgendaUtil::~AgendaUtil(unsigned int)
-	?setGeoValue@AgendaEntry@@QAEXABVAgendaGeoValue@@@Z @ 150 NONAME ; void AgendaEntry::setGeoValue(class AgendaGeoValue const &)
-	?getPreviousInstanceTimes@AgendaUtil@@QAEXAAVAgendaEntry@@AAVQDateTime@@1@Z @ 151 NONAME ; void AgendaUtil::getPreviousInstanceTimes(class AgendaEntry &, class QDateTime &, class QDateTime &)
-	?attendees@AgendaEntry@@QAEAAV?$QList@VAgendaAttendee@@@@XZ @ 152 NONAME ; class QList<class AgendaAttendee> & AgendaEntry::attendees(void)
-	?staticMetaObject@AgendaUtil@@2UQMetaObject@@B @ 153 NONAME ; struct QMetaObject const AgendaUtil::staticMetaObject
-	?entriesDeleted@AgendaUtil@@IAEXH@Z @ 154 NONAME ; void AgendaUtil::entriesDeleted(int)
-	?fetchAllEntries@AgendaUtil@@QAE?AV?$QList@VAgendaEntry@@@@W4FilterFlags@1@@Z @ 155 NONAME ; class QList<class AgendaEntry> AgendaUtil::fetchAllEntries(enum AgendaUtil::FilterFlags)
-	?setTimeOffset@AgendaAlarm@@QAEXH@Z @ 156 NONAME ; void AgendaAlarm::setTimeOffset(int)
-	??0AgendaEntry@@QAE@XZ @ 157 NONAME ; AgendaEntry::AgendaEntry(void)
-	?setPriority@AgendaEntry@@QAEXH@Z @ 158 NONAME ; void AgendaEntry::setPriority(int)
-	?setType@AgendaEntry@@QAEXW4Type@1@@Z @ 159 NONAME ; void AgendaEntry::setType(enum AgendaEntry::Type)
-	?setStartAndEndTime@AgendaEntry@@QAE_NABVQDateTime@@0@Z @ 160 NONAME ; bool AgendaEntry::setStartAndEndTime(class QDateTime const &, class QDateTime const &)
-	?deleteEntries@AgendaUtil@@QAEXAAVQDateTime@@0W4FilterFlags@1@@Z @ 161 NONAME ; void AgendaUtil::deleteEntries(class QDateTime &, class QDateTime &, enum AgendaUtil::FilterFlags)
-	?metaObject@AgendaUtil@@UBEPBUQMetaObject@@XZ @ 162 NONAME ; struct QMetaObject const * AgendaUtil::metaObject(void) const
-	?location@AgendaEntry@@QBE?AVQString@@XZ @ 163 NONAME ; class QString AgendaEntry::location(void) const
-	??8AgendaCategory@@QBE_NABV0@@Z @ 164 NONAME ; bool AgendaCategory::operator==(class AgendaCategory const &) const
-	??0AgendaCategory@@QAE@ABV0@@Z @ 165 NONAME ; AgendaCategory::AgendaCategory(class AgendaCategory const &)
-	??1AgendaGeoValue@@QAE@XZ @ 166 NONAME ; AgendaGeoValue::~AgendaGeoValue(void)
-	??4AgendaEntry@@QAEAAV0@ABV0@@Z @ 167 NONAME ; class AgendaEntry & AgendaEntry::operator=(class AgendaEntry const &)
-	??_EAgendaCategory@@UAE@I@Z @ 168 NONAME ; AgendaCategory::~AgendaCategory(unsigned int)
-	?createEntryIdListForDay@AgendaUtil@@QAE?AV?$QList@VAgendaEntry@@@@VQDateTime@@W4FilterFlags@1@@Z @ 169 NONAME ; class QList<class AgendaEntry> AgendaUtil::createEntryIdListForDay(class QDateTime, enum AgendaUtil::FilterFlags)
-	?repeatRule@AgendaEntry@@QBE?AVAgendaRepeatRule@@XZ @ 170 NONAME ; class AgendaRepeatRule AgendaEntry::repeatRule(void) const
-	??1AgendaCategory@@UAE@XZ @ 171 NONAME ; AgendaCategory::~AgendaCategory(void)
-	?deleteEntry@AgendaUtil@@QAE_NK@Z @ 172 NONAME ; bool AgendaUtil::deleteEntry(unsigned long)
-	??1AgendaAttendee@@UAE@XZ @ 173 NONAME ; AgendaAttendee::~AgendaAttendee(void)
-	?byDay@AgendaRepeatRule@@QBE?AV?$QList@W4Day@AgendaRepeatRule@@@@XZ @ 174 NONAME ; class QList<enum AgendaRepeatRule::Day> AgendaRepeatRule::byDay(void) const
-	?setLatLong@AgendaGeoValue@@QAEXNN@Z @ 175 NONAME ; void AgendaGeoValue::setLatLong(double, double)
-	?completedDateTime@AgendaEntry@@QBE?AVQDateTime@@XZ @ 176 NONAME ; class QDateTime AgendaEntry::completedDateTime(void) const
-	?setRecurrenceId@AgendaEntry@@QAEXAAVQDateTime@@@Z @ 177 NONAME ; void AgendaEntry::setRecurrenceId(class QDateTime &)
+	??8AgendaGeoValue@@QBE_NABV0@@Z @ 59 NONAME ; bool AgendaGeoValue::operator==(class AgendaGeoValue const &) const
+	?id@AgendaEntry@@QBEKXZ @ 60 NONAME ; unsigned long AgendaEntry::id(void) const
+	?setByDay@AgendaRepeatRule@@QAEXABV?$QList@W4Day@AgendaRepeatRule@@@@@Z @ 61 NONAME ; void AgendaRepeatRule::setByDay(class QList<enum AgendaRepeatRule::Day> const &)
+	?setUntil@AgendaRepeatRule@@QAEXABVQDateTime@@@Z @ 62 NONAME ; void AgendaRepeatRule::setUntil(class QDateTime const &)
+	?setType@AgendaRepeatRule@@QAEXW4RuleType@1@@Z @ 63 NONAME ; void AgendaRepeatRule::setType(enum AgendaRepeatRule::RuleType)
+	?interval@AgendaRepeatRule@@QBEHXZ @ 64 NONAME ; int AgendaRepeatRule::interval(void) const
+	?rDates@AgendaEntry@@QBE?AV?$QList@VQDate@@@@XZ @ 65 NONAME ; class QList<class QDate> AgendaEntry::rDates(void) const
+	?repeatRuleStart@AgendaRepeatRule@@QBE?AVQDateTime@@XZ @ 66 NONAME ; class QDateTime AgendaRepeatRule::repeatRuleStart(void) const
+	??8AgendaAlarm@@QBE_NABV0@@Z @ 67 NONAME ; bool AgendaAlarm::operator==(class AgendaAlarm const &) const
+	??0AgendaRepeatRule@@QAE@ABV0@@Z @ 68 NONAME ; AgendaRepeatRule::AgendaRepeatRule(class AgendaRepeatRule const &)
+	?setStatus@AgendaAttendee@@QAEXW4StatusType@1@@Z @ 69 NONAME ; void AgendaAttendee::setStatus(enum AgendaAttendee::StatusType)
+	?setStatus@AgendaEntry@@QAEXW4Status@1@@Z @ 70 NONAME ; void AgendaEntry::setStatus(enum AgendaEntry::Status)
+	?setExtendedCategoryName@AgendaCategory@@QAEXABVQString@@@Z @ 71 NONAME ; void AgendaCategory::setExtendedCategoryName(class QString const &)
+	?setDescription@AgendaEntry@@QAEXABVQString@@@Z @ 72 NONAME ; void AgendaEntry::setDescription(class QString const &)
+	?recurrenceId@AgendaEntry@@QAE?AVQDateTime@@XZ @ 73 NONAME ; class QDateTime AgendaEntry::recurrenceId(void)
+	?until@AgendaRepeatRule@@QBE?AVQDateTime@@XZ @ 74 NONAME ; class QDateTime AgendaRepeatRule::until(void) const
+	?setByMonth@AgendaRepeatRule@@QAEXABV?$QList@W4Month@AgendaRepeatRule@@@@@Z @ 75 NONAME ; void AgendaRepeatRule::setByMonth(class QList<enum AgendaRepeatRule::Month> const &)
+	?qt_metacall@AgendaUtil@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 76 NONAME ; int AgendaUtil::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacast@AgendaUtil@@UAEPAXPBD@Z @ 77 NONAME ; void * AgendaUtil::qt_metacast(char const *)
+	?isNull@AgendaRepeatRule@@QBE_NXZ @ 78 NONAME ; bool AgendaRepeatRule::isNull(void) const
+	?getStaticMetaObject@AgendaUtil@@SAABUQMetaObject@@XZ @ 79 NONAME ; struct QMetaObject const & AgendaUtil::getStaticMetaObject(void)
+	??8AgendaAttendee@@QBE_NABV0@@Z @ 80 NONAME ; bool AgendaAttendee::operator==(class AgendaAttendee const &) const
+	?addCategory@AgendaEntry@@QAEXABVAgendaCategory@@@Z @ 81 NONAME ; void AgendaEntry::addCategory(class AgendaCategory const &)
+	?setLocation@AgendaEntry@@QAEXABVQString@@@Z @ 82 NONAME ; void AgendaEntry::setLocation(class QString const &)
+	?isTimedEntry@AgendaEntry@@QAE_NXZ @ 83 NONAME ; bool AgendaEntry::isTimedEntry(void)
+	?favourite@AgendaEntry@@QBEIXZ @ 84 NONAME ; unsigned int AgendaEntry::favourite(void) const
+	?entryViewCreationCompleted@AgendaUtil@@IAEXH@Z @ 85 NONAME ; void AgendaUtil::entryViewCreationCompleted(int)
+	?durationInSecs@AgendaEntry@@QBEHXZ @ 86 NONAME ; int AgendaEntry::durationInSecs(void) const
+	??1AgendaUtil@@UAE@XZ @ 87 NONAME ; AgendaUtil::~AgendaUtil(void)
+	?category@AgendaCategory@@QBE?AW4CategoryType@1@XZ @ 88 NONAME ; enum AgendaCategory::CategoryType AgendaCategory::category(void) const
+	?entryAdded@AgendaUtil@@IAEXK@Z @ 89 NONAME ; void AgendaUtil::entryAdded(unsigned long)
+	?role@AgendaAttendee@@QBE?AW4ParticipantRole@1@XZ @ 90 NONAME ; enum AgendaAttendee::ParticipantRole AgendaAttendee::role(void) const
+	?type@AgendaEntry@@QBE?AW4Type@1@XZ @ 91 NONAME ; enum AgendaEntry::Type AgendaEntry::type(void) const
+	??0AgendaEntry@@QAE@W4Type@0@@Z @ 92 NONAME ; AgendaEntry::AgendaEntry(enum AgendaEntry::Type)
+	?detach@AgendaRepeatRule@@AAEXXZ @ 93 NONAME ; void AgendaRepeatRule::detach(void)
+	?error@AgendaUtil@@QBE?AW4Error@1@XZ @ 94 NONAME ; enum AgendaUtil::Error AgendaUtil::error(void) const
+	?trUtf8@AgendaUtil@@SA?AVQString@@PBD0@Z @ 95 NONAME ; class QString AgendaUtil::trUtf8(char const *, char const *)
+	?status@AgendaEntry@@QBE?AW4Status@1@XZ @ 96 NONAME ; enum AgendaEntry::Status AgendaEntry::status(void) const
+	??0AgendaEntry@@QAE@ABV0@@Z @ 97 NONAME ; AgendaEntry::AgendaEntry(class AgendaEntry const &)
+	??4AgendaAttendee@@QAEAAV0@ABV0@@Z @ 98 NONAME ; class AgendaAttendee & AgendaAttendee::operator=(class AgendaAttendee const &)
+	?address@AgendaAttendee@@QBE?AVQString@@XZ @ 99 NONAME ; class QString AgendaAttendee::address(void) const
+	?entryDeleted@AgendaUtil@@IAEXK@Z @ 100 NONAME ; void AgendaUtil::entryDeleted(unsigned long)
+	?summary@AgendaEntry@@QBE?AVQString@@XZ @ 101 NONAME ; class QString AgendaEntry::summary(void) const
+	?priority@AgendaEntry@@QBEHXZ @ 102 NONAME ; int AgendaEntry::priority(void) const
+	?fetchById@AgendaUtil@@QAE?AVAgendaEntry@@K@Z @ 103 NONAME ; class AgendaEntry AgendaUtil::fetchById(unsigned long)
+	?setCommonName@AgendaAttendee@@QAEXABVQString@@@Z @ 104 NONAME ; void AgendaAttendee::setCommonName(class QString const &)
+	?setMethod@AgendaEntry@@QAEXW4Method@1@@Z @ 105 NONAME ; void AgendaEntry::setMethod(enum AgendaEntry::Method)
+	?setRDates@AgendaEntry@@QAEXABV?$QList@VQDate@@@@@Z @ 106 NONAME ; void AgendaEntry::setRDates(class QList<class QDate> const &)
+	?parentEntry@AgendaUtil@@QAE?AVAgendaEntry@@AAV2@@Z @ 107 NONAME ; class AgendaEntry AgendaUtil::parentEntry(class AgendaEntry &)
+	?addAttendee@AgendaEntry@@QAEXABVAgendaAttendee@@@Z @ 108 NONAME ; void AgendaEntry::addAttendee(class AgendaAttendee const &)
+	?setCompleted@AgendaUtil@@QAEXAAVAgendaEntry@@_NAAVQDateTime@@@Z @ 109 NONAME ; void AgendaUtil::setCompleted(class AgendaEntry &, bool, class QDateTime &)
+	??0AgendaCategory@@QAE@XZ @ 110 NONAME ; AgendaCategory::AgendaCategory(void)
+	?timeOffset@AgendaAlarm@@QBEHXZ @ 111 NONAME ; int AgendaAlarm::timeOffset(void) const
+	??0AgendaAttendee@@QAE@XZ @ 112 NONAME ; AgendaAttendee::AgendaAttendee(void)
+	?setAlarmSoundName@AgendaAlarm@@QAEXABVQString@@@Z @ 113 NONAME ; void AgendaAlarm::setAlarmSoundName(class QString const &)
+	?fetchEntriesInRange@AgendaUtil@@QAE?AV?$QList@VAgendaEntry@@@@VQDateTime@@0W4FilterFlags@1@@Z @ 114 NONAME ; class QList<class AgendaEntry> AgendaUtil::fetchEntriesInRange(class QDateTime, class QDateTime, enum AgendaUtil::FilterFlags)
+	?detach@AgendaAlarm@@AAEXXZ @ 115 NONAME ; void AgendaAlarm::detach(void)
+	?setWeekStart@AgendaRepeatRule@@QAEXW4Day@1@@Z @ 116 NONAME ; void AgendaRepeatRule::setWeekStart(enum AgendaRepeatRule::Day)
+	?setFavourite@AgendaEntry@@QAEXI@Z @ 117 NONAME ; void AgendaEntry::setFavourite(unsigned int)
+	?setDTStamp@AgendaEntry@@QAEXABVQDateTime@@@Z @ 118 NONAME ; void AgendaEntry::setDTStamp(class QDateTime const &)
+	?cloneEntry@AgendaUtil@@QAEKABVAgendaEntry@@W4Type@2@@Z @ 119 NONAME ; unsigned long AgendaUtil::cloneEntry(class AgendaEntry const &, enum AgendaEntry::Type)
+	?setRepeatRule@AgendaEntry@@QAEXABVAgendaRepeatRule@@@Z @ 120 NONAME ; void AgendaEntry::setRepeatRule(class AgendaRepeatRule const &)
+	?categories@AgendaEntry@@QBEABV?$QList@VAgendaCategory@@@@XZ @ 121 NONAME ; class QList<class AgendaCategory> const & AgendaEntry::categories(void) const
+	?tr@AgendaUtil@@SA?AVQString@@PBD0@Z @ 122 NONAME ; class QString AgendaUtil::tr(char const *, char const *)
+	??4AgendaRepeatRule@@QAEAAV0@ABV0@@Z @ 123 NONAME ; class AgendaRepeatRule & AgendaRepeatRule::operator=(class AgendaRepeatRule const &)
+	?setCompletedDateTime@AgendaEntry@@QAEXABVQDateTime@@@Z @ 124 NONAME ; void AgendaEntry::setCompletedDateTime(class QDateTime const &)
+	??0AgendaRepeatRule@@QAE@XZ @ 125 NONAME ; AgendaRepeatRule::AgendaRepeatRule(void)
+	?dtStamp@AgendaEntry@@QBE?AVQDateTime@@XZ @ 126 NONAME ; class QDateTime AgendaEntry::dtStamp(void) const
+	?method@AgendaEntry@@QBE?AW4Method@1@XZ @ 127 NONAME ; enum AgendaEntry::Method AgendaEntry::method(void) const
+	?type@AgendaRepeatRule@@QBE?AW4RuleType@1@XZ @ 128 NONAME ; enum AgendaRepeatRule::RuleType AgendaRepeatRule::type(void) const
+	??4AgendaGeoValue@@QAEAAV0@ABV0@@Z @ 129 NONAME ; class AgendaGeoValue & AgendaGeoValue::operator=(class AgendaGeoValue const &)
+	??0AgendaCategory@@QAE@W4CategoryType@0@@Z @ 130 NONAME ; AgendaCategory::AgendaCategory(enum AgendaCategory::CategoryType)
+	?commonName@AgendaAttendee@@QBE?AVQString@@XZ @ 131 NONAME ; class QString AgendaAttendee::commonName(void) const
+	?detach@AgendaCategory@@AAEXXZ @ 132 NONAME ; void AgendaCategory::detach(void)
+	??0AgendaGeoValue@@QAE@ABV0@@Z @ 133 NONAME ; AgendaGeoValue::AgendaGeoValue(class AgendaGeoValue const &)
+	?isWorkdaysRepeatingEntry@AgendaUtil@@SA_NABVAgendaRepeatRule@@@Z @ 134 NONAME ; bool AgendaUtil::isWorkdaysRepeatingEntry(class AgendaRepeatRule const &)
+	?setRole@AgendaAttendee@@QAEXW4ParticipantRole@1@@Z @ 135 NONAME ; void AgendaAttendee::setRole(enum AgendaAttendee::ParticipantRole)
+	?detach@AgendaAttendee@@AAEXXZ @ 136 NONAME ; void AgendaAttendee::detach(void)
+	?getLatLong@AgendaGeoValue@@QBEXAAN0@Z @ 137 NONAME ; void AgendaGeoValue::getLatLong(double &, double &) const
+	?maxTime@AgendaUtil@@SA?AVQDateTime@@XZ @ 138 NONAME ; class QDateTime AgendaUtil::maxTime(void)
+	?setCategory@AgendaCategory@@QAEXW4CategoryType@1@@Z @ 139 NONAME ; void AgendaCategory::setCategory(enum AgendaCategory::CategoryType)
+	?endTime@AgendaEntry@@QBE?AVQDateTime@@XZ @ 140 NONAME ; class QDateTime AgendaEntry::endTime(void) const
+	??9AgendaEntry@@QBE_NABV0@@Z @ 141 NONAME ; bool AgendaEntry::operator!=(class AgendaEntry const &) const
+	??0AgendaRepeatRule@@QAE@W4RuleType@0@@Z @ 142 NONAME ; AgendaRepeatRule::AgendaRepeatRule(enum AgendaRepeatRule::RuleType)
+	??9AgendaCategory@@QBE_NABV0@@Z @ 143 NONAME ; bool AgendaCategory::operator!=(class AgendaCategory const &) const
+	??0AgendaAttendee@@QAE@ABV0@@Z @ 144 NONAME ; AgendaAttendee::AgendaAttendee(class AgendaAttendee const &)
+	??0AgendaAttendee@@QAE@ABVQString@@@Z @ 145 NONAME ; AgendaAttendee::AgendaAttendee(class QString const &)
+	?importvCalendar@AgendaUtil@@QAEHABVQString@@AAVAgendaEntry@@@Z @ 146 NONAME ; int AgendaUtil::importvCalendar(class QString const &, class AgendaEntry &)
+	?instanceViewCreationCompleted@AgendaUtil@@IAEXH@Z @ 147 NONAME ; void AgendaUtil::instanceViewCreationCompleted(int)
+	??_EAgendaUtil@@UAE@I@Z @ 148 NONAME ; AgendaUtil::~AgendaUtil(unsigned int)
+	?setGeoValue@AgendaEntry@@QAEXABVAgendaGeoValue@@@Z @ 149 NONAME ; void AgendaEntry::setGeoValue(class AgendaGeoValue const &)
+	?getPreviousInstanceTimes@AgendaUtil@@QAEXAAVAgendaEntry@@AAVQDateTime@@1@Z @ 150 NONAME ; void AgendaUtil::getPreviousInstanceTimes(class AgendaEntry &, class QDateTime &, class QDateTime &)
+	?attendees@AgendaEntry@@QAEAAV?$QList@VAgendaAttendee@@@@XZ @ 151 NONAME ; class QList<class AgendaAttendee> & AgendaEntry::attendees(void)
+	?staticMetaObject@AgendaUtil@@2UQMetaObject@@B @ 152 NONAME ; struct QMetaObject const AgendaUtil::staticMetaObject
+	?entriesDeleted@AgendaUtil@@IAEXH@Z @ 153 NONAME ; void AgendaUtil::entriesDeleted(int)
+	?fetchAllEntries@AgendaUtil@@QAE?AV?$QList@VAgendaEntry@@@@W4FilterFlags@1@@Z @ 154 NONAME ; class QList<class AgendaEntry> AgendaUtil::fetchAllEntries(enum AgendaUtil::FilterFlags)
+	?setTimeOffset@AgendaAlarm@@QAEXH@Z @ 155 NONAME ; void AgendaAlarm::setTimeOffset(int)
+	??0AgendaEntry@@QAE@XZ @ 156 NONAME ; AgendaEntry::AgendaEntry(void)
+	?setPriority@AgendaEntry@@QAEXH@Z @ 157 NONAME ; void AgendaEntry::setPriority(int)
+	?setType@AgendaEntry@@QAEXW4Type@1@@Z @ 158 NONAME ; void AgendaEntry::setType(enum AgendaEntry::Type)
+	?setStartAndEndTime@AgendaEntry@@QAE_NABVQDateTime@@0@Z @ 159 NONAME ; bool AgendaEntry::setStartAndEndTime(class QDateTime const &, class QDateTime const &)
+	?deleteEntries@AgendaUtil@@QAEXAAVQDateTime@@0W4FilterFlags@1@@Z @ 160 NONAME ; void AgendaUtil::deleteEntries(class QDateTime &, class QDateTime &, enum AgendaUtil::FilterFlags)
+	?metaObject@AgendaUtil@@UBEPBUQMetaObject@@XZ @ 161 NONAME ; struct QMetaObject const * AgendaUtil::metaObject(void) const
+	?location@AgendaEntry@@QBE?AVQString@@XZ @ 162 NONAME ; class QString AgendaEntry::location(void) const
+	??8AgendaCategory@@QBE_NABV0@@Z @ 163 NONAME ; bool AgendaCategory::operator==(class AgendaCategory const &) const
+	??0AgendaCategory@@QAE@ABV0@@Z @ 164 NONAME ; AgendaCategory::AgendaCategory(class AgendaCategory const &)
+	??1AgendaGeoValue@@QAE@XZ @ 165 NONAME ; AgendaGeoValue::~AgendaGeoValue(void)
+	??4AgendaEntry@@QAEAAV0@ABV0@@Z @ 166 NONAME ; class AgendaEntry & AgendaEntry::operator=(class AgendaEntry const &)
+	??_EAgendaCategory@@UAE@I@Z @ 167 NONAME ; AgendaCategory::~AgendaCategory(unsigned int)
+	?createEntryIdListForDay@AgendaUtil@@QAE?AV?$QList@VAgendaEntry@@@@VQDateTime@@W4FilterFlags@1@@Z @ 168 NONAME ; class QList<class AgendaEntry> AgendaUtil::createEntryIdListForDay(class QDateTime, enum AgendaUtil::FilterFlags)
+	?repeatRule@AgendaEntry@@QBE?AVAgendaRepeatRule@@XZ @ 169 NONAME ; class AgendaRepeatRule AgendaEntry::repeatRule(void) const
+	??1AgendaCategory@@UAE@XZ @ 170 NONAME ; AgendaCategory::~AgendaCategory(void)
+	?deleteEntry@AgendaUtil@@QAE_NK@Z @ 171 NONAME ; bool AgendaUtil::deleteEntry(unsigned long)
+	??1AgendaAttendee@@UAE@XZ @ 172 NONAME ; AgendaAttendee::~AgendaAttendee(void)
+	?byDay@AgendaRepeatRule@@QBE?AV?$QList@W4Day@AgendaRepeatRule@@@@XZ @ 173 NONAME ; class QList<enum AgendaRepeatRule::Day> AgendaRepeatRule::byDay(void) const
+	?setLatLong@AgendaGeoValue@@QAEXNN@Z @ 174 NONAME ; void AgendaGeoValue::setLatLong(double, double)
+	?completedDateTime@AgendaEntry@@QBE?AVQDateTime@@XZ @ 175 NONAME ; class QDateTime AgendaEntry::completedDateTime(void) const
+	?setRecurrenceId@AgendaEntry@@QAEXAAVQDateTime@@@Z @ 176 NONAME ; void AgendaEntry::setRecurrenceId(class QDateTime &)
+	?store@AgendaUtil@@QAEKAAVAgendaEntry@@W4RecurrenceRange@1@VQDateTime@@@Z @ 177 NONAME ; unsigned long AgendaUtil::store(class AgendaEntry &, enum AgendaUtil::RecurrenceRange, class QDateTime)
 	?isNull@AgendaGeoValue@@QBE_NXZ @ 178 NONAME ; bool AgendaGeoValue::isNull(void) const
 
--- a/agendainterface/agendautil/eabi/agendainterfaceu.def	Wed Aug 25 14:02:13 2010 +0530
+++ b/agendainterface/agendautil/eabi/agendainterfaceu.def	Tue Aug 31 18:15:13 2010 +0530
@@ -26,7 +26,7 @@
 	_ZN10AgendaUtil24isWorkdaysRepeatingEntryERK16AgendaRepeatRule @ 25 NONAME
 	_ZN10AgendaUtil26entryViewCreationCompletedEi @ 26 NONAME
 	_ZN10AgendaUtil29instanceViewCreationCompletedEi @ 27 NONAME
-	_ZN10AgendaUtil5storeER11AgendaEntryNS_15RecurrenceRangeE @ 28 NONAME
+	_ZN10AgendaUtil5storeER11AgendaEntryNS_15RecurrenceRangeE9QDateTime @ 28 NONAME
 	_ZN10AgendaUtil7maxTimeEv @ 29 NONAME
 	_ZN10AgendaUtil7minTimeEv @ 30 NONAME
 	_ZN10AgendaUtil8entryIdsENS_11FilterFlagsE @ 31 NONAME
--- a/agendainterface/agendautil/inc/agendautil_p.h	Wed Aug 25 14:02:13 2010 +0530
+++ b/agendainterface/agendautil/inc/agendautil_p.h	Tue Aug 31 18:15:13 2010 +0530
@@ -61,7 +61,9 @@
 	AgendaUtilPrivate(AgendaUtil* calendar);
 	~AgendaUtilPrivate();
 
-	ulong store(AgendaEntry &entry, AgendaUtil::RecurrenceRange range);
+	ulong store(
+			AgendaEntry &entry, AgendaUtil::RecurrenceRange range,
+			QDateTime &instanceOriginalDateTime);
 	ulong cloneEntry(const AgendaEntry& entry, AgendaEntry::Type type);
 	
 	bool deleteEntry(ulong id);
--- a/agendainterface/agendautil/src/agendautil.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/agendainterface/agendautil/src/agendautil.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -98,11 +98,14 @@
 
 	\param entry The entry to be added/updated
 	\param range The recurrence range of entry
+	\param instanceOriginalDateTime The start time of the original instance.
 	\return ulong The local uid of the entry added/updated in the db.
 */
-ulong AgendaUtil::store(AgendaEntry &entry, AgendaUtil::RecurrenceRange range)
+ulong AgendaUtil::store(
+		AgendaEntry &entry, AgendaUtil::RecurrenceRange range,
+		QDateTime instanceOriginalDateTime)
 {
-	return d->store(entry, range);
+	return d->store(entry, range, instanceOriginalDateTime);
 }
 
 /*!
--- a/agendainterface/agendautil/src/agendautil_p.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/agendainterface/agendautil/src/agendautil_p.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -203,11 +203,14 @@
 /*!
 	To store the new entry or update the entry in the Calendar db.
 
-	\param entry The entry to be added/updated
-	\param range The recurrence range of entry
+	\param entry The entry to be added/updated.
+	\param range The recurrence range of entry.
+	\param instanceOriginalDateTime The start time of the original instance..
 	\return ulong The local uid of the entry added/updated in the db.
 */
-ulong AgendaUtilPrivate::store(AgendaEntry &entry, AgendaUtil::RecurrenceRange range)
+ulong AgendaUtilPrivate::store(
+		AgendaEntry &entry, AgendaUtil::RecurrenceRange range,
+		QDateTime &instanceOriginalDateTime)
 {
 	// Will be filled with the lUID of the new entry created.
 	TCalLocalUid localUid = 0;
@@ -269,7 +272,7 @@
 					// We are creating an exception, hence get the global Uid
 					HBufC8* guid = parentEntry->UidL().AllocLC();
 					
-					QDateTime instanceOriginalDateTime = entry.startTime();
+					
 					
 					// create new (child) entry
 					// Use original instance time for recurrenceID as this entry hasn't got one.
--- a/calendarengines/agnversit2/inc/CleanupPointerArray.inl	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarengines/agnversit2/inc/CleanupPointerArray.inl	Tue Aug 31 18:15:13 2010 +0530
@@ -35,7 +35,7 @@
 @internalTechnology
 */
 template <class T>
-inline void TCleanupPointerArray<class T>::ResetAndDestroy(TAny* aPtr)
+inline void TCleanupPointerArray<T>::ResetAndDestroy(TAny* aPtr)
 	{
 	reinterpret_cast<T *>(aPtr)->ResetAndDestroy();
 	}
--- a/calendarui/caleneditor/inc/caleneditor_p.h	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/caleneditor/inc/caleneditor_p.h	Tue Aug 31 18:15:13 2010 +0530
@@ -107,11 +107,12 @@
 	bool isNewEntry();
 	HbDataFormModelItem* allDayCheckBoxItem();
 	bool isReminderTimeForAllDayAdded();
+	bool isRepeatUntilItemAdded();
 	bool isAllDayEvent();
 	void updateReminderChoices();
 	int currentIndexOfReminderField();
 	void setCurrentIndexOfReminderField(int index);
-	void setReminderChoices();
+	int getReminderCount();
 	bool isEditRangeThisOnly();
 	bool isAllDayFieldAdded();
 	void forcedSaveEntry();
--- a/calendarui/caleneditor/inc/caleneditorcommon.h	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/caleneditor/inc/caleneditorcommon.h	Tue Aug 31 18:15:13 2010 +0530
@@ -33,6 +33,8 @@
 
 // Constants
 const int SecsInOneHour( 3600 );
+const int SecsIn15Mins( 900 );  //15 * 60 secs
+const int SecsIn30Mins( 1800 ); //30 * 60 secs
 const int MaxRowsInTextItem(10);
 const int MaxCharacterLimit(255);
 
--- a/calendarui/caleneditor/inc/caleneditorreminderfield.h	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/caleneditor/inc/caleneditorreminderfield.h	Tue Aug 31 18:15:13 2010 +0530
@@ -45,6 +45,14 @@
 		ReminderOneDayBefore,
 		ReminderTwoDaysBefore
 		};
+	enum MeetingReminderIndex
+		{
+		//Starting the enum from 1 bcoz ReminderOff of AllDayReminderIndex can be used.
+		ReminderAtStart = 1,
+		Reminder15MinsBefore,
+		Reminder30MinsBefore,
+		Reminder1HourBefore
+		};
 public:
 	CalenEditorReminderField(CalenEditorPrivate* calenEditor,
 	                         HbDataForm* form, HbDataFormModel* model,
@@ -69,6 +77,10 @@
 	void setCurrentIndex(int index);
 	void disableReminderTimeField();
 	bool isReminderTimeForAllDayAdded();
+	void UpdateReminderChoicesForSameDay(QTime startTime);
+	void setSavedMeetingReminderIndex();
+	int getReminderIndexBasedOnEntryAlarm();
+	
 private slots:
 	void handleReminderIndexChanged(int index);
 	void launchReminderTimePicker();
--- a/calendarui/caleneditor/src/caleneditor_p.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/caleneditor/src/caleneditor_p.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -1096,6 +1096,8 @@
 {
 	OstTraceFunctionEntry0( CALENEDITORPRIVATE_SAVEFROMDATETIME_ENTRY );
 	QDateTime endTime = mEditedEntry->endTime();
+	// Get the previous start date of the entry
+	QDate previousDate = mEditedEntry->startTime().date();
 	// Update the end time accordingly on UI - duration will be 60 mins
 	// bydefault only while creating new entry and if it crossed the endtime
 	if (mNewEntry && fromDateTime > endTime) {
@@ -1122,6 +1124,18 @@
 	}
 
 	updateReminderChoices();
+	// If the entry start date is been changed from past date to a future date
+	// And if the alarm set set is off change the reminder option to 
+	// 'one day before' if the option is valid
+	if (isAllDayEvent() && previousDate <= QDate::currentDate()) {
+		if(fromDateTime.date() > QDate::currentDate() && 
+			(mReminderField->currentReminderIndex() == 
+									CalenEditorReminderField::ReminderOff) && 
+			mReminderField->reminderItemsCount() >= 3) {
+			mReminderField->setCurrentIndex(
+							CalenEditorReminderField::ReminderOneDayBefore);
+		}
+	}
 	OstTraceFunctionExit0( CALENEDITORPRIVATE_SAVEFROMDATETIME_EXIT );
 }
 
@@ -1150,13 +1164,14 @@
 				 {
 					mReminderField->setReminderOff();
 		} else {
-			// Enabled implies future. If changing from future to future do not 
-			// do anything.
-			if (!mReminderField->isReminderFieldEnabled()) {
+			if (referenceDate == QDate::currentDate()) {
+				mReminderField->UpdateReminderChoicesForSameDay(mEditedEntry->startTime().time());
+			}
+			else {
 				mReminderField->setReminderChoices();
-				// Set the default alarm time 15 minutes before
-				mReminderField->setCurrentIndex(2);
 			}
+			//Set the reminder field to the previous value which was saved.
+			mReminderField->setSavedMeetingReminderIndex();
 		}
 	}
 	OstTraceFunctionExit0( CALENEDITORPRIVATE_UPDATEREMINDERCHOICES_EXIT );
@@ -1355,14 +1370,26 @@
 		// This is  to avoid conflict in the reminder time as 
 		// the index set for the normal meeting may not be valid for an allday 
 		// Set it off before doing the reminder updation for all day
-		mReminderField->setCurrentIndex(0);
+		mReminderField->setCurrentIndex(CalenEditorReminderField::ReminderOff);
 		mReminderField->updateReminderChoicesForAllDay(referenceDate);
-		// If the reminder field is enabled and it is not off 
-		// it implies default alarm day and time is being displayed.
+		// Now the reminder combox box is updated with the valid reminder options
+		// If the reminder field is enabled and it is off 
+		// it implies default alarm day and time should be displayed.
 		if (mReminderField->isReminderFieldEnabled() && 
-					mReminderField->currentReminderIndex() != 0) {
+					mReminderField->currentReminderIndex() == 
+										CalenEditorReminderField::ReminderOff) {
+			mReminderField->insertReminderTimeField();
 			// Set the default alarm for all day.
-			mReminderField->setDefaultAlarmForAllDay();
+			if(mReminderField->reminderItemsCount() > 2) {
+				// Set reminder as "One day before"
+				mReminderField->setCurrentIndex(
+								CalenEditorReminderField::ReminderOneDayBefore);
+			}else {
+				// Since the "One day before" is not valid
+				// Set the reminder "On event day"
+				mReminderField->setCurrentIndex(
+								CalenEditorReminderField::ReminderOnEventDay);
+			}
 		} else {
 			// Remove reminder time field.
 			mReminderField->removeReminderTimeField();
@@ -1378,7 +1405,7 @@
 		mReminderField->removeReminderTimeField();
 		mReminderField->setReminderChoices();
 		// Set the default alarm time 15 minutes before
-		mReminderField->setCurrentIndex(2);
+		mReminderField->setCurrentIndex(CalenEditorReminderField::Reminder15MinsBefore);
 		updateReminderChoices();
 	}
 
@@ -1695,7 +1722,9 @@
 	if (!handleAllDayToSave()) {
 		// creating an exceptional entry
 		if (!mIsChild && (mEditRange == ThisOnly)) {
-			mAgendaUtil->store(*mEditedEntry, AgendaUtil::ThisOnly);
+			mAgendaUtil->store(
+					*mEditedEntry, AgendaUtil::ThisOnly,
+					mOriginalEntry->startTime());
 		} else {
 			mAgendaUtil->store(*mEditedEntry);
 		}
@@ -1913,6 +1942,22 @@
 }
 
 /*!
+	Returns true if repeatuntil item is been added
+	Used to know if the entry is repeating. For new entries this
+	is the only way to find whether its repeating or not
+ */
+bool CalenEditorPrivate::isRepeatUntilItemAdded()
+{
+	// For exceptional entries the repeatfield will not be present
+	// So need to check if the repeat field is there or not
+	if( mRepeatField ) {
+		return mRepeatField->isRepeatUntilItemAdded();
+	}else {
+		return false;
+	}
+}
+
+/*!
 	Checks if it is an all day event or not.
  */
 bool CalenEditorPrivate::isAllDayEvent()
@@ -1956,13 +2001,11 @@
 }
 
 /*!
-	Sets the reminder choices for a non all day event.
+	Gets the reminder options count
  */
-void CalenEditorPrivate::setReminderChoices()
+int CalenEditorPrivate::getReminderCount()
 {
-    OstTraceFunctionEntry0( CALENEDITORPRIVATE_SETREMINDERCHOICES_ENTRY );
-    mReminderField->setReminderChoices();
-    OstTraceFunctionExit0( CALENEDITORPRIVATE_SETREMINDERCHOICES_EXIT );
+	return mReminderField->reminderItemsCount();
 }
 
 /*!
--- a/calendarui/caleneditor/src/caleneditorreminderfield.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/caleneditor/src/caleneditorreminderfield.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -90,6 +90,13 @@
 void CalenEditorReminderField::setReminderChoices()
 {
 	OstTraceFunctionEntry0( CALENEDITORREMINDERFIELD_SETREMINDERCHOICES_ENTRY );
+	
+	// Disconnect the slot and connect it back again at end to avoid unnecessary
+	// calls to handleReminderIndexChanged slot. Or else the slot gets called 
+	// when we add all of items to the repeat combobox.
+	mEditorForm->removeConnection(mReminderItem,
+							SIGNAL(currentIndexChanged(int)), this,
+							SLOT(handleReminderIndexChanged(int)));
 	// Create the reminder choices
 	QStringList reminderChoices;
 	reminderChoices << hbTrId("txt_calendar_setlabel_reminder_val_off")
@@ -99,15 +106,11 @@
 				<< hbTrId("txt_calendar_setlabel_reminder_val_1_hour_before");
 
 	mReminderItem->setContentWidgetData("items", reminderChoices);
-	mReminderItem->setContentWidgetData("objectName", "remainderItem");
-
-	// Build the hash map for the reminder.
-	mReminderHash[0] = -1; // OFF.
-	mReminderHash[1] = 0;
-	mReminderHash[2] = 15;
-	mReminderHash[3] = 30;
-	mReminderHash[4] = 60;
 	mReminderItem->setEnabled(true);
+	
+	mEditorForm->addConnection(mReminderItem,
+							SIGNAL(currentIndexChanged(int)), this,
+							SLOT(handleReminderIndexChanged(int)));
 	OstTraceFunctionExit0( CALENEDITORREMINDERFIELD_SETREMINDERCHOICES_EXIT );
 }
 
@@ -134,6 +137,29 @@
 }
 
 /*!
+	 Set the current reminder index with the value which was saved 
+	 before, if it is valid or else default the value to 15MinsBefore
+	 or AtTheStart whichever is appropriate
+ */
+void CalenEditorReminderField::setSavedMeetingReminderIndex()
+{
+	// Get the reminder offset value.
+	int reminderOffset =
+	mCalenEditor->editedEntry()->alarm().timeOffset();
+	// Get the index value for the reminder combo box from the hash 
+	// table. 2nd argument is defaultKey if the hash contains no item mapped to value
+	//TODO: Need to confirm the default reminder to set if none of the choices are met like in case of synch from outlook.
+	int index = mReminderHash.key(reminderOffset, Reminder15MinsBefore); 
+	
+	if (index < reminderItemsCount())
+		setCurrentIndex(index);
+	else if (reminderItemsCount() == (ReminderAtStart + 1)) //+1 because enum starts from 0.
+		setCurrentIndex(ReminderAtStart); 
+	else
+		setCurrentIndex(Reminder15MinsBefore);
+}
+
+/*!
 	 Populates reminder item with available choices to the user
 	 \param newEntry bool value to indicate if its a new entry
  */
@@ -142,7 +168,17 @@
 	OstTraceFunctionEntry0( CALENEDITORREMINDERFIELD_POPULATEREMINDERITEM_ENTRY );
 	AgendaAlarm reminder;
 	bool pastEvent =  false;
+	bool repeatingEntry = false;
+	bool sameDay = false;
 	
+	mReminderItem->setContentWidgetData("objectName", "remainderItem");
+	// Build the hash map for the reminder.
+	mReminderHash[ReminderOff] = -1; // OFF.
+	mReminderHash[ReminderAtStart] = 0;
+	mReminderHash[Reminder15MinsBefore] = 15;
+	mReminderHash[Reminder30MinsBefore] = 30;
+	mReminderHash[Reminder1HourBefore] = 60;
+	    
 	// Set reference date to start date or repeat until date accordingly to 
 	// decide whether its a past event or not.
 	QDate referenceDate;
@@ -151,6 +187,7 @@
 		referenceDate = mCalenEditor->editedEntry()->startTime().date();
 	} else {
 		referenceDate = mCalenEditor->editedEntry()->repeatRule().until().date();
+		repeatingEntry = true;
 	}
 	
 	if ((referenceDate < QDate::currentDate()) || 
@@ -163,39 +200,55 @@
 	if (mCalenEditor->isAllDayEvent()) {
 		updateReminderChoicesForAllDay(referenceDate);
 	} else {
+		if((referenceDate == QDate::currentDate())
+					&& !pastEvent) {
+			UpdateReminderChoicesForSameDay(mCalenEditor->editedEntry()->startTime().time());
+			sameDay = true;
+		}
+		else {
 		setReminderChoices();
+		}
 	}
 	// Set the default reminder value to 15 minutes 
 	if (newEntry) {
 		if (!pastEvent) {
-			mReminderItem->setContentWidgetData("currentIndex", 2);
+			int defaultIndex = Reminder15MinsBefore;
+			if (reminderItemsCount() == (ReminderAtStart + 1))  //If 15MinsBefore option is not available
+				defaultIndex = ReminderAtStart;
+		
+			setCurrentIndex(defaultIndex);
 			// Save the reminder alarm for the entry
-			reminder.setTimeOffset(mReminderHash.value(2));
+			reminder.setTimeOffset(mReminderHash.value(defaultIndex));
 			reminder.setAlarmSoundName(QString(" "));
 			// Set the reminder to the entry as well as original entry.
 			mCalenEditor->editedEntry()->setAlarm(reminder);
 			mCalenEditor->originalEntry()->setAlarm(reminder);
 		} else {
-			mReminderItem->setContentWidgetData("currentIndex", 0);
-			mReminderItem->setEnabled(false);
+			setReminderOff();
 		}
 	} else {
+        int offsetInMins = mCalenEditor->editedEntry()->alarm().timeOffset();
 		// If the alarm is not null,
 		// Check if all day event or not and then set the choices accordingly.
 		if (mCalenEditor->editedEntry()->alarm().isNull()) {
 			// Alarm is set off
-			mReminderItem->setContentWidgetData("currentIndex", ReminderOff);
+			setCurrentIndex(ReminderOff);
 			if(mReminderTimeAdded) {
 				removeReminderTimeField();
 			}
 		} else if (!mCalenEditor->isAllDayEvent()) {
-			// Get the reminder offset value.
-			int reminderOffset =
-			        mCalenEditor->editedEntry()->alarm().timeOffset();
-			// Get the index value for the reminder combo box from the hash 
-			// table.
-			int index = mReminderHash.key(reminderOffset);
-			mReminderItem->setContentWidgetData("currentIndex", index);
+			QTime currentTime = QTime::currentTime();
+
+			//TODO: Still need confirmation for proper behaviour when entry is edited after alarm has expired.
+			if (!repeatingEntry && sameDay && (currentTime.addSecs(offsetInMins * 60) >= mCalenEditor->editedEntry()->startTime().time())) {
+				setCurrentIndex(ReminderOff); //Alarm has expired already, so making it off.
+				//The slot for index 0 is not called, since after UpdateReminderChoicesForSameDay()
+				//index is 0 itself and there is no change. So explicitly calling it here.
+				handleReminderIndexChanged(0); 
+			}
+			else {
+				setSavedMeetingReminderIndex();
+			}
 		} else {
 			// Insert reminder time field and display entry's reminder time.
 			// If past then disable the field.
@@ -205,24 +258,9 @@
 			if (pastEvent && mReminderTimeAdded) {
 				mCustomReminderTimeItem->setEnabled(false);
 			}
-			QTime referenceTime(0, 0, 0);
-			// Set the appropriate reminder depending on the value of time offset.
-			reminder = mCalenEditor->editedEntry()->alarm();
-			int offsetInMins = reminder.timeOffset();
-			if (offsetInMins < 0 || offsetInMins == 0) {
-				mReminderItem->setContentWidgetData("currentIndex", ReminderOnEventDay);
-				mReminderTimeForAllDay = referenceTime.addSecs(-(offsetInMins
-						* 60));
-			} else if (offsetInMins <= numberOfMinutesInADay) {
-				mReminderItem->setContentWidgetData("currentIndex", ReminderOneDayBefore);
-				mReminderTimeForAllDay = referenceTime.addSecs(-(offsetInMins
-						* 60));
-			} else {
-				mReminderItem->setContentWidgetData("currentIndex", ReminderTwoDaysBefore);
-				offsetInMins %= (24 * 60);
-				mReminderTimeForAllDay = referenceTime.addSecs(-(offsetInMins
-						* 60));
-			}
+			// Get the appropriate reminder index depending on the value of time offset.
+			int index = getReminderIndexBasedOnEntryAlarm();
+			mReminderItem->setContentWidgetData("currentIndex", index);
 			setDisplayTime();
 		}
 		if (pastEvent) {
@@ -236,7 +274,7 @@
 }
 
 /*!
-	Triggerd from tapping on reminder item.
+	Triggered from tapping on reminder item.
 	Handles the reminder time change and updates the same in the event.
 	\param index The new index chosen in the reminder list.
  */
@@ -262,7 +300,7 @@
 			reminder.setAlarmSoundName(QString(" "));
 		}
 	} else {
-		QDateTime reminderDateTimeForAllDay; 
+		QDateTime reminderDateTimeForAllDay;
 		QDateTime
 		        startDateTimeForAllDay(
 		                               mCalenEditor->editedEntry()->startTime().date(),
@@ -278,16 +316,21 @@
 				offset = 2;
 			}
 			if(!mReminderTimeAdded) {
-				insertReminderTimeField()
-;			}
+				insertReminderTimeField();
+			}
 			// If on same day as that of the event then check if time has been 
 			// changed , if changed retain that else set default time.
 			if (offset == 0) {
 				if(mReminderTimeForAllDay == QTime(18, 0, 0, 0)) {
 					mReminderTimeForAllDay.setHMS(8, 0, 0);
-					setDisplayTime();
 				}
+			}else {
+				// For the reminder options other than ReminderOnEventDay
+				// reset the default values since the time set for one option 
+				// may not be valid for the other option
+				mReminderTimeForAllDay.setHMS(18, 0, 0, 0);
 			}
+			setDisplayTime();
 			reminderDateTimeForAllDay.setDate(
 					mCalenEditor->editedEntry()->startTime().date().addDays(
 																	-offset));
@@ -363,6 +406,78 @@
 }
 
 /*!
+	 Update the reminder choices when the meeting is on same day, 
+	 based on the time available from current time to start time of the event.
+ */
+void CalenEditorReminderField::UpdateReminderChoicesForSameDay(QTime startTime)
+{
+	QTime currentTime = QTime::currentTime();
+	int offset = currentTime.secsTo(startTime);
+
+	// Disconnect the slot and connect it back again at end to avoid unnecessary
+	// calls to handleReminderIndexChanged slot. Or else the slot gets called 
+	// when we add all of items to the repeat combobox.
+	mEditorForm->removeConnection(mReminderItem,
+							SIGNAL(currentIndexChanged(int)), this,
+							SLOT(handleReminderIndexChanged(int)));
+
+	//The event start time is within 15mins from current time of today,
+	//then we cannot have alarms "15 mins before", "30mins before" and "1 hour before"
+	if (offset <= SecsIn15Mins)
+	{
+		QStringList reminderChoices;
+		//First to clear all items, we just set items with empty list.
+		mReminderItem->setContentWidgetData("items", reminderChoices); 
+		reminderChoices << hbTrId("txt_calendar_setlabel_reminder_val_off")
+				<< hbTrId("txt_calendar_setlabel_reminder_val_at_the_start");
+		mReminderItem->setContentWidgetData("items", reminderChoices);
+	}
+	//The event start time is within half and hour from current time of today
+	//then we cannot have alarms "30mins before" and "1 hour before"
+	else if (offset <= SecsIn30Mins)
+	{
+		QStringList reminderChoices;
+		//First to clear all items, we just set items with empty list.
+		mReminderItem->setContentWidgetData("items", reminderChoices);
+		reminderChoices << hbTrId("txt_calendar_setlabel_reminder_val_off")
+				<< hbTrId("txt_calendar_setlabel_reminder_val_at_the_start")
+				<< hbTrId("txt_calendar_setlabel_reminder_val_15_minutes_befo");
+		mReminderItem->setContentWidgetData("items", reminderChoices);
+	}
+	//The event start time is within an hour of the current time of today,
+	//then cannot have alarm "1 hour before".
+	else if (offset <= SecsInOneHour)
+	{
+		QStringList reminderChoices;
+		//First to clear all items, we just set items with empty list.
+		mReminderItem->setContentWidgetData("items", reminderChoices);
+		reminderChoices << hbTrId("txt_calendar_setlabel_reminder_val_off")
+				<< hbTrId("txt_calendar_setlabel_reminder_val_at_the_start")
+				<< hbTrId("txt_calendar_setlabel_reminder_val_15_minutes_befo")
+				<< hbTrId("txt_calendar_setlabel_reminder_val_30_minutes_befo");
+		mReminderItem->setContentWidgetData("items", reminderChoices);
+	}
+	// The event start time is more than one hour from current time 
+	// then we can have all choices for alarm.
+	else
+	{
+		QStringList reminderChoices;
+		//First to clear all items, we just set items with empty list.
+		mReminderItem->setContentWidgetData("items", reminderChoices);
+		reminderChoices << hbTrId("txt_calendar_setlabel_reminder_val_off")
+				<< hbTrId("txt_calendar_setlabel_reminder_val_at_the_start")
+				<< hbTrId("txt_calendar_setlabel_reminder_val_15_minutes_befo")
+				<< hbTrId("txt_calendar_setlabel_reminder_val_30_minutes_befo")
+				<< hbTrId("txt_calendar_setlabel_reminder_val_1_hour_before");
+		mReminderItem->setContentWidgetData("items", reminderChoices);
+	}
+	mReminderItem->setEnabled(true);
+	mEditorForm->addConnection(mReminderItem,
+							SIGNAL(currentIndexChanged(int)), this,
+							SLOT(handleReminderIndexChanged(int)));
+}
+
+/*!
 	 Updates the reminder choices for an all day event.
 	 \param referenceDate to indicate past or not.
  */
@@ -372,69 +487,91 @@
 	if (!mReminderTimeAdded){
 		insertReminderTimeField();
 	}
+	// This functions rearranges the reminder options based on the date and time
+	// To avoid the unecessary call to handleReminderIndexChanged 
+	// the connection is removed.
+	mEditorForm->removeConnection(mReminderItem,
+								SIGNAL(currentIndexChanged(int)), this,
+								SLOT(handleReminderIndexChanged(int)));
+	
+	// Since the combox box is not updated as per the current datetime
+	// there can be a conflict between the previousIndex set on the combobox
+	// and the actual index. This comes while populating an existing entry.
+	// So the index has to be taken from the entry alarm 
+	
+	AgendaAlarm actualAlarm = mCalenEditor->editedEntry()->alarm();
+	// Get the actual alarm index from the entry alarm which is been set
+	int actualIndex = getReminderIndexBasedOnEntryAlarm();
+	int offsetInMins = actualAlarm.timeOffset();
+
+	// Calculate the alarm time
+	QDateTime alarmDateTime;
+	alarmDateTime.setDate(referenceDate);
+	alarmDateTime.setTime(mCalenEditor->editedEntry()->startTime().time());
+	QTime checkTime = alarmDateTime.time().addSecs(-(offsetInMins * 60));
+	alarmDateTime.setTime(checkTime);
+	
+	// The combox is updated based on the reference date which is beed passed.
+	// And the reminder time has to be set acoordingly
 	QStringList reminderChoicesForAllDay;
 	QDate tomorrow = QDate::currentDate().addDays(1);
 	QDate theDayAfterTomorrow = QDate::currentDate().addDays(2);
-	
-	// Get the previous index to retain if the alarm is valid
-	QVariant countVariant = mReminderItem->contentWidgetData("currentIndex");
-	int previousIndex = countVariant.toInt();
-	AgendaAlarm previousAlarm = mCalenEditor->editedEntry()->alarm();
-	
-	// Update the reminder choices only if the alarm set is not valid
-	// Get the alarm offset to check for the validity
-	int offset = mCalenEditor->editedEntry()->alarm().timeOffset();
-	bool update =  true;
-	
-	// Calculate the alarm time
-	QDateTime refDateTime;
-	refDateTime.setDate(referenceDate);
-	refDateTime.setTime(mCalenEditor->editedEntry()->startTime().time());
-	QTime checkTime = refDateTime.time().addSecs(-(offset * 60));
-	refDateTime.setTime(checkTime);
-	// Check for valid alarm offset
-	if(offset >= 0) {
-		// If the alarm which was already set is valid, 
-		// then dont update the reminder choices
-		if ((refDateTime > QDateTime::currentDateTime()) || 
-				(refDateTime.date() == QDate::currentDate() && (
-						refDateTime.time() > QTime::currentTime()))) {
-			update = false;
-		}		
-	}
+
 	// If the event is on a past date the default alarm will be off.
 	if (referenceDate < QDate::currentDate() || 
 			referenceDate == QDate::currentDate()) {
 		// Set reminder off for past event.
 		reminderChoicesForAllDay << hbTrId("txt_calendar_setlabel_reminder_val_off");
 		mReminderItem->setContentWidgetData(QString("items"), 
-													reminderChoicesForAllDay);
+		                                    reminderChoicesForAllDay);
 		mReminderItem->setEnabled(false);		
 		// Remove the reminder field if it was added
 		if(mReminderTimeAdded) {
 			removeReminderTimeField();
 		}
-	} else if (theDayAfterTomorrow < referenceDate || 
-			theDayAfterTomorrow == referenceDate) {
+	} else if (theDayAfterTomorrow < referenceDate) {
 		// If the event is on a future date which is two days after the current date
 		// The options are off, on event day, 1 day before and 2 days before
 		reminderChoicesForAllDay 
+			<< hbTrId("txt_calendar_setlabel_reminder_val_off")
+			<< hbTrId("txt_calendar_setlabel_reminder_val_on_event_day")
+			<< hbTrId("txt_calendar_setlabel_reminder_val_1_day_before")
+			<< hbTrId("txt_calendar_setlabel_reminder_val_2_days_before");
+		mReminderItem->setEnabled(true);
+		mCustomReminderTimeItem->setEnabled(true);
+		mReminderItem->setContentWidgetData(QString("items"), 
+		                                    reminderChoicesForAllDay);
+	} else if (theDayAfterTomorrow == referenceDate) {
+		// If the event is on a future date which is two days after the current date
+		// If the current time is before 6.00 pm (default for 2 days before)
+		// The options are off, on event day, 1 day before and 2 days before
+		if (QTime::currentTime() < QTime(18, 0, 0, 0)) {
+			reminderChoicesForAllDay 
 				<< hbTrId("txt_calendar_setlabel_reminder_val_off")
 				<< hbTrId("txt_calendar_setlabel_reminder_val_on_event_day")
 				<< hbTrId("txt_calendar_setlabel_reminder_val_1_day_before")
 				<< hbTrId("txt_calendar_setlabel_reminder_val_2_days_before");
+		}else {
+			// If the event is on a future date which is two days after the current date
+			// the current time is after 6.00 pm (default for 2 days before)
+			// If its after the default time don't show the 2 days before option
+			reminderChoicesForAllDay 
+				<< hbTrId("txt_calendar_setlabel_reminder_val_off")
+				<< hbTrId("txt_calendar_setlabel_reminder_val_on_event_day")
+				<< hbTrId("txt_calendar_setlabel_reminder_val_1_day_before");
+		}
 		mReminderItem->setEnabled(true);
 		mCustomReminderTimeItem->setEnabled(true);
 		mReminderItem->setContentWidgetData(QString("items"), 
-													reminderChoicesForAllDay);
-	} else if (QTime::currentTime() < QTime(18, 0, 0, 0)) {
+		                                    reminderChoicesForAllDay);
+	}else if (QTime::currentTime() < QTime(18, 0, 0, 0)) {
 		// If the event is on a future date which is one day after the current date
 		// and current time is before 6.00 pm.
 		// The options are off, on event day and 1 day before
 		reminderChoicesForAllDay 
-				<< hbTrId("txt_calendar_setlabel_reminder_val_off")
-				<< hbTrId("txt_calendar_setlabel_reminder_val_on_event_day")
-				<< hbTrId("txt_calendar_setlabel_reminder_val_1_day_before");
+			<< hbTrId("txt_calendar_setlabel_reminder_val_off")
+			<< hbTrId("txt_calendar_setlabel_reminder_val_on_event_day")
+			<< hbTrId("txt_calendar_setlabel_reminder_val_1_day_before");
 		mReminderItem->setEnabled(true);
 		mCustomReminderTimeItem->setEnabled(true);
 		mReminderItem->setContentWidgetData(QString("items"), 
@@ -444,52 +581,87 @@
 		// and current time is after 6.00 pm.
 		// The options are off and on event day
 		reminderChoicesForAllDay 
-				<< hbTrId("txt_calendar_setlabel_reminder_val_off")
-				<< hbTrId("txt_calendar_setlabel_reminder_val_on_event_day");
+			<< hbTrId("txt_calendar_setlabel_reminder_val_off")
+			<< hbTrId("txt_calendar_setlabel_reminder_val_on_event_day");
 		mReminderItem->setEnabled(true);
 		mCustomReminderTimeItem->setEnabled(true);
 		mReminderItem->setContentWidgetData(QString("items"), 
 		                                    reminderChoicesForAllDay);
 	}
-	// Set the proper index based on the validity of the previous index
+	// Get the count of the reminder options after the rearrangement 
+	// based on the date and time 
 	int count = reminderItemsCount();
-	// By default, in case of reminder updation, its been agreed to set 
-	// ReminderOneDayBefore even though ReminderTwoDaysBefore holds good
-	// If the ReminderOneDayBefore option is available set it or 
-	// else set it to ReminderOff
-	if(count > ReminderOneDayBefore) {
-		// Don't make the reminder off since
-		// the valid reminder options are there in the combobox
-		// So check for ReminderOff is needed
-		if (update && 
-			(previousIndex == ReminderOff || previousIndex >= ReminderOneDayBefore)) {
-			// If the index has to be updated check the previous index value
-			// And set the default reminder as 1 day before.
-			mReminderItem->setContentWidgetData("currentIndex", 
-														ReminderOneDayBefore);
-		}else {
-			// Set the previous index since the alarm is valid
-			mReminderItem->setContentWidgetData("currentIndex", previousIndex);
-			// Set the previous alarm also as the value will be changed to default value
-			// when the current index is been changed
-			mCalenEditor->editedEntry()->setAlarm(previousAlarm);
+	// Set the reminder index
+	
+	if (count <= actualIndex || 
+			alarmDateTime < QDateTime::currentDateTime() || 
+			actualIndex == ReminderOff) {
+		// This will be executed when the actual index is not 
+		// available in the combobox or the alarm time is already passed
+		// or the actual alarm is off
+		// So set it as off
+		mReminderItem->setContentWidgetData("currentIndex", ReminderOff);
+		actualAlarm = AgendaAlarm();
+		mCalenEditor->editedEntry()->setAlarm(actualAlarm);
+		removeReminderTimeField();
+	}else {
+		// Set the actual reminder index
+		mReminderItem->setContentWidgetData("currentIndex", actualIndex);
+		if( actualIndex != ReminderOff) {
+			if(!mReminderTimeAdded) {
+				insertReminderTimeField();
+			}
+			mCalenEditor->editedEntry()->setAlarm(actualAlarm);
 			// Get the alarm time from the offset
-			QTime alarmTime = refDateTime.time();
+			QTime alarmTime = alarmDateTime.time();
 			// Set the alarm time and display it on the button
 			mReminderTimeForAllDay.setHMS(
 					alarmTime.hour(),alarmTime.minute(),alarmTime.second());
 			setDisplayTime();
+		}else {
+			actualAlarm = AgendaAlarm();
+			removeReminderTimeField();
 		}
-	}else {
-		// Enters this condition if the previous index set is not valid or
-		// the index is ReminderOff
-		mReminderItem->setContentWidgetData("currentIndex", ReminderOff);
 	}
-	
+	// Connect the slot for the index change
+	mEditorForm->addConnection(mReminderItem,
+								SIGNAL(currentIndexChanged(int)), this,
+								SLOT(handleReminderIndexChanged(int)));
+
 	OstTraceFunctionExit0( CALENEDITORREMINDERFIELD_UPDATEREMINDERCHOICESFORALLDAY_EXIT );
 }
 
 /*!
+	 Gets the reminder index for all day events based on the alarm
+	 which is saved for the entry
+ */
+int CalenEditorReminderField::getReminderIndexBasedOnEntryAlarm()
+{
+	// Get the appropriate reminder index depending on the value of time offset.
+	AgendaAlarm actualAlarm = mCalenEditor->editedEntry()->alarm();
+	QTime referenceTime(0, 0, 0);
+	int index = ReminderOff;
+	int offsetInMins = actualAlarm.timeOffset();
+	if(offsetInMins == -1) {
+		index = ReminderOff;
+	}else if (offsetInMins < 0 || offsetInMins == 0) {
+		index = ReminderOnEventDay;
+		mReminderTimeForAllDay = referenceTime.addSecs(-(offsetInMins
+				* 60));
+	} else if (offsetInMins <= numberOfMinutesInADay) {
+		index = ReminderOneDayBefore;
+		mReminderTimeForAllDay = referenceTime.addSecs(-(offsetInMins
+				* 60));
+	} else {
+		index = ReminderTwoDaysBefore;
+		offsetInMins %= (24 * 60);
+		mReminderTimeForAllDay = referenceTime.addSecs(-(offsetInMins
+				* 60));
+	}
+	return index;
+}
+
+/*!
 	 Insert the reminder time field for an all day event.
  */
 void CalenEditorReminderField::insertReminderTimeField()
@@ -571,11 +743,29 @@
 	
 	HbExtendedLocale locale = HbExtendedLocale::system();
 	mTimePicker = new HbDateTimePicker(mReminderTimeForAllDay);
+	// Set the display format
 	if(locale.timeStyle() == HbExtendedLocale::Time12) {
 		mTimePicker->setDisplayFormat("hh:mm ap");	
 	}else {
 		mTimePicker->setDisplayFormat("hh:mm");
 	}
+	
+	// Check if the entry is repeating based on the repeatuntil item
+	if(!mCalenEditor->isRepeatUntilItemAdded()) {
+		int index = currentReminderIndex();
+		QDate checkDate = mCalenEditor->editedEntry()->startTime().date();
+		// Restrict the time picker to show the valid time 
+		// depending on the reminder options
+		// Take an offset of 5 mins
+		QTime minTime = QTime::currentTime().addSecs(5 * 60);
+		if(index == ReminderTwoDaysBefore &&  checkDate.addDays(-2) == QDate::currentDate()) {
+				mTimePicker->setMinimumTime(minTime);
+		}else if(index == ReminderOneDayBefore && checkDate.addDays(-1) == QDate::currentDate()) {
+				mTimePicker->setMinimumTime(minTime);
+		}else if(index == ReminderOnEventDay && checkDate == QDate::currentDate()) {
+				mTimePicker->setMinimumTime(minTime);
+		}
+	}
 	mTimePicker->setTime(mReminderTimeForAllDay);
 	popUp->setContentWidget(mTimePicker);
 	
@@ -598,7 +788,28 @@
 	if (mReminderTimeForAllDay.isValid()) {
 		// Change the time displayed to that selected by the user.
 		setDisplayTime();
-		handleReminderIndexChanged(currentReminderIndex());
+		int offset = 0;
+		if (currentReminderIndex() == ReminderOneDayBefore) {
+			offset = 1;
+		} else if (currentReminderIndex() == ReminderTwoDaysBefore) {
+			offset = 2;
+		}
+		QDateTime startDateTimeForAllDay(
+			mCalenEditor->editedEntry()->startTime().date(), QTime(0, 0, 0));
+		QDateTime reminderDateTimeForAllDay; 
+		reminderDateTimeForAllDay.setDate(
+				mCalenEditor->editedEntry()->startTime().date().addDays(
+						-offset));
+		reminderDateTimeForAllDay.setTime(mReminderTimeForAllDay);
+		int seconds =
+				reminderDateTimeForAllDay.secsTo(startDateTimeForAllDay);
+		int timeOffset = seconds / 60;
+		mCustomReminderTimeItem->setEnabled(true);
+		AgendaAlarm reminder;
+		reminder.setTimeOffset(timeOffset);
+		reminder.setAlarmSoundName(QString(" "));
+		// Set the reminder to the entry.
+		mCalenEditor->editedEntry()->setAlarm(reminder);
 	}	
 	OstTraceFunctionExit0( CALENEDITORREMINDERFIELD_SETREMINDERTIMEFORALLDAY_EXIT );
 }
--- a/calendarui/caleneditor/src/caleneditorrepeatfield.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/caleneditor/src/caleneditorrepeatfield.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -32,6 +32,7 @@
 // User Included
 #include "caleneditorrepeatfield.h"
 #include "caleneditorcustomitem.h"
+#include "caleneditorreminderfield.h"
 #include "calendateutils.h"
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
@@ -400,6 +401,18 @@
 	// the reminder choices are updated 
 	if(repeatPropertyChange || repeatUntilDate != mRepeatUntilDate) {
 		mCalenEditor->updateReminderChoices();
+		// Once the entry is changed from  non repeating to repeating 
+		// and if the alarm set is off 
+		// Then change the reminder option to the default 'one day before' 
+		// if the option is valid
+		if (mCalenEditor->isAllDayEvent() && 
+					repeatPropertyChange && mRepeatUntilItemAdded) {
+			if(!mCalenEditor->isReminderTimeForAllDayAdded() &&
+					mCalenEditor->getReminderCount() >= 3) {
+				mCalenEditor->setCurrentIndexOfReminderField(
+							CalenEditorReminderField::ReminderOneDayBefore);
+			}
+		}
 	}
 	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_HANDLEREPEATINDEXCHANGED_EXIT );
 }
@@ -523,6 +536,8 @@
 void CalenEditorRepeatField::setRepeatUntilDate()
 {
 	OstTraceFunctionEntry0( CALENEDITORREPEATFIELD_SETREPEATUNTILDATE_ENTRY );
+	//Get the previous date which was set
+	QDate previousDate = mRepeatUntilDate;
 	mRepeatUntilDate = mDatePicker->date();
 	if (mRepeatUntilDate.isValid()) {
 		HbExtendedLocale locale = HbExtendedLocale::system();
@@ -531,6 +546,18 @@
 		mCustomRepeatUntilItem->setContentWidgetData("text", dateString);
 	}
 	mCalenEditor->updateReminderChoices();
+	// If the entry's  repeatuntil date is changed from past to a future date
+	// And if the alarm set set is off 
+	// Then change the reminder option to the default 'one day before' 
+	// if the option is valid
+	if (mCalenEditor->isAllDayEvent() && previousDate <= QDate::currentDate()) {
+		if(mRepeatUntilDate > QDate::currentDate() && 
+							!mCalenEditor->isReminderTimeForAllDayAdded() &&
+							 mCalenEditor->getReminderCount() >= 3) {
+			mCalenEditor->setCurrentIndexOfReminderField(
+							CalenEditorReminderField::ReminderOneDayBefore);
+		}
+	}
 	OstTraceFunctionExit0( CALENEDITORREPEATFIELD_SETREPEATUNTILDATE_EXIT );
 }
 
--- a/calendarui/controller/src/calenviewmanager.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/controller/src/calenviewmanager.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -258,6 +258,9 @@
 	Q_ASSERT_X(mCalenMonthView, "calenviewmanager.cpp", 
 											"Unable to load calenMonth view");
 	
+	// Set the parent to delete the view once will exit the application
+	mCalenMonthView->setParent(this);
+	
 	// Setup the month view.
 	mCalenMonthView->setupView(mMonthViewDocLoader);
 	
@@ -290,6 +293,9 @@
 		qFatal("calenviewmanager.cpp : Unable to find agenda view");
 	}
 	
+	// Set the parent to delete the view once will exit the application
+	mCalenAgendaView->setParent(this);
+	
 	// Setup the agenda view
 	mCalenAgendaView->setupView(mAgendaViewDocLoader);
 	
@@ -326,6 +332,9 @@
             qFatal("calenviewmanager.cpp : Unable to find day view");
         }
         
+        // Set the parent to delete the view once will exit the application
+        mCalenDayView->setParent(this);
+        
         // Set up the day view - day view takes the ownership
         mCalenDayView->setupView(docLoader);
     }
@@ -689,6 +698,9 @@
         qFatal("calenviewmanager.cpp : Unable to find alternate agenda view");
     }
 
+    // Set the parent to delete the view once will exit the application
+    mCalenAgendaViewAlt->setParent(this);
+    
     // Setup the agenda view
     mCalenAgendaViewAlt->setupView(mAgendaViewAltDocLoader);
     OstTraceFunctionExit0( CALENVIEWMANAGER_LOADALTERNATEAGENDAVIEW_EXIT );
@@ -952,6 +964,9 @@
 	else if (mCalenAgendaView && currentview == mCalenAgendaView) {
 		mCalenAgendaView->doPopulation();
 	}
+    else if (mCalenDayView && currentview == mCalenDayView) {
+        mCalenDayView->doPopulation();
+    }
 	// Calls the emitAppReady function of CalenController. Need to emit this
 	// signal after the view is fully constructed & populated
 	// with actual data and ready to be used. So entry view & instance view
--- a/calendarui/regionalplugins/calenregionalutil/calenregionalutil.pro	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/regionalplugins/calenregionalutil/calenregionalutil.pro	Tue Aug 31 18:15:13 2010 +0530
@@ -44,7 +44,7 @@
 						./src/calenlunarinfoprovider.cpp \
 						./src/calenlunarlocalizedinfo.cpp \
 						./src/calenlunarlocalizer.cpp \
-						./src/calensolarterms.cpp \
+						./src/calensolarterms.cpp
        
        
 
--- a/calendarui/regionalplugins/calenregionalutil/eabi/calenregionalutilu.def	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/regionalplugins/calenregionalutil/eabi/calenregionalutilu.def	Tue Aug 31 18:15:13 2010 +0530
@@ -1,27 +1,41 @@
 EXPORTS
 	_ZN15TCalenLunarInfo10AnimalYearEv @ 1 NONAME
-	_ZN20CCalenLunarLocalizer10ConstructLEv @ 2 NONAME
-	_ZN20CCalenLunarLocalizer16GetExtraRowTextLER24CCalenLunarLocalizedInfo @ 3 NONAME
-	_ZN20CCalenLunarLocalizer4NewLEv @ 4 NONAME
-	_ZN20CCalenLunarLocalizer9LocalizeLER15TCalenLunarInfo @ 5 NONAME
-	_ZN20CCalenLunarLocalizerC1Ev @ 6 NONAME
-	_ZN20CCalenLunarLocalizerC2Ev @ 7 NONAME
-	_ZN20CCalenLunarLocalizerD0Ev @ 8 NONAME
-	_ZN20CCalenLunarLocalizerD1Ev @ 9 NONAME
-	_ZN20CCalenLunarLocalizerD2Ev @ 10 NONAME
-	_ZN23CCalenExtraRowFormatter26FormatExtraRowInformationLER24CCalenLunarLocalizedInfoR6RArrayINS0_6TFieldEE @ 11 NONAME
-	_ZN23CCalenExtraRowFormatter4NewLEv @ 12 NONAME
-	_ZN23CCalenExtraRowFormatterD0Ev @ 13 NONAME
-	_ZN23CCalenExtraRowFormatterD1Ev @ 14 NONAME
-	_ZN23CCalenExtraRowFormatterD2Ev @ 15 NONAME
-	_ZN23CCalenLunarInfoProvider13GetLunarInfoLERK5TTime @ 16 NONAME
-	_ZN23CCalenLunarInfoProvider4NewLER3RFs @ 17 NONAME
-	_ZN23CCalenLunarInfoProviderD0Ev @ 18 NONAME
-	_ZN23CCalenLunarInfoProviderD1Ev @ 19 NONAME
-	_ZN23CCalenLunarInfoProviderD2Ev @ 20 NONAME
-	_ZN24CCalenLunarLocalizedInfo4NewLEv @ 21 NONAME
-	_ZN24CCalenLunarLocalizedInfo8GetFieldENS_6TFieldE @ 22 NONAME
-	_ZN24CCalenLunarLocalizedInfoD0Ev @ 23 NONAME
-	_ZN24CCalenLunarLocalizedInfoD1Ev @ 24 NONAME
-	_ZN24CCalenLunarLocalizedInfoD2Ev @ 25 NONAME
+	_ZN15TCalenLunarInfo11HasFestivalEv @ 2 NONAME
+	_ZN15TCalenLunarInfo12HasSolarTermEv @ 3 NONAME
+	_ZN16CCalenSolarTerms19CheckSolarTermDateLERK9TDateTime @ 4 NONAME
+	_ZN16CCalenSolarTerms4NewLER3RFs @ 5 NONAME
+	_ZN16CCalenSolarTermsD0Ev @ 6 NONAME
+	_ZN16CCalenSolarTermsD1Ev @ 7 NONAME
+	_ZN16CCalenSolarTermsD2Ev @ 8 NONAME
+	_ZN20CCalenLunarLocalizer10ConstructLEv @ 9 NONAME
+	_ZN20CCalenLunarLocalizer16GetExtraRowTextLER24CCalenLunarLocalizedInfo @ 10 NONAME
+	_ZN20CCalenLunarLocalizer4NewLEv @ 11 NONAME
+	_ZN20CCalenLunarLocalizer9LocalizeLER15TCalenLunarInfo @ 12 NONAME
+	_ZN20CCalenLunarLocalizerC1Ev @ 13 NONAME
+	_ZN20CCalenLunarLocalizerC2Ev @ 14 NONAME
+	_ZN20CCalenLunarLocalizerD0Ev @ 15 NONAME
+	_ZN20CCalenLunarLocalizerD1Ev @ 16 NONAME
+	_ZN20CCalenLunarLocalizerD2Ev @ 17 NONAME
+	_ZN23CCalenExtraRowFormatter26FormatExtraRowInformationLER24CCalenLunarLocalizedInfoR6RArrayINS0_6TFieldEE @ 18 NONAME
+	_ZN23CCalenExtraRowFormatter4NewLEv @ 19 NONAME
+	_ZN23CCalenExtraRowFormatterD0Ev @ 20 NONAME
+	_ZN23CCalenExtraRowFormatterD1Ev @ 21 NONAME
+	_ZN23CCalenExtraRowFormatterD2Ev @ 22 NONAME
+	_ZN23CCalenLunarInfoProvider13GetLunarInfoLERK5TTime @ 23 NONAME
+	_ZN23CCalenLunarInfoProvider4NewLER3RFs @ 24 NONAME
+	_ZN23CCalenLunarInfoProviderD0Ev @ 25 NONAME
+	_ZN23CCalenLunarInfoProviderD1Ev @ 26 NONAME
+	_ZN23CCalenLunarInfoProviderD2Ev @ 27 NONAME
+	_ZN24CCalenLunarLocalizedInfo10AnimalYearEv @ 28 NONAME
+	_ZN24CCalenLunarLocalizedInfo13FullLunarDateEv @ 29 NONAME
+	_ZN24CCalenLunarLocalizedInfo13GregorianDateEv @ 30 NONAME
+	_ZN24CCalenLunarLocalizedInfo16LunarMonthAndDayEv @ 31 NONAME
+	_ZN24CCalenLunarLocalizedInfo4NewLEv @ 32 NONAME
+	_ZN24CCalenLunarLocalizedInfo8FestivalEv @ 33 NONAME
+	_ZN24CCalenLunarLocalizedInfo8GetFieldENS_6TFieldE @ 34 NONAME
+	_ZN24CCalenLunarLocalizedInfo9LunarYearEv @ 35 NONAME
+	_ZN24CCalenLunarLocalizedInfo9SolarTermEv @ 36 NONAME
+	_ZN24CCalenLunarLocalizedInfoD0Ev @ 37 NONAME
+	_ZN24CCalenLunarLocalizedInfoD1Ev @ 38 NONAME
+	_ZN24CCalenLunarLocalizedInfoD2Ev @ 39 NONAME
 
--- a/calendarui/regionalplugins/calenregionalutil/inc/calenlunarlocalizedinfo.h	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/regionalplugins/calenregionalutil/inc/calenlunarlocalizedinfo.h	Tue Aug 31 18:15:13 2010 +0530
@@ -51,13 +51,13 @@
      */
     IMPORT_C const TDesC& GetField( TField aField );
     
-    IMPORT_C const TDesC& Festival() { return iFestival; }
-    IMPORT_C const TDesC& SolarTerm() { return iSolarTerm; }
-    IMPORT_C const TDesC& FullLunarDate() { return iFullLunarDate; }
-    IMPORT_C const TDesC& LunarYear() { return iLunarYear; }    
-    IMPORT_C const TDesC& LunarMonthAndDay() { return iLunarMonthAndDay; }    
-    IMPORT_C const TDesC& AnimalYear() { return iAnimalYear; }    
-    IMPORT_C const TDesC& GregorianDate() { return iGregorianDate; }
+    IMPORT_C const TDesC& Festival();
+    IMPORT_C const TDesC& SolarTerm();
+    IMPORT_C const TDesC& FullLunarDate();
+    IMPORT_C const TDesC& LunarYear();    
+    IMPORT_C const TDesC& LunarMonthAndDay();    
+    IMPORT_C const TDesC& AnimalYear();    
+    IMPORT_C const TDesC& GregorianDate();
 
 private:
     CCalenLunarLocalizedInfo();
--- a/calendarui/regionalplugins/calenregionalutil/src/calenlunarlocalizedinfo.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/regionalplugins/calenregionalutil/src/calenlunarlocalizedinfo.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -99,3 +99,80 @@
         }
     }
 
+// -----------------------------------------------------------------------------
+// CCalenLunarLocalizedInfo::Festival
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CCalenLunarLocalizedInfo::Festival() 
+    { 
+    OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_FESTIVAL_ENTRY );
+    OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_FESTIVAL_EXIT );
+    return iFestival; 
+    }
+
+// -----------------------------------------------------------------------------
+// CCalenLunarLocalizedInfo::SolarTerm
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CCalenLunarLocalizedInfo::SolarTerm() 
+    {
+    OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_SOLARTERM_ENTRY );
+    OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_SOLARTERM_EXIT );
+    return iSolarTerm; 
+    }
+
+// -----------------------------------------------------------------------------
+// CCalenLunarLocalizedInfo::FullLunarDate
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CCalenLunarLocalizedInfo::FullLunarDate() 
+    { 
+    OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_FULLLUNARDATE_ENTRY );
+    OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_FULLLUNARDATE_EXIT );
+    return iFullLunarDate; 
+    }
+
+// -----------------------------------------------------------------------------
+// CCalenLunarLocalizedInfo::LunarYear
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CCalenLunarLocalizedInfo::LunarYear() 
+    { 
+    OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_LUNARYEAR_ENTRY );
+    OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_LUNARYEAR_EXIT );
+    return iLunarYear; 
+    }
+
+// -----------------------------------------------------------------------------
+// CCalenLunarLocalizedInfo::LunarMonthAndDay
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CCalenLunarLocalizedInfo::LunarMonthAndDay() 
+    { 
+    OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_LUNARMONTHANDDAY_ENTRY );
+    OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_LUNARMONTHANDDAY_EXIT );
+    return iLunarMonthAndDay; 
+    }
+
+// -----------------------------------------------------------------------------
+// CCalenLunarLocalizedInfo::AnimalYear
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CCalenLunarLocalizedInfo::AnimalYear()
+    { 
+    OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_ANIMALYEAR_ENTRY );
+    OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_ANIMALYEAR_EXIT );
+    return iAnimalYear; 
+    }   
+
+// -----------------------------------------------------------------------------
+// CCalenLunarLocalizedInfo::GregorianDate
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TDesC& CCalenLunarLocalizedInfo::GregorianDate() 
+    { 
+    OstTraceFunctionEntry0( CCALENLUNARLOCALIZEDINFO_GREGORIANDATE_ENTRY );
+    OstTraceFunctionExit0( CCALENLUNARLOCALIZEDINFO_GREGORIANDATE_EXIT );
+    return iGregorianDate; 
+    }
+
--- a/calendarui/regionalplugins/calenregionalutil/traces/calenlunarlocalizedinfoTraces.h	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/regionalplugins/calenregionalutil/traces/calenlunarlocalizedinfoTraces.h	Tue Aug 31 18:15:13 2010 +0530
@@ -16,6 +16,20 @@
 #define CCALENLUNARLOCALIZEDINFO_CONSTRUCTL_EXIT 0x8a002d
 #define CCALENLUNARLOCALIZEDINFO_GETFIELD_ENTRY 0x8a002e
 #define CCALENLUNARLOCALIZEDINFO_GETFIELD_EXIT 0x8a002f
+#define CCALENLUNARLOCALIZEDINFO_FESTIVAL_ENTRY 0x8a0054
+#define CCALENLUNARLOCALIZEDINFO_FESTIVAL_EXIT 0x8a0055
+#define CCALENLUNARLOCALIZEDINFO_SOLARTERM_ENTRY 0x8a0056
+#define CCALENLUNARLOCALIZEDINFO_SOLARTERM_EXIT 0x8a0057
+#define CCALENLUNARLOCALIZEDINFO_FULLLUNARDATE_ENTRY 0x8a0058
+#define CCALENLUNARLOCALIZEDINFO_FULLLUNARDATE_EXIT 0x8a0059
+#define CCALENLUNARLOCALIZEDINFO_LUNARYEAR_ENTRY 0x8a005a
+#define CCALENLUNARLOCALIZEDINFO_LUNARYEAR_EXIT 0x8a005b
+#define CCALENLUNARLOCALIZEDINFO_LUNARMONTHANDDAY_ENTRY 0x8a005c
+#define CCALENLUNARLOCALIZEDINFO_LUNARMONTHANDDAY_EXIT 0x8a005d
+#define CCALENLUNARLOCALIZEDINFO_ANIMALYEAR_ENTRY 0x8a005e
+#define CCALENLUNARLOCALIZEDINFO_ANIMALYEAR_EXIT 0x8a005f
+#define CCALENLUNARLOCALIZEDINFO_GREGORIANDATE_ENTRY 0x8a0060
+#define CCALENLUNARLOCALIZEDINFO_GREGORIANDATE_EXIT 0x8a0061
 
 
 #endif
--- a/calendarui/regionalplugins/calenregionalutil/traces/fixed_id.definitions	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/regionalplugins/calenregionalutil/traces/fixed_id.definitions	Tue Aug 31 18:15:13 2010 +0530
@@ -16,14 +16,28 @@
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARINFOPROVIDER_GETLUNARINFOL_EXIT=0x25
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARINFOPROVIDER_NEWL_ENTRY=0x1c
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARINFOPROVIDER_NEWL_EXIT=0x1d
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_ANIMALYEAR_ENTRY=0x5e
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_ANIMALYEAR_EXIT=0x5f
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_CCALENLUNARLOCALIZEDINFO_ENTRY=0x28
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_CCALENLUNARLOCALIZEDINFO_EXIT=0x29
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_CONSTRUCTL_ENTRY=0x2c
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_CONSTRUCTL_EXIT=0x2d
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_FESTIVAL_ENTRY=0x54
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_FESTIVAL_EXIT=0x55
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_FULLLUNARDATE_ENTRY=0x58
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_FULLLUNARDATE_EXIT=0x59
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_GETFIELD_ENTRY=0x2e
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_GETFIELD_EXIT=0x2f
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_GREGORIANDATE_ENTRY=0x60
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_GREGORIANDATE_EXIT=0x61
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_LUNARMONTHANDDAY_ENTRY=0x5c
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_LUNARMONTHANDDAY_EXIT=0x5d
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_LUNARYEAR_ENTRY=0x5a
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_LUNARYEAR_EXIT=0x5b
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_NEWL_ENTRY=0x26
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_NEWL_EXIT=0x27
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_SOLARTERM_ENTRY=0x56
+[TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZEDINFO_SOLARTERM_EXIT=0x57
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZER_CCALENLUNARLOCALIZER_ENTRY=0x32
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZER_CCALENLUNARLOCALIZER_EXIT=0x33
 [TRACE]TRACE_FLOW[0x8A]_CCALENLUNARLOCALIZER_CONSTRUCTL_ENTRY=0x36
--- a/calendarui/regionalplugins/lunarchinese/bwins/calenlunarchinesepluginu.def	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/regionalplugins/lunarchinese/bwins/calenlunarchinesepluginu.def	Tue Aug 31 18:15:13 2010 +0530
@@ -1,10 +1,4 @@
 EXPORTS
 	?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * ImplementationGroupProxy(int &)
-	?AnimalYear@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 2 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::AnimalYear(void)
-	?SolarTerm@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 3 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::SolarTerm(void)
-	?GregorianDate@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 4 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::GregorianDate(void)
-	?LunarMonthAndDay@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 5 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::LunarMonthAndDay(void)
-	?Festival@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 6 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::Festival(void)
-	?FullLunarDate@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 7 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::FullLunarDate(void)
-	?LunarYear@CCalenLunarLocalizedInfo@@QAEABVTDesC16@@XZ @ 8 NONAME ; class TDesC16 const & CCalenLunarLocalizedInfo::LunarYear(void)
+	
 
--- a/calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/regionalplugins/lunarchinese/src/CalenLunarChinesePlugin.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -208,7 +208,7 @@
 void CCalenLunarChinesePlugin::CustomiseMenu(HbMenu* aHbMenu)
     {
     OstTraceFunctionEntry0( CCALENLUNARCHINESEPLUGIN_CUSTOMISEMENU_ENTRY );
-    HbAction* lunarAction = new HbAction("Show Lunar Data");
+    HbAction* lunarAction = new HbAction(hbTrId("txt_calendar_opt_show_lunar_data"));
     QList<QAction*> actionList = aHbMenu->actions();     
     TInt count = actionList.count() - 1;  //To show the option "show lunar data"
                                           //as a second last action item  for all 
--- a/calendarui/views/bwins/calenviewsu.def	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/bwins/calenviewsu.def	Tue Aug 31 18:15:13 2010 +0530
@@ -206,4 +206,5 @@
 	?handleThemeChange@CalenMonthView@@AAEXXZ @ 205 NONAME ; void CalenMonthView::handleThemeChange(void)
 	?isHorizontalSwipe@CalenDayContentScrollArea@@ABE_NM@Z @ 206 NONAME ; bool CalenDayContentScrollArea::isHorizontalSwipe(float) const
 	?handleThemeChange@CalenPreviewPane@@QAEXXZ @ 207 NONAME ; void CalenPreviewPane::handleThemeChange(void)
+	?disconnectAboutToQuitEvent@CalenMonthView@@QAEXXZ @ 208 NONAME ; void CalenMonthView::disconnectAboutToQuitEvent(void)
 
--- a/calendarui/views/dayview/inc/calendaycommonheaders.h	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/dayview/inc/calendaycommonheaders.h	Tue Aug 31 18:15:13 2010 +0530
@@ -57,6 +57,11 @@
 const qreal KCalenTimeStripWidth = 1.5;
 
 /*!
+ The minimum width [un] of time strip (indicator) in event bubble (UI spec)
+ */
+const qreal KCalenMinTimeStripWidth = 1.4;
+
+/*!
  The width [un] of space beetwen event bubbles in Day View (UI spec)
  */
 const qreal KCalenSpaceBeetwenEvents = 1.5;
--- a/calendarui/views/dayview/resources/calendayeventspane.css	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/dayview/resources/calendayeventspane.css	Tue Aug 31 18:15:13 2010 +0530
@@ -1,4 +1,4 @@
 CalenDayEventsPane {
-	pref-height: expr(2*var(hb-param-text-height-secondary) + 2*var(hb-param-margin-gene-middle-vertical) + 3un);
+	pref-height: expr(2*var(hb-param-text-height-secondary) + 2*var(hb-param-margin-gene-middle-vertical) + 4.1un);
 	size-policy-vertical: fixed;
 } 
\ No newline at end of file
--- a/calendarui/views/dayview/resources/calendayhourelement.css	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/dayview/resources/calendayhourelement.css	Tue Aug 31 18:15:13 2010 +0530
@@ -1,6 +1,6 @@
 CalenDayHourElement {
 	layout: customCalendarLayout;
-	pref-height: expr(2*var(hb-param-text-height-secondary) + 2*var(hb-param-margin-gene-middle-vertical) + 3un);
+	pref-height: expr(2*var(hb-param-text-height-secondary) + 2*var(hb-param-margin-gene-middle-vertical) + 4.1un);
 	size-policy-vertical: fixed;
 }
 
@@ -25,6 +25,6 @@
 }
 
 CalenDayHourElement::bottomSpacer{ 
-	pref-height: 3un;
+	pref-height: 4.1un;
 	size-policy-vertical: expanding; 
 } 
\ No newline at end of file
--- a/calendarui/views/dayview/resources/calendayitem.css	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/dayview/resources/calendayitem.css	Tue Aug 31 18:15:13 2010 +0530
@@ -1,12 +1,12 @@
-CalenDayItem{
+CalenDayItem {
     layout: noIconLayout;
 }
 
-CalenDayItem[!eventDescription][!backgroundFrame]{
+CalenDayItem[!eventDescription][!backgroundFrame] {
     layout: noIconNoTextNoBkgLayout;
 }
 
-CalenDayItem[!eventDescription][backgroundFrame]{
+CalenDayItem[!eventDescription][backgroundFrame] {
     layout: noIconNoTextLayout;
 }
 
@@ -20,11 +20,5 @@
 }
  
 CalenDayItem::colorStripe {
-    pref-width: 1.5un;
-    size-policy-horizontal: fixed; 
+    size-policy-horizontal: fixed;
 }
-
-CalenDayItem::spacerItem{
-    pref-width: 1.5un;
-    size-policy-horizontal: expanding; 
-}
--- a/calendarui/views/dayview/src/calendaycontainer.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/dayview/src/calendaycontainer.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -247,8 +247,8 @@
     if (eventWidth - mLayoutValues.eventMargin < minWidth) {
 
         // Calculate new margin value
-        // from totalMarginSpace we need to subtract 
-        // mLayoutValues.eventMargin because first margin is always 1.5un
+        // from totalMarginSpace we need to subtract mLayoutValues.eventMargin 
+        // because first margin is always KCalenSpaceBeetwenEvents
         qreal totalMarginSpace = mLayoutValues.eventAreaWidth - minWidth
             * columns - mLayoutValues.eventMargin;
         qreal newMarginValue = totalMarginSpace / (columns - 1);
@@ -259,8 +259,8 @@
         }
         else {
             // There's not enough space
-            // New minWidth is KCalenTimeStripWidth [un] (time stripe only)
-            minWidth = KCalenTimeStripWidth * mLayoutValues.unitInPixels;
+            // New minWidth is KCalenMinTimeStripWidth [un] (time stripe only)
+            minWidth = KCalenMinTimeStripWidth * mLayoutValues.unitInPixels;
             totalMarginSpace = mLayoutValues.eventAreaWidth - minWidth * columns 
 				- mLayoutValues.eventMargin;
             newMarginValue = totalMarginSpace / (columns - 1);
@@ -360,36 +360,39 @@
  */
 void CalenDayContainer::getTimedEventLayoutValues(LayoutValues& layoutValues)
 {
-    // Get the width of content area
+    // Get the width of entire content area
     qreal contentWidth = CalenDayUtils::instance()->contentWidth();
 
-    // 1. Time column width -> eventAreaX[out]
     HbStyle style;
     HbDeviceProfile deviceProfile;
     layoutValues.unitInPixels = deviceProfile.unitValue();
 
+    // Empty right column's width
+    qreal emptyRightColumnWidth = KCalenEmptyRightColumnWidth
+        * layoutValues.unitInPixels;
+
+    // Margins between the overlapping events -> eventMargin[out]
+    layoutValues.eventMargin = KCalenSpaceBeetwenEvents
+        * layoutValues.unitInPixels;
+
+    // Start position (x) for drawing events -> eventAreaX[out]
     if (mInfo && mInfo->AlldayCount()) {
-        layoutValues.eventAreaX = KCalenAllDayEventArea * contentWidth;
+        layoutValues.eventAreaX = KCalenAllDayEventArea * (contentWidth
+            - emptyRightColumnWidth);
     }
     else {
         layoutValues.eventAreaX = 0;
     }
 
-    // 2. event area width -> eventAreaWidth[out]
-    qreal emptyRightColumnWidth = KCalenEmptyRightColumnWidth
-        * layoutValues.unitInPixels;
+    // Event area width (excluding All Day Events area)-> eventAreaWidth[out]
     layoutValues.eventAreaWidth = contentWidth - emptyRightColumnWidth
         - layoutValues.eventAreaX;
 
-    // 3. margins between the overlapping events -> eventMargin[out]
-    layoutValues.eventMargin = KCalenSpaceBeetwenEvents
-        * layoutValues.unitInPixels;
-
-    // 4. half-hour slot'h height -> slotHeight[out]
+    // Half-hour slot's height -> slotHeight[out]
     layoutValues.slotHeight = CalenDayUtils::instance()->hourElementHeight()
         / KCalenSlotsInHour;
 
-    // check if we should create absorber over some overlapping region
+    // Check if touch absorbers should be created over some overlapping regions
     layoutValues.maxColumns = layoutValues.eventAreaWidth
         / ((KCalenMinTouchableEventWidth + KCalenSpaceBeetwenEvents)
             * layoutValues.unitInPixels);
--- a/calendarui/views/dayview/src/calendaycontentscrollarea.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/dayview/src/calendaycontentscrollarea.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -321,7 +321,7 @@
         result = HbScrollArea::event(e);
         
         // Scroll to middle widget when layout request
-        if (e->type() == QEvent::LayoutRequest) {
+        if (e->type() == QEvent::LayoutRequest || e->type() == QEvent::Show) {
             scrollToMiddleWidget();
         }  
     }
--- a/calendarui/views/dayview/src/calendayitem.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/dayview/src/calendayitem.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -70,7 +70,7 @@
     mFrameMinWidth = KCalenMinEventWidth * deviceProfile.unitValue();
     mEventDescMinWidth = KCalenMinTouchableEventWidth
         * deviceProfile.unitValue();
-
+    
     // Minimum width is assured by widgetml and css, additionally called here 
     // to prevent minimum size hint caching inside effectiveSizeHint
     setMinimumWidth(stripeWidth);
@@ -111,10 +111,6 @@
 
         mUpdated = true;
     }
-
-    //TODO: check if needed
-    //repolish(); 
-    //HbAbstractViewItem::updateChildItems();
 }
 
 
@@ -215,10 +211,15 @@
 
     qreal width = rect().width();
 
+    HbDeviceProfile deviceProfile;
     if (width < mEventDescMinWidth) {
+        mColorStripe->setPreferredWidth(KCalenMinTimeStripWidth
+            * deviceProfile.unitValue());
         mEventDesc->hide();
     }
     else {
+        mColorStripe->setPreferredWidth(KCalenTimeStripWidth
+            * deviceProfile.unitValue());
         mEventDesc->show();
     }
 
--- a/calendarui/views/dayview/src/calendayutils.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/dayview/src/calendayutils.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -203,7 +203,7 @@
     qreal textHeight = 0.0;
     qreal verticalSpacing = 0.0;
         
-    qreal bottomSpacer = 3.0 * unitInPixels;
+    qreal bottomSpacer = 4.1 * unitInPixels;
     style.parameter(QString("hb-param-text-height-secondary"), textHeight, 
         deviceProfile);
     style.parameter(QString("hb-param-margin-gene-middle-vertical"), 
--- a/calendarui/views/dayview/src/calendayview.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/dayview/src/calendayview.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -407,7 +407,7 @@
     // Set the heading
 
     // Append the date which is formatted as per the locale   
-    mHeadingLabel->setHeading(hbTrId("txt_calendar_subhead_1_2").arg(dayString).arg(
+    mHeadingLabel->setHeading(QString("%1 %2").arg(dayString).arg(
         systemLocale.format(mDate.date(), r_qtn_date_usual_with_zero)));
 
     HbEffect::start(mHeadingLabel, "fadeIn");
--- a/calendarui/views/eabi/calenviewsu.def	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/eabi/calenviewsu.def	Tue Aug 31 18:15:13 2010 +0530
@@ -267,4 +267,5 @@
 	_ZN21CalenThickLinesDrawer17handleThemeChangeEv @ 266 NONAME
 	_ZN16CalenPreviewPane17handleThemeChangeEv @ 267 NONAME
 	_ZNK25CalenDayContentScrollArea17isHorizontalSwipeEf @ 268 NONAME
+	_ZN14CalenMonthView26disconnectAboutToQuitEventEv @ 269 NONAME
 
--- a/calendarui/views/inc/calenagendaviewwidget.h	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/inc/calenagendaviewwidget.h	Tue Aug 31 18:15:13 2010 +0530
@@ -118,11 +118,6 @@
      */
     bool isAllDayIcon();
     
-    /**
-    * @brief return true if location is present
-    */
-   bool isLocationData();
-
         
     
     
@@ -381,7 +376,6 @@
 	bool mIconCheck; 
 	bool mNextEntry;
 	bool mLeftAllDayIcon;
-	bool mLocationData;
 
 };
 
--- a/calendarui/views/inc/caleneventlistviewitem.h	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/inc/caleneventlistviewitem.h	Tue Aug 31 18:15:13 2010 +0530
@@ -26,7 +26,6 @@
 {
     Q_OBJECT
     Q_PROPERTY(bool leftAllDayIcon READ hasAllDayIcon WRITE setAllDayLeftIcon)
-    Q_PROPERTY(bool locationEntry READ locationEntryLayout WRITE setLocationEntry)
 
 public:
     /**
@@ -60,19 +59,9 @@
      */
     void setAllDayLeftIcon(bool icon = false);
     
-    /**
-    * @brief sets location entry status 
-    */
-    void setLocationEntry(bool icon);
-    
-    /**
-    * @brief check if location is present
-    */
-    bool locationEntryLayout();
 private:  
     CalenAgendaViewWidget* mParent; 
     bool mAllDayIcon ;
-    bool mLocationEntry;
 };
 
 #endif      // __CALEN_EVENT_LIST_VIEW_ITEM_H__
--- a/calendarui/views/resources/caleneventlistviewitem.css	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/resources/caleneventlistviewitem.css	Tue Aug 31 18:15:13 2010 +0530
@@ -1,27 +1,11 @@
-CalenEventListViewItem[leftAllDayIcon="false"]:portrait{
+CalenEventListViewItem[leftAllDayIcon="false"]{
 	layout: custom;
 }
 
-CalenEventListViewItem[leftAllDayIcon="false"]:landscape{
-    layout: custom;
-}
-
-CalenEventListViewItem[leftAllDayIcon="true"]:portrait{
+CalenEventListViewItem[leftAllDayIcon="true"]{
 	layout: custom-subjecticon;
 }
 
-CalenEventListViewItem[leftAllDayIcon="true"]:landscape{
-    layout: custom-subjecticon;
-}
-
-
-CalenEventListViewItem[locationEntry="true"]:portrait{
-	layout: custom-locationentry;
-}
-
-CalenEventListViewItem[locationEntry="true"]:landscape{
-    layout: custom-locationentry;
-}
 
 
 CalenEventListViewItem::icon-1{
@@ -50,6 +34,7 @@
 }
 
 CalenEventListViewItem::text-1{
+		top: -var(hb-param-margin-gene-top);
 		left: -var(hb-param-margin-gene-left);
     font-variant: secondary;
 		text-height: var(hb-param-text-height-secondary);
@@ -61,19 +46,8 @@
 CalenEventListViewItem::text-2{
 	top: -var(hb-param-margin-gene-top);
 		right: var(hb-param-margin-gene-middle-horizontal);
-	   left: -var(hb-param-margin-gene-middle-horizontal);
-    font-variant: primary;
-    text-height: var(hb-param-text-height-primary);
-    text-align: left;
- 
-}
-
-
-CalenEventListViewItem::text-2[locationEntry="true"]{
-		top: -var(hb-param-margin-gene-top);
-	  bottom: var(hb-param-margin-gene-bottom);
-		right: var(hb-param-margin-gene-middle-horizontal);
 	  left: -var(hb-param-margin-gene-middle-horizontal);
+	   bottom:var(hb-param-margin-gene-middle-vertical); 
     font-variant: primary;
     text-height: var(hb-param-text-height-primary);
     text-align: left;
@@ -82,7 +56,7 @@
 
 
 CalenEventListViewItem::text-3{
-    top: -var(hb-param-margin-gene-middle-vertical);
+      
 		right: var(hb-param-margin-gene-middle-horizontal);
     bottom: var(hb-param-margin-gene-bottom);
     font-variant: secondary;
--- a/calendarui/views/resources/caleneventlistviewitem.widgetml	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/resources/caleneventlistviewitem.widgetml	Tue Aug 31 18:15:13 2010 +0530
@@ -1,15 +1,15 @@
 <hbwidget version="0.1" type="CalenEventListViewItem">
 	<layout name="custom" type="mesh">
-				<meshitem src="text-1" srcEdge="TOP" dst="text-2" dstEdge="TOP"/>
-				<meshitem src="text-1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
+	<meshitem src="text-1" srcEdge="TOP" dst="" dstEdge="TOP"/>
+	<meshitem src="text-1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
   	
-				<meshitem src="text-2" srcEdge="TOP" dst="" dstEdge="TOP"/>
-				<meshitem src="text-2" srcEdge="LEFT" dst="text-1" dstEdge="RIGHT"/>
-				<meshitem src="text-2" srcEdge="RIGHT" dst="icon-2" dstEdge="LEFT"/>							
-				
-				<meshitem src="text-3" srcEdge="LEFT" dst="text-2" dstEdge="LEFT"/>
-        <meshitem src="text-3" srcEdge="TOP" dst="text-2" dstEdge="BOTTOM"/>
- 				<meshitem src="text-3" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
+	<meshitem src="text-2" srcEdge="TOP" dst="" dstEdge="TOP"/>
+	<meshitem src="text-2" srcEdge="LEFT" dst="text-1" dstEdge="RIGHT"/>
+	<meshitem src="text-2" srcEdge="RIGHT" dst="icon-2" dstEdge="LEFT"/>							
+	<meshitem src="text-2" srcEdge="BOTTOM" dst="text-3" dstEdge="TOP"/>
+	
+	<meshitem src="text-3" srcEdge="LEFT" dst="text-2" dstEdge="LEFT"/>
+ 	<meshitem src="text-3" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
         <meshitem src="text-3" srcEdge="RIGHT" dst="icon-4" dstEdge="LEFT"/>
         
         
@@ -18,13 +18,15 @@
       		<meshitem src="text-4" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
    			
         
-        <meshitem src="icon-3" srcEdge="TOP" dst="text-2" dstEdge="TOP"/>
+        
+        <meshitem src="icon-3" srcEdge="CENTERV" dst="text-2" dstEdge="CENTERV"/>
         <meshitem src="icon-3" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
         
-        <meshitem src="icon-2" srcEdge="TOP" dst="text-2" dstEdge="TOP"/>
+        
+        <meshitem src="icon-2" srcEdge="CENTERV" dst="text-2" dstEdge="CENTERV"/>
         <meshitem src="icon-2" srcEdge="RIGHT" dst="icon-3" dstEdge="LEFT"/>
         
-        <meshitem src="icon-4" srcEdge="TOP" dst="text-3" dstEdge="TOP"/>
+        <meshitem src="icon-4" srcEdge="CENTERV" dst="text-3" dstEdge="CENTERV"/>
         <meshitem src="icon-4" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
    
 	</layout>
@@ -40,38 +42,20 @@
 
 							
 			  <meshitem src="text-3" srcEdge="LEFT" dst="text-2" dstEdge="LEFT"/>
-        <meshitem src="text-3" srcEdge="TOP" dst="text-2" dstEdge="BOTTOM"/>
-        <meshitem src="text-3" srcEdge="RIGHT" dst="icon-4" dstEdge="LEFT"/>
+       <meshitem src="text-2" srcEdge="BOTTOM" dst="text-3" dstEdge="TOP"/>
+       <meshitem src="text-3" srcEdge="RIGHT" dst="icon-4" dstEdge="LEFT"/>
         <meshitem src="text-3" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
         
-        <meshitem src="icon-3" srcEdge="TOP" dst="text-2" dstEdge="TOP"/>
+        <meshitem src="icon-3" srcEdge="CENTERV" dst="text-2" dstEdge="CENTERV"/>
         <meshitem src="icon-3" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
         
-        <meshitem src="icon-2" srcEdge="TOP" dst="text-2" dstEdge="TOP"/>
+        <meshitem src="icon-2" srcEdge="CENTERV" dst="text-2" dstEdge="CENTERV"/>
         <meshitem src="icon-2" srcEdge="RIGHT" dst="icon-3" dstEdge="LEFT"/>
         
-        <meshitem src="icon-4" srcEdge="TOP" dst="text-3" dstEdge="TOP"/>
+        <meshitem src="icon-4" srcEdge="CENTERV" dst="text-3" dstEdge="CENTERV"/>
         <meshitem src="icon-4" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
        
 	</layout>
 	
 	
-	<layout name="custom-locationentry" type="mesh">
-				   
-        <meshitem src="icon-1" srcEdge="LEFT" dst="" dstEdge="LEFT"/>
-        <meshitem src="icon-1" srcEdge="TOP" dst="text-2" dstEdge="TOP"/>
-         	
-				<meshitem src="text-2" srcEdge="TOP" dst="" dstEdge="TOP"/>
-				<meshitem src="text-2" srcEdge="LEFT" dst="icon-1" dstEdge="RIGHT"/>
-				<meshitem src="text-2" srcEdge="RIGHT" dst="icon-2" dstEdge="LEFT"/>
-				<meshitem src="text-2" srcEdge="BOTTOM" dst="" dstEdge="BOTTOM"/>
-        
-        <meshitem src="icon-3" srcEdge="TOP" dst="text-2" dstEdge="TOP"/>
-        <meshitem src="icon-3" srcEdge="RIGHT" dst="" dstEdge="RIGHT"/>
-        
-        <meshitem src="icon-2" srcEdge="TOP" dst="text-2" dstEdge="TOP"/>
-        <meshitem src="icon-2" srcEdge="RIGHT" dst="icon-3" dstEdge="LEFT"/>
-        
-       
-	</layout>
    </hbwidget> 
\ No newline at end of file
--- a/calendarui/views/src/calenagendaviewwidget.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/src/calenagendaviewwidget.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -1306,16 +1306,12 @@
      entry = mInstanceArray[mIndex];
      
      mLeftAllDayIcon = false;
-     mLocationData = false;
      
      if(!entry.isTimedEntry() || CalenAgendaUtils::isAlldayEvent(entry)){
          //all day icon is not there if its a timed entry
          mLeftAllDayIcon = true;
          }
-  
-     if (!entry.location().isEmpty()) {
-         mLocationData = true ;
-         }
+     
      //check if shift to next entry
     if(mNextEntry)
         mIndex++;     
@@ -1332,13 +1328,4 @@
     return mLeftAllDayIcon;
     }
 
-// ----------------------------------------------------------------------------
-// CalenAgendaViewWidget::isLocationData
-// return true  if location entry is present
-// ----------------------------------------------------------------------------
-//
-bool CalenAgendaViewWidget::isLocationData()
-    {
-    return mLocationData;
-    }
 // End of file	--Don't remove this.
--- a/calendarui/views/src/caleneventlistviewitem.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/src/caleneventlistviewitem.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -31,7 +31,7 @@
 // ----------------------------------------------------------------------------
 // 
 CalenEventListViewItem::CalenEventListViewItem(CalenAgendaViewWidget *parent) :
-HbListViewItem(parent),mAllDayIcon(false),mLocationEntry(false),mParent(parent)
+HbListViewItem(parent),mParent(parent),mAllDayIcon(false)
 {
     OstTraceFunctionEntry0( CALENEVENTLISTVIEWITEM_CALENEVENTLISTVIEWITEM_ENTRY );
     
@@ -76,7 +76,6 @@
         {
         mParent->checkEntryIcons();
         mAllDayIcon = mParent->isAllDayIcon();
-        mLocationEntry =  mParent->isLocationData();
         }
     
     HbListViewItem::updateChildItems();
@@ -104,27 +103,4 @@
     mAllDayIcon = icon;
     }
 
-// ----------------------------------------------------------------------------
-// CalenEventListViewItem::hasAllDayIcon
-// check if location entry is there in item
-// ----------------------------------------------------------------------------
-// 
-bool CalenEventListViewItem::locationEntryLayout()
-    {
-    if(mAllDayIcon && !mLocationEntry)
-        return true;
-    else
-        return false;
-    }
-
-// ----------------------------------------------------------------------------
-// CalenEventListViewItem::setAllDayLeftIcon
-// set the location entry status 
-// ----------------------------------------------------------------------------
-// 
-void CalenEventListViewItem::setLocationEntry(bool icon)
-    {
-    mLocationEntry = icon;
-    }
-
 // End of file
--- a/calendarui/views/src/calenmonthview.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/src/calenmonthview.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -589,12 +589,12 @@
 				mPrevRegionalInfo = NULL;
 			}
 			if (mCurrRegionalInfo) {
-				mPrevPaneLayout->removeItem(mCurrRegionalInfo);
+				mCurrPaneLayout->removeItem(mCurrRegionalInfo);
 				mCurrRegionalInfo->hide();
 				mCurrRegionalInfo = NULL;
 			}
 			if (mNextRegionalInfo) {
-				mPrevPaneLayout->removeItem(mNextRegionalInfo);
+				mNextPaneLayout->removeItem(mNextRegionalInfo);
 				mNextRegionalInfo->hide();
 				mNextRegionalInfo = NULL;
 			}
--- a/calendarui/views/src/calenpreviewpane.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/calendarui/views/src/calenpreviewpane.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -21,6 +21,7 @@
 #include <qfont.h>
 #include <qicon.h>
 #include <qpainter.h>
+#include <qevent.h>
 #include <hblabel.h>
 #include <hbmainwindow.h>
 #include <hbframeitem.h>
@@ -127,6 +128,7 @@
 	// Scroll contents to zero position before we display to the user
 	// if it was scrolling already or timer was running
 	mNumOfScrolls = 0;
+	mScrollDuration = 0;
 	stopScrolling();
 	
 	mDate = date;
@@ -299,7 +301,13 @@
 		OstTraceFunctionExit0( CALENPREVIEWPANE_STARTAUTOSCROLL_EXIT );
 		return;
 	}
-
+	
+	// Stop the timer
+	mTwoSecTimer->stop();
+	
+	// Set the proper scroll direction
+	mScrollDirection = up;
+	
 	// Start the 2 seconds timer
 	mTwoSecTimer->setSingleShot(true);
 	connect(mTwoSecTimer, SIGNAL(timeout()), this, SLOT(onTwoSecondsTimeout()));
@@ -331,13 +339,13 @@
 	}
 	
     // Start the scrolling in the proper direction
-	if (mScrollDirection == up) {
+	if (mScrollDirection == up && mScrollDuration) {
 		// Start scrolling upwards
 		mScrollDirection = down;
 		mNumOfScrolls++;
 		QPointF targetPos(0.0, -mHtDiff);
         scrollContentsTo(-targetPos, mScrollDuration * 1000);
-	} else if (mScrollDirection == down) {
+	} else if (mScrollDirection == down && mScrollDuration) {
 		mScrollDirection = up;
 		mNumOfScrolls++;
 		// Start scrolling downwards
@@ -438,6 +446,9 @@
         if (tapGesture && tapGesture->state() == Qt::GestureFinished) {
             	HbInstantFeedback::play(HbFeedback::Basic);
                 // Preview pane tapped
+            	// Stop the scrolling first
+            	stopScrolling();
+            	// Issue command to launch agenda view
                 mServices.IssueCommandL(ECalenAgendaView);
                 mView->disconnectAboutToQuitEvent();
                 event->accept(Qt::TapGesture);
@@ -466,12 +477,16 @@
 {
     OstTraceFunctionEntry0( CALENPREVIEWPANE_STOPSCROLLING_ENTRY );
     
-	if (isScrolling() || mTwoSecTimer->isActive()) {
+    mTwoSecTimer->stop();
+	if (isScrolling()) {
+        mNumOfScrolls = 0; // required so that timer will not get started again in 
+        // scrollingFinished() slot
+        // Stop the scrolling by sending the foucs out event
+        QFocusEvent* focusEvent = new QFocusEvent(QFocusEvent::FocusOut, Qt::MouseFocusReason);
+        focusOutEvent(focusEvent); 
+        
+        // Set the contents position to zero
 		scrollContentsTo(QPointF(0.0,0.0));
-		
-		// Call pan gesture with zero delta just to stop the scfrolling 
-		HbScrollArea::panGesture(QPointF(0.0,0.0));
-		mTwoSecTimer->stop();
 	}
 	
 	OstTraceFunctionExit0( CALENPREVIEWPANE_STOPSCROLLING_EXIT );
--- a/clock/clockui/clockalarmeditor/src/clockalarmeditor.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/clock/clockui/clockalarmeditor/src/clockalarmeditor.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -224,6 +224,10 @@
 		   alarmDayIndex -= KDaysInWeek;
 		}
 	}
+	
+	if(mAlarmId) {
+		mAlarmClient.deleteAlarm(mAlarmId);
+	}
 
 	setAlarm(
 			mAlarmTimeItem->contentWidgetData("text").toString(),
@@ -245,6 +249,9 @@
 void ClockAlarmEditor::handleDeleteAction()
 {
 	OstTraceFunctionEntry0( CLOCKALARMEDITOR_HANDLEDELETEACTION_ENTRY );
+	if(mAlarmId) {
+		mAlarmClient.deleteAlarm(mAlarmId);
+	}
 	closeAlarmEditor();
 	OstTraceFunctionExit0( CLOCKALARMEDITOR_HANDLEDELETEACTION_EXIT );
 }
@@ -696,7 +703,6 @@
 	// get the alarm details and fill it in mAlarmInfo.
 	if (mAlarmId) {
 		mAlarmClient.getAlarmInfo(mAlarmId, mAlarmInfo);
-		mAlarmClient.deleteAlarm(mAlarmId);
 	}
 	
 	// Set the value for previous alarm time.
--- a/clock/clockui/clockviews/src/clockworldview.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/clock/clockui/clockviews/src/clockworldview.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -660,25 +660,21 @@
 		}
 	}
 	else if ( hours ){
-		if(hours == 1 ) {
-			displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_hr");
-			offsetString = displayFormat.arg(hours);
-			offsetDifference += offsetString;
+		if(hours == 1) {
+			displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_hr",hours);
+			offsetDifference += displayFormat;
 		}
 		else {
-			displayFormat = hbTrId("txt_clock_dblist_val_1_hrs");
-			offsetString = displayFormat.arg(hours);
-			offsetDifference += offsetString;
+			displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_hr",hours);
+			offsetDifference += displayFormat;
 		}
 	}
 	else if (minutes){
-		displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_mins");
-		offsetString = displayFormat.arg(minutes);
-		offsetDifference += offsetString;
+		displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_mins",minutes);
+		offsetDifference += displayFormat;
 	} else {
-		displayFormat = hbTrId("txt_clock_dblist_val_1_hrs");
-		offsetString = displayFormat.arg(0);
-		offsetDifference += offsetString;
+		displayFormat = hbTrId("txt_clock_dblist_daily_val_ln_hr",0);
+		offsetDifference += displayFormat;
 	}
 	displayString.append(offsetDifference);
 
--- a/organizer_plat/agenda_interface_api/inc/agendautil.h	Wed Aug 25 14:02:13 2010 +0530
+++ b/organizer_plat/agenda_interface_api/inc/agendautil.h	Tue Aug 31 18:15:13 2010 +0530
@@ -21,13 +21,13 @@
 // System includes
 #include <QObject>
 #include <QList>
+#include <QDateTime>
 
 // User includes
 #include "agendaentry.h"
 #include "agendainterfacedefines.h"
 
 // Forward declarations
-class QDateTime;
 class AgendaUtilPrivate;
 
 class XQCALENDAR_EXPORT AgendaUtil : public QObject
@@ -72,7 +72,8 @@
 	AgendaUtil(QObject* parent = 0);
 	~AgendaUtil();
 
-	ulong store(AgendaEntry &entry, AgendaUtil::RecurrenceRange range = ThisAndAll);
+	ulong store(AgendaEntry &entry, AgendaUtil::RecurrenceRange range = ThisAndAll,
+			QDateTime instanceOriginalDateTime = QDateTime());
 	ulong cloneEntry(const AgendaEntry& entry, AgendaEntry::Type type);
 	bool deleteEntry(ulong id);
 	void deleteRepeatedEntry(
--- a/organizer_plat/agenda_interface_api/tsrc/unittest_agendautil/src/unittest_agendautil.cpp	Wed Aug 25 14:02:13 2010 +0530
+++ b/organizer_plat/agenda_interface_api/tsrc/unittest_agendautil/src/unittest_agendautil.cpp	Tue Aug 31 18:15:13 2010 +0530
@@ -51,6 +51,8 @@
 	void test_fetchEntriesInRange();
 	void test_cloneEntry();
 	void test_todoCompleted();
+	void test_createExceptionalEntryWithSubjectChange();
+	void test_createExceptionalEntryWithStartTimeChange();
 
 private:
 	int createMultipleEntries();
@@ -605,6 +607,153 @@
 	unCompletedTodo();
 }
 
+/*
+	Test the api AgendaUtil::store for exceptional entry.
+ */
+void TestAgendaUtil::test_createExceptionalEntryWithSubjectChange()
+{
+	// Test case setup.
+	
+	// Clean up all the entries.
+	QDateTime startRange(QDate(1900, 01, 1), QTime(0, 0, 0, 0));
+	QDateTime endRange(QDate(2100, 12, 30), QTime(23, 59, 59, 0));
+	mAgendaUtil->deleteEntries(startRange,endRange);
+	
+	// Start the timer as the above operation is asynchronous
+	if (!mWait) {
+		QT_TRAP_THROWING(mWait = new (ELeave) CActiveSchedulerWait;);
+		if (!mWait->IsStarted()) {
+			mWait->Start();
+		}
+	}
+
+	// Create the repeating entry.
+	AgendaEntry entry;
+	entry.setType(AgendaEntry::TypeAppoinment);
+	entry.setSummary("Test case");
+	QDateTime startTime(QDate(2010,1,1),QTime(8,0,0,0));
+	QDateTime endTime(QDate(2010,1,1),QTime(9,0,0,0));
+	
+	entry.setStartAndEndTime(
+			startTime,
+			endTime);
+	
+	AgendaRepeatRule repeatRule;
+	repeatRule.setType(AgendaRepeatRule::DailyRule);
+	repeatRule.setRepeatRuleStart(startTime);
+	QDateTime until(QDate(2010, 2, 3));
+	repeatRule.setUntil(until);
+	repeatRule.setInterval(1);
+	entry.setRepeatRule(repeatRule);
+
+	ulong id = mAgendaUtil->store(entry);
+	
+	// Get the instance and create the exceptional entry by changing the subject
+	AgendaEntry savedEntry = mAgendaUtil->fetchById(id);
+	QList<AgendaEntry> entriesRetrieved =
+			mAgendaUtil->fetchEntriesInRange(
+					QDateTime(QDate(2010, 1, 2), QTime(8, 0, 0, 0)),
+					QDateTime(QDate(2010, 1, 2), QTime(9, 0, 0, 0)));
+	
+	int numOfEntriesRetrieved = entriesRetrieved.count();
+	AgendaEntry modifiedEntry = entriesRetrieved.first();
+	// Verify
+	QVERIFY(id == modifiedEntry.id());
+	
+	modifiedEntry.setSummary("Test case Exceptional");
+	
+	// Run the test case
+	ulong newId = mAgendaUtil->store(
+			modifiedEntry, AgendaUtil::ThisOnly, modifiedEntry.startTime());
+	
+	// Verify.
+	QVERIFY(id != newId);
+	
+	entriesRetrieved.clear();
+	
+	// Get the exceptional entry.
+	AgendaEntry exceptionalEntry = mAgendaUtil->fetchById(newId);
+	
+	// Verify.
+	QCOMPARE(exceptionalEntry.summary(), modifiedEntry.summary());
+	QVERIFY(exceptionalEntry.recurrenceId() == modifiedEntry.startTime());
+}
+
+/*!
+	Test the api AgendaUtil::store for exceptional entry.
+ */
+void TestAgendaUtil::test_createExceptionalEntryWithStartTimeChange()
+{
+	// Test case setup.
+	
+	// Clean up all the entries.
+	QDateTime startRange(QDate(1900, 01, 1), QTime(0, 0, 0, 0));
+	QDateTime endRange(QDate(2100, 12, 30), QTime(23, 59, 59, 0));
+	mAgendaUtil->deleteEntries(startRange,endRange);
+	
+	// Start the timer as the above operation is asynchronous
+	if (!mWait) {
+		QT_TRAP_THROWING(mWait = new (ELeave) CActiveSchedulerWait;);
+		if (!mWait->IsStarted()) {
+			mWait->Start();
+		}
+	}
+
+	QList<AgendaEntry> allEntries = mAgendaUtil->fetchAllEntries();
+	int count = allEntries.count();
+	
+	// Create the repeating entry.
+	AgendaEntry entry;
+	entry.setType(AgendaEntry::TypeAppoinment);
+	entry.setSummary("Test case");
+	QDateTime startTime(QDate(2010,2,1),QTime(8,0,0,0));
+	QDateTime endTime(QDate(2010,2,1),QTime(9,0,0,0));
+	
+	entry.setStartAndEndTime(startTime, endTime);
+	
+	AgendaRepeatRule repeatRule;
+	repeatRule.setType(AgendaRepeatRule::DailyRule);
+	repeatRule.setRepeatRuleStart(startTime);
+	QDateTime until(QDate(2010, 3, 3));
+	repeatRule.setUntil(until);
+	repeatRule.setInterval(1);
+	entry.setRepeatRule(repeatRule);
+
+	ulong id = mAgendaUtil->store(entry);
+	
+	// Get the instance and create the exceptional entry by changing the subject
+	AgendaEntry savedEntry = mAgendaUtil->fetchById(id);
+	QList<AgendaEntry> entriesRetrieved =
+			mAgendaUtil->fetchEntriesInRange(
+					QDateTime(QDate(2010, 2, 2), QTime(8, 0, 0, 0)),
+					QDateTime(QDate(2010, 2, 2), QTime(9, 0, 0, 0)));
+	
+	int numOfEntriesRetrieved = entriesRetrieved.count();
+	AgendaEntry modifiedEntry = entriesRetrieved.first();
+	AgendaEntry originalEntry = modifiedEntry;
+	// Verify
+	QVERIFY(id == modifiedEntry.id());
+	
+	QDateTime modifiedStartTime(QDate(2010,2,1),QTime(8,0,0,0));
+	QDateTime modifiedEndTime(QDate(2010,2,1),QTime(9,0,0,0));
+	modifiedEntry.setStartAndEndTime(modifiedStartTime, modifiedStartTime);
+
+	// Run the test case
+	ulong newId = mAgendaUtil->store(
+			modifiedEntry, AgendaUtil::ThisOnly, originalEntry.startTime());
+	
+	// Verify.
+	QVERIFY(id != newId);
+	
+	entriesRetrieved.clear();
+	
+	// Get the exceptional entry.
+	AgendaEntry exceptionalEntry = mAgendaUtil->fetchById(newId);
+	
+	// Verify.
+	QVERIFY(exceptionalEntry.recurrenceId() == originalEntry.startTime());
+}
+
 /*!
 	Slot to listen for the completion of deleting the entries asynchronously.
  */