diff -r 696bfeff199e -r fa1df4b99609 messagingappbase/mce/src/mceui.cpp --- a/messagingappbase/mce/src/mceui.cpp Thu Jul 15 18:34:37 2010 +0300 +++ b/messagingappbase/mce/src/mceui.cpp Thu Aug 19 09:51:11 2010 +0300 @@ -22,6 +22,7 @@ // INCLUDE FILES #include #include +#include #include #include @@ -204,7 +205,7 @@ _LIT( KMmsMessageDumpDirectory, "C:\\Private\\1000484b\\mmsvar"); _LIT( KRootPath, "C:\\" ); const TInt KMmsCodecClientChunkSize = 1024; - +#define KMtmUiFunctionSimDialog ( KMtmFirstFreeMtmUiFunctionId + 1 ) // LOCAL FUNCTION PROTOTYPES // ==================== LOCAL FUNCTIONS ==================== @@ -232,7 +233,8 @@ iAnchorId( NULL ), iEmailClientIntegration(EFalse), iSelectableEmail(EFalse), - iEmailFramework(EFalse) + iEmailFramework(EFalse), + iSimDialogOpen(EFalse) { iMceUiFlags.SetMceFlag( EMceUiFlagsExitOnMsvMediaAvailableEvent ); } @@ -831,6 +833,7 @@ switch (aCommand) { case EEikCmdExit: + iSimDialogOpen = EFalse; Exit(); break; case EMceCmdExit: @@ -2556,21 +2559,26 @@ const TInt numAccounts=sel->Count(); for (TInt cc=0; ccAt(cc); - const TMsvEntry& tentry=iRootEntry->ChildDataL(uid.iUid); - - TRAPD(error, ( uiData=GetMtmUiDataL(tentry.iMtm) ) ); - if (error==KErrNone && uiData) - { - TInt rid; - if (uiData->QueryCapability(connectCapability, rid)==KErrNone) - { - if (tentry.Connected()) - { - connectedAccounts->AppendL( sel->At(cc) ); - } - } - } + uid.iUid=sel->At(cc); + const TMsvEntry& tentry=iRootEntry->ChildDataL(uid.iUid); + // if cmail feature is enabled, no need to add cmail account in connectedAccounts. + if ( !( iEmailFramework && + ( tentry.iMtm == KSenduiMtmImap4Uid || tentry.iMtm == KSenduiMtmPop3Uid || + tentry.iMtm.iUid == KUidMsgTypeFsMtmVal ))) + { + TRAPD(error, ( uiData=GetMtmUiDataL(tentry.iMtm) ) ); + if (error==KErrNone && uiData) + { + TInt rid; + if (uiData->QueryCapability(connectCapability, rid)==KErrNone) + { + if (tentry.Connected()) + { + connectedAccounts->AppendL( sel->At(cc) ); + } + } + } + } } CleanupStack::PopAndDestroy( sel ); MCELOGGER_LEAVEFN("ConnectedServicesLC()"); @@ -4484,6 +4492,10 @@ TBuf8<1> buf; if (!(aFunction.iFlags&EMtudAsynchronous)) { + if(aFunction.iFuncId == KMtmUiFunctionSimDialog) + { + iSimDialogOpen = ETrue; + } mtmUi.InvokeSyncFunctionL(aFunction.iFuncId, *sel, buf); } else @@ -6649,13 +6661,24 @@ // ---------------------------------------------------- void CMceUi::ResetAndHide() { - if (!MceViewActive( EMceMainViewActive )) + // To close embedded MsgEditor + if ( IsEditorOpen() ) + { + CloseEditorApp(); + } + // Messaging was not exiting properly when "exit" is pressed from settings dialog. + // iMceUiFlags.MceFlag( EMceUiFlagsSettingsDialogOpen ) will be true + // when we exit from any of the settings Dialog. + // Closing of Settings dialogs will be taken care by AVKON. + if (!(MceViewActive( EMceMainViewActive) && IsForeground()) || + iMceUiFlags.MceFlag( EMceUiFlagsSettingsDialogOpen ) || iSimDialogOpen ) { SetCustomControl(1); // Disable bring-to-foreground on view activation TRAP_IGNORE( CAknViewAppUi::CreateActivateViewEventL( \ KMessagingCentreMainViewUid, \ TUid::Uid(KMceHideInBackground), \ KNullDesC8 ) ) ; + iSimDialogOpen = EFalse; } else {