diff -r 696bfeff199e -r fa1df4b99609 mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp --- a/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp Thu Jul 15 18:34:37 2010 +0300 +++ b/mobilemessaging/unieditor/application/src/UniEditorAppUi.cpp Thu Aug 19 09:51:11 2010 +0300 @@ -141,6 +141,8 @@ #include #include +#include +#include #include "UniSendingSettings.h" #include "UniPluginApi.h" @@ -265,6 +267,8 @@ iWaitResId( -1 ), iOriginalSlide( -1 ), iNextFocus( EMsgComponentIdNull ), + iPopupChangedMmsBuffer(NULL), + iPopupChangedSmsBuffer(NULL), iEditorFlags( EShowInfoPopups ), iMskResId( R_UNIEDITOR_OPTIONS_CLOSE ), iOptimizedFlow(EFalse), @@ -451,6 +455,18 @@ iLongTapDetector->SetTimeDelayBeforeAnimation( KUniLongTapStartDelay ); iLongTapDetector->SetLongTapDelay( KUniLongTapTimeDelay ); iTapConsumed = EFalse; + + //Korean Req: 415-5434 + if ( iEditorFlags & EShowInfoPopups ) + { + iPopupNote = CAknInfoPopupNoteController::NewL(); + iPopupNote->SetTimeDelayBeforeShow( 0 ); + iPopupNote->SetTimePopupInView( 3000 ); + + iPopupSmsSizeAboveLimitBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_SMS_SIZE_ABOVE_LIMIT, Document()->SmsSizeWarningBytes(), iCoeEnv ); + iPopupSmsSizeBelowLimitBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_SMS_SIZE_UNDER_LIMIT, Document()->SmsSizeWarningBytes(), iCoeEnv ); + } + } @@ -794,16 +810,8 @@ if ( iEditorFlags & EShowInfoPopups ) { - iPopupNote = CAknInfoPopupNoteController::NewL(); - iPopupNote->SetTimeDelayBeforeShow( 0 ); - iPopupNote->SetTimePopupInView( 3000 ); - iPopupChangedMmsBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_MSG_CHANGED_MMS, iCoeEnv ); - iPopupChangedSmsBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_MSG_CHANGED_SMS, iCoeEnv ); - - //Korean Req: 415-5434 - iPopupSmsSizeAboveLimitBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_SMS_SIZE_ABOVE_LIMIT, Document()->SmsSizeWarningBytes(), iCoeEnv ); - iPopupSmsSizeBelowLimitBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_SMS_SIZE_UNDER_LIMIT, Document()->SmsSizeWarningBytes(), iCoeEnv ); + iPopupChangedSmsBuffer = StringLoader::LoadL( R_UNIEDITOR_POPUP_MSG_CHANGED_SMS, iCoeEnv ); } @@ -1184,7 +1192,17 @@ { // No absolute maximum characters defined -> Calculate // character maximum using maximum SMS part limit. - maxSmsCharacters = maxSmsParts * lengthMany; + + if( maxSmsParts > 1 ) + { + maxSmsCharacters = maxSmsParts * lengthMany; + } + else + { + // for korean variant + maxSmsCharacters = lengthOne; + } + } CalculateSMSMsgLen(charsLeft,msgsParts); if( model->ObjectList().Count() == 0 && @@ -6337,8 +6355,15 @@ { case EMsgMediaImage: { - // Set focus always first to the image control... - iView->SetFocus( EMsgComponentIdImage ); + // Set the focus to Text field so that user will be able to + // Type the text when image height is too big + CMsgBodyControl* bodyCtrl = BodyCtrl(); + if ( bodyCtrl ) + { + // Put the cursor at the end of Text. + bodyCtrl->SetCursorPosL( bodyCtrl->Editor().TextLength() ); + iView->SetFocus( EMsgComponentIdBody ); + } break; } case EMsgMediaAudio: @@ -7876,8 +7901,7 @@ iEditorFlags |= ESmsSizeWarningNoteShown; if( iPopupNote ) { - iPopupNote->SetTextL( iPopupSmsSizeAboveLimitBuffer->Des() ); - iPopupNote->ShowInfoPopupNote(); + ShowDiscreetPopUpL(iPopupSmsSizeAboveLimitBuffer->Des()); } } } @@ -7890,8 +7914,7 @@ iEditorFlags &= ~ESmsSizeWarningNoteShown; if( iPopupNote ) { - iPopupNote->SetTextL( iPopupSmsSizeBelowLimitBuffer->Des() ); - iPopupNote->ShowInfoPopupNote(); + ShowDiscreetPopUpL(iPopupSmsSizeBelowLimitBuffer->Des()); } } } @@ -8589,11 +8612,12 @@ // void CUniEditorAppUi::ShowPopupNoteL( TBool aMms ) { - if( iPopupNote ) - { - iPopupNote->SetTextL( aMms? iPopupChangedMmsBuffer->Des(): - iPopupChangedSmsBuffer->Des() ); - iPopupNote->ShowInfoPopupNote(); + if( iPopupNote && iPopupChangedMmsBuffer ) + { + // additional check iPopupChangedMmsBuffer is required as iPopupNote + // will be intialized in ConstructL but not iPopupChangedMmsBuffer. + // This change is done as part of Korean req. + ShowDiscreetPopUpL(aMms? iPopupChangedMmsBuffer->Des(): iPopupChangedSmsBuffer->Des()); } } @@ -10026,5 +10050,35 @@ return bCanSave; } +// --------------------------------------------------------- +// CUniEditorAppUi::ShowDiscreetPopUpL +// Shows the Popup note in ITUT, when message size exceeds or deceeds +// a certain limit or it changes from sms to mms and vice versa +// --------------------------------------------------------- +// +void CUniEditorAppUi::ShowDiscreetPopUpL(const TDesC& aMessage) + { + TInt bitmapId = KErrNotFound; + TInt maskId = KErrNotFound; + + // No discreet popup => Uid 0 + const TUid KDiscreetPopupUidNone = + { + 0x0 + }; + + CAknDiscreetPopup::ShowGlobalPopupL(aMessage, // 1st text row + KNullDesC, // second text row + KAknsIIDDefault, // icon skin id + KNullDesC, // bitmap file path + bitmapId, // bitmap id + maskId, // mask id + KAknDiscreetPopupDurationLong, // flags + 0, // command id + NULL, // command observer + KDiscreetPopupUidNone, // application to be launched + KDiscreetPopupUidNone); // view to be activated + } + // End of file