diff -r e00582ce7ecd -r fbb813aef148 mobilemessaging/mmsui/viewersrc/UniMmsViewerAppUi.cpp --- a/mobilemessaging/mmsui/viewersrc/UniMmsViewerAppUi.cpp Tue Apr 27 16:33:37 2010 +0300 +++ b/mobilemessaging/mmsui/viewersrc/UniMmsViewerAppUi.cpp Tue May 11 16:10:04 2010 +0300 @@ -170,6 +170,7 @@ #include // CMmsClientMtm, mmsconst.h #include #include +#include #include "MmsViewer.hrh" // application specific commands & enums #include "UniMmsViewerDocument.h" // CMmsViewerDocument @@ -1160,10 +1161,24 @@ return; } - TInt focusedControl = FocusedControlId( ); + TInt focusedControl = FocusedControlId( ); + + TBool senderHighlighted = EFalse; + if ( focusedControl == EMsgComponentIdFrom ) + { + CMsgAddressControl* address = static_cast( + iView->ControlById( EMsgComponentIdFrom ) ); + + if ( address && address->Editor().SelectionLength() ) + { + senderHighlighted = ETrue; + } + } + if ( !IsOwnMessage( ) ) { - if( (FocusedControlId( ) == EMsgComponentIdFrom) && ( ( iMtm->Sender( ) ).Length() ) ) + if( ( FocusedControlId( ) == EMsgComponentIdFrom) && ( ( iMtm->Sender( ) ).Length() ) + && senderHighlighted ) { iFindItemMenu->SetSenderHighlightStatus( ETrue ); iFindItemMenu->SetSenderDisplayText( TMmsGenUtils::PureAddress( iMtm->Sender( ) ) ); @@ -1173,11 +1188,14 @@ iFindItemMenu->SetSenderHighlightStatus( EFalse ); } } - iFindItemMenu->AddItemFindMenuL( - ( focusedControl == EMsgComponentIdBody ) ? iView->ItemFinder( ) : 0, + + iFindItemMenu->AddItemFindMenuL( + ( iView->ItemFinder()->CurrentSelection().Length() ) + ? iView->ItemFinder( ) : 0, aMenuPane, EFindItemMenuPlaceHolder, - TMmsGenUtils::PureAddress( iMtm->Sender( ) ), + senderHighlighted ? + TMmsGenUtils::PureAddress( iMtm->Sender( ) ) : KNullDesC(), iHeader->Alias( ) && !iHeader->IsRemoteAlias( ) ? ETrue : EFalse, //"Is sender known" EFalse ); @@ -1606,7 +1624,39 @@ break; case EKeyDevice3: //Selection key case EKeyEnter: //Enter Key - { + { + if( iView->FocusedControl()->ControlType() == EMsgAddressControl ) + { + CMsgAddressControl* address = static_cast( + iView->FocusedControl() ); + if ( address && !address->Editor().SelectionLength() ) + { + // restore highlight to address field + return address->Editor().OfferKeyEventL( aKeyEvent, aType ); + } + } + else if ( iView->FocusedControl()->ControlType() == EMsgBodyControl ) + { + CItemFinder* itemFinder = iView->ItemFinder(); + if ( FocusedControlId() == EMsgComponentIdBody + && itemFinder ) + { + if ( !itemFinder->CurrentSelection().Length() ) + { + CMsgBodyControl* body = static_cast( + iView->FocusedControl() ); + if ( body ) + { + // restore highlight to current itemfinder item + return body->Editor().OfferKeyEventL( aKeyEvent, aType ); + } + } + } + } + // fall through + } + case EMsgFindItemKeyEvent: + { TInt focusedControl = FocusedControlId( ); CMsgMediaControl* control = MediaControlById(focusedControl); if (control) @@ -1985,6 +2035,12 @@ } } TBool objectsOk = CanForwardObjectsL( aResourceId ); + TInt conformanceSize = KClassMaxSizeVideoRich; + if(iMmsConformance->ConformanceVersion() > KMmsVersion12) + { + conformanceSize = KClassMaxSizeMegapixel; + } + if ( objectsOk && Document( )->CreationMode( ) == EMmsCreationModeWarning ) { if ( Document( )->SmilType( ) != EMmsSmil || @@ -1993,7 +2049,7 @@ aResourceId = 0; return ShowGuidedModeConfirmationQueryL( R_MMSVIEWER_QUEST_GUIDED_PRESENTATION ); } - else if ( msgSize > KClassMaxSizeVideoRich ) + else if ( msgSize > conformanceSize ) { aResourceId = 0; return ShowGuidedModeConfirmationQueryL( R_MMSVIEWER_QUEST_GUIDED_INC_OBJ );