diff -r 1367103c24e2 -r 696bfeff199e mobilemessaging/unieditor/application/src/UniEditorSendUiOperation.cpp --- a/mobilemessaging/unieditor/application/src/UniEditorSendUiOperation.cpp Mon Jun 21 15:36:19 2010 +0300 +++ b/mobilemessaging/unieditor/application/src/UniEditorSendUiOperation.cpp Thu Jul 15 18:34:37 2010 +0300 @@ -134,6 +134,7 @@ BaseConstructL(); iDeleteAllLimit = ( iDocument.MaxMessageSize() * KSendAsDeleteAllPercentage ) / 100; + iOptimizedFlow = EFalse; } // --------------------------------------------------------- @@ -222,6 +223,21 @@ // void CUniEditorSendUiOperation::DoSendUiCheckL() { + // check is it, one embedded object with jpeg image + // captured from camera\ seleted from photo\ filemanager + TInt objectCount =iDocument.DataModel()->ObjectList().Count() ; + TInt slideCount =iDocument.DataModel()->SmilModel().SlideCount() ; + if ( (objectCount == 1)&&(slideCount == 1)&& + (iDocument.DataModel()->AttachmentList().Count()== 0)) + { + CUniObject* obj = + iDocument.DataModel()->SmilModel().GetObjectByIndex( slideCount-1, objectCount-1 ); + if(obj->MediaInfo()->MimeType().CompareF( KMsgMimeImageJpeg )== 0) + { + iOptimizedFlow = ETrue; + } + } + if ( iDocument.DataModel()->ObjectList().Count() || iDocument.DataModel()->AttachmentList().Count() ) { @@ -461,6 +477,7 @@ iImageOperation = CUniEditorProcessImageOperation::NewL( *this, iDocument, iFs ); } + iImageOperation->SetOptimizedFlow(iOptimizedFlow); // Processes if needed: iImageOperation->Process( static_cast( aObject->MediaInfo() ), aObject->AttachmentId(), @@ -564,7 +581,7 @@ // --------------------------------------------------------- // void CUniEditorSendUiOperation::HandleOperationEvent( TUniEditorOperationType aOperation, - TUniEditorOperationEvent /*aEvent*/ ) + TUniEditorOperationEvent aEvent ) { TBool remove( EFalse ); @@ -573,6 +590,17 @@ if ( aOperation == EUniEditorOperationProcessImage ) { + if( aEvent == EUniEditorOperationPartialComplete) + { + if(iOptimizedFlow) + { + iObserver.EditorOperationEvent( EUniEditorOperationSendUi, + EUniEditorOperationPartialComplete ); + iOptimizedFlow = EFalse; + } + return; + } + iOptimizedFlow = EFalse; // Process image error handling CArrayFixFlat* errors = iImageOperation->GetErrors(); for ( TInt i = 0; i < errors->Count(); i++ ) @@ -660,5 +688,12 @@ //else --> original object remains... CompleteOperation( KErrNone ); } - +// --------------------------------------------------------- +// CUniEditorSendUiOperation::IsOptimizedFlagSet +// --------------------------------------------------------- +// +TBool CUniEditorSendUiOperation::IsOptimizedFlagSet() + { + return iOptimizedFlow; + } // EOF