calendarui/editors/src/calenreminderfield.cpp
branchRCL_3
changeset 48 bf573002ff72
parent 0 f979ecb2b13e
child 60 96907930389d
--- a/calendarui/editors/src/calenreminderfield.cpp	Wed Jun 09 09:40:23 2010 +0300
+++ b/calendarui/editors/src/calenreminderfield.cpp	Mon Jun 21 15:38:59 2010 +0300
@@ -85,6 +85,7 @@
     TRACE_ENTRY_POINT;
     
     iIsAlarmOnOff = CCalenReminderField::EAlarmNoAlarm;
+    isAllDayInitialOffsetSet = EFalse;
     
     TRACE_EXIT_POINT;
     }
@@ -233,11 +234,23 @@
     {
     TRACE_ENTRY_POINT;
 
-    // Updating operation is executed only if alarm date/time field exists.
-    if( iUnifiedEditor.Edited().IsAlarmActivated() )
-        {
-        TTime start = iUnifiedEditor.Edited().EventDateTime();
-        TTime alarm = start + iAlarmOffset;
+        // Updating operation is executed only if alarm date/time field exists.
+       if( iUnifiedEditor.Edited().IsAlarmActivated() )
+            {
+            TTime start = iUnifiedEditor.Edited().EventDateTime();
+            TTime alarm;
+		//For a new allday event when the start time is changed for the first time
+		//alarm time must be updated correctly 
+            if(iUnifiedEditor.Edited().IsAllDayEvent() && !isAllDayInitialOffsetSet 
+                    && iUnifiedEditor.EditorDataHandler().IsCreatingNew())
+                {
+                alarm = CalenDateUtils::DefaultTime(start)+iAlarmOffset;
+                isAllDayInitialOffsetSet = ETrue;
+                }
+            else
+                {
+                alarm = start + iAlarmOffset;
+                }
         alarm = CalenDateUtils::LimitToValidTime( alarm );
         iUnifiedEditor.Edited().SetAlarmDateTimeL( alarm );
         SetDataToEditorL();