diff -r 17302fa075e1 -r da6ac9d688df mobilemessaging/unieditor/application/src/UniEditorLaunchOperation.cpp --- 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 );