meetingrequest/mrgui/src/cesmrmemotimevalidator.cpp
branchRCL_3
changeset 12 4ce476e64c59
parent 0 8466d47a6819
--- a/meetingrequest/mrgui/src/cesmrmemotimevalidator.cpp	Mon Mar 15 12:39:10 2010 +0200
+++ b/meetingrequest/mrgui/src/cesmrmemotimevalidator.cpp	Wed Mar 31 21:08:33 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -221,7 +221,8 @@
         PreValidateEditorContent();
 
         CCalEntry& entry( aEntry.Entry() );
-
+        const CCalEntry& originalEntry( aEntry.OriginalEntry() );
+        
         TTime start = StartDateTimeL();
         TTime end = EndDateTimeL();
 
@@ -230,48 +231,54 @@
             User::Leave( KErrArgument );
             }
 
-        TCalTime startTime;
-        TCalTime endTime;
+        TTime orgStartTime = originalEntry.StartTimeL().TimeLocalL();
+        TTime orgEndTime   = originalEntry.EndTimeL().TimeLocalL();
 
-        // The default mode for memo is EFloating,
-        // But some 3rd party application might have saved a different type
-        // for one reason or another. In that case we are using
-        // the existing value.
-        if ( aEntry.IsStoredL() )
+        if( orgStartTime != start || orgEndTime != end )
             {
-            TCalTime::TTimeMode timeMode =
-                        aEntry.Entry().StartTimeL().TimeMode();
-
-            switch ( timeMode )
+            TCalTime startTime;
+            TCalTime endTime;
+    
+            // The default mode for memo is EFloating,
+            // But some 3rd party application might have saved a different type
+            // for one reason or another. In that case we are using
+            // the existing value.
+            if ( aEntry.IsStoredL() )
                 {
-                case TCalTime::EFixedUtc:
-                	{
-					startTime.SetTimeUtcL( start );
-					endTime.SetTimeUtcL( end );
-					break;
-                	}
-                case TCalTime::EFixedTimeZone:
-                	{
-					startTime.SetTimeLocalL( start );
-					endTime.SetTimeLocalL( end );
-					break;
-                	}
-                case TCalTime::EFloating: // Fall through
-                default:
-                	{
-					startTime.SetTimeLocalFloatingL( start );
-					endTime.SetTimeLocalFloatingL( end );
-					break;
-                	}
+                TCalTime::TTimeMode timeMode =
+                            aEntry.Entry().StartTimeL().TimeMode();
+    
+                switch ( timeMode )
+                    {
+                    case TCalTime::EFixedUtc:
+                        {
+                        startTime.SetTimeUtcL( start );
+                        endTime.SetTimeUtcL( end );
+                        break;
+                        }
+                    case TCalTime::EFixedTimeZone:
+                        {
+                        startTime.SetTimeLocalL( start );
+                        endTime.SetTimeLocalL( end );
+                        break;
+                        }
+                    case TCalTime::EFloating: // Fall through
+                    default:
+                        {
+                        startTime.SetTimeLocalFloatingL( start );
+                        endTime.SetTimeLocalFloatingL( end );
+                        break;
+                        }
+                    }
                 }
+            else
+                {
+                startTime.SetTimeLocalFloatingL( start );
+                endTime.SetTimeLocalFloatingL( end );
+                }
+    
+            entry.SetStartAndEndTimeL( startTime, endTime );
             }
-        else
-            {
-            startTime.SetTimeLocalFloatingL( start );
-            endTime.SetTimeLocalFloatingL( end );
-            }
-
-        entry.SetStartAndEndTimeL( startTime, endTime );
         }
     }
 
@@ -306,6 +313,11 @@
     {
     FUNC_LOG;
     iStartDate = &aStartDate;
+    
+    if ( Time::NullTTime() != iCurrentStartTime )
+        {
+        SetDateToEditor( *iStartDate, iCurrentStartTime );
+        }    
     }
 
 // ---------------------------------------------------------------------------
@@ -317,6 +329,11 @@
     {
     FUNC_LOG;
     iEndDate = &aEndDate;
+    
+    if ( Time::NullTTime() != iCurrentEndTime )
+        {
+        SetDateToEditor( *iEndDate, iCurrentEndTime );
+        } 
     }
 
 // ---------------------------------------------------------------------------
@@ -353,6 +370,17 @@
     }
 
 // ---------------------------------------------------------------------------
+// CESMRMemoTimeValidator::SetAbsoluteAlarmOnOffFieldL
+// ---------------------------------------------------------------------------
+//
+void CESMRMemoTimeValidator::SetAbsoluteAlarmOnOffFieldL( 
+        MMRAbsoluteAlarmController& /*aAbsoluteAlarmController*/ )
+    {
+    FUNC_LOG;
+    // No implementation for memo
+    }
+
+// ---------------------------------------------------------------------------
 // CESMRMemoTimeValidator::StartTimeChangedL
 // ---------------------------------------------------------------------------
 //