mobilemessaging/unieditor/application/src/UniEditorLaunchOperation.cpp
branchRCL_3
changeset 77 da6ac9d688df
parent 66 fc3320e39880
--- a/mobilemessaging/unieditor/application/src/UniEditorLaunchOperation.cpp	Wed Sep 15 12:08:45 2010 +0300
+++ b/mobilemessaging/unieditor/application/src/UniEditorLaunchOperation.cpp	Wed Oct 13 14:27:34 2010 +0300
@@ -402,9 +402,13 @@
 //
 void CUniEditorLaunchOperation::DoPrepareHeaderL()
     {
-    // Header is always drawn and populated
-    iHeader = CUniEditorHeader::NewL( iDocument.Mtm(), iDocument, iView, iFs );
-    CompleteSelf( KErrNone );
+    if(!iHeader)
+        {
+	    // Header is always drawn and populated
+	    iHeader = CUniEditorHeader::NewL( iDocument.Mtm(), iDocument, iView, iFs );
+        }
+    if(!iOptimizedFlow)
+        CompleteSelf( KErrNone );
     }
 
 // ---------------------------------------------------------
@@ -413,21 +417,28 @@
 //
 void CUniEditorLaunchOperation::DoPrepareBodyL()
     {
-    iSlideLoader = CUniSlideLoader::NewL(
-        iControlObserver,
-        *iDocument.DataModel(),
-        iView,
-        EUniControlEditorMode );
-        
+    if(!iSlideLoader)
+        {
+     	iSlideLoader = CUniSlideLoader::NewL(
+	        iControlObserver,
+	        *iDocument.DataModel(),
+	        iView,
+	        EUniControlEditorMode );
+        }
+    
     if ( iDocument.DataModel()->SmilType() == EMmsSmil )
         {
-        if ( !iDocument.DataModel()->SmilModel().SlideCount() )
+        if(!iOptimizedFlow)
             {
-            iDocument.DataModel()->SmilModel().AddSlideL();
+	        if ( !iDocument.DataModel()->SmilModel().SlideCount() )
+	            {
+	            iDocument.DataModel()->SmilModel().AddSlideL();
+	            }
+            
+	        iSlideLoader->LoadSlideL( *this, 0 );       
+        
+	        SetPending();
             }
-            
-        iSlideLoader->LoadSlideL( *this, 0 );
-        SetPending();
         }
     else
         {
@@ -619,6 +630,8 @@
             iOptimizedFlow = iSendUiOperation->IsOptimizedFlagSet();
             if(iOptimizedFlow)
                 {
+                DoPrepareHeaderL();
+                DoPrepareBodyL();
                 iObserver.EditorOperationEvent(
                             EUniEditorOperationLaunch,
                             EUniEditorOperationComplete );