--- 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<CMsgImageInfo*>( 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<TInt>* 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