diff -r a4d6f1ea0416 -r e7aa27f58ae1 emailuis/emailui/src/FreestyleEmailUiMailViewerVisualiser.cpp --- a/emailuis/emailui/src/FreestyleEmailUiMailViewerVisualiser.cpp Tue Jan 26 11:45:42 2010 +0200 +++ b/emailuis/emailui/src/FreestyleEmailUiMailViewerVisualiser.cpp Tue Feb 02 00:02:40 2010 +0200 @@ -38,7 +38,7 @@ #include "fssmileydictionary.h" /// #include -#include +#include // #include "CFSMailMessagePart.h" #include "CFSMailClient.h" @@ -83,7 +83,7 @@ #include // for bookmarks -#include // KBrowserBookmarks +#include // KBrowserBookmarks #include // for fonts @@ -160,25 +160,25 @@ // CFSEmailUiMailViewerVisualiser::NewLC // ----------------------------------------------------------------------------- CFSEmailUiMailViewerVisualiser* CFSEmailUiMailViewerVisualiser::NewLC( CAlfEnv& aEnv, CFreestyleEmailUiAppUi& aAppUi, CAlfControlGroup& aMailViewerControlGroup ) - { + { FUNC_LOG; CFSEmailUiMailViewerVisualiser* self = new (ELeave) CFSEmailUiMailViewerVisualiser( aEnv, aAppUi, aMailViewerControlGroup ); CleanupStack::PushL( self ); self->ConstructL(); return self; - } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::ConstructL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::ConstructL() - { + { FUNC_LOG; BaseConstructL( R_FSEMAILUI_MAIL_VIEWER_VIEW ); - iMessage = NULL; - iNextOrPevMessageSelected = EFalse; - iFirstStartCompleted = EFalse; - } + iMessage = NULL; + iNextOrPevMessageSelected = EFalse; + iFirstStartCompleted = EFalse; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::DoFirstStartL() @@ -208,7 +208,7 @@ MenuBar()->SetContextMenuTitleResourceId( R_FSEMAILUI_MAILVIEWER_MSK_MENUBAR ); iFirstStartCompleted = ETrue; - } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::CFSEmailUiMailViewerVisualiser @@ -230,25 +230,25 @@ // CFSEmailUiMailViewerVisualiser::~CFSEmailUiMailViewerVisualiser // ----------------------------------------------------------------------------- CFSEmailUiMailViewerVisualiser::~CFSEmailUiMailViewerVisualiser() - { + { FUNC_LOG; // notewrapper is replaced by iWaitDialog - //delete iAsyncWaitNote; + //delete iAsyncWaitNote; // - if( iIBServiceHandler ) - { - iIBServiceHandler->Reset(); - delete iIBServiceHandler; - } - - if ( iAsyncCallback ) - { - iAsyncCallback->Cancel(); - delete iAsyncCallback; - } - - iDownloadProgressControlGroup = NULL; // owned by AlfEnv - } + if( iIBServiceHandler ) + { + iIBServiceHandler->Reset(); + delete iIBServiceHandler; + } + + if ( iAsyncCallback ) + { + iAsyncCallback->Cancel(); + delete iAsyncCallback; + } + + iDownloadProgressControlGroup = NULL; // owned by AlfEnv + } void CFSEmailUiMailViewerVisualiser::PrepareForExit() { @@ -259,9 +259,9 @@ iNewMailTempAddress = NULL; // Text viewer control need to be removed control group and deleted here, - // because akn physics (used by text viewer control) object's destructor - // ends up calling CoeEnv->AppUi, so AppUi must be alive when deleting - // text viewer control + // because akn physics (used by text viewer control) object's destructor + // ends up calling CoeEnv->AppUi, so AppUi must be alive when deleting + // text viewer control if ( iTextViewerControl ) { ControlGroup().Remove( iTextViewerControl ); @@ -330,7 +330,7 @@ // Action menu is dismissed if it's opened on an attachment // and the download has completed (to prevent canceling after completion). SViewerHeadingHotSpotData currentHeaderHotSpotData; - CFindItemEngine::SFoundItem currentBodyHotSpotData; + CFindItemEngine::SFoundItem currentBodyHotSpotData; THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( currentHeaderHotSpotData, currentBodyHotSpotData ); @@ -347,7 +347,7 @@ if( menu->IsDisplayed() ) { - menu->MenuPane()->CloseCascadeMenu(); + menu->MenuPane()->CloseCascadeMenu(); } } // @@ -359,7 +359,7 @@ // for MFSMailRequestObserver callback // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::RequestResponseL( TFSProgress aEvent, TInt aRequestId ) - { + { FUNC_LOG; if ( iFirstStartCompleted ) // Safety { @@ -456,78 +456,78 @@ if(iAsyncProcessComplete && iWaitDialog && iDialogNotDismissed) iWaitDialog->ProcessFinishedL(); // deletes the dialog // - } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::FolderSelectedL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::FolderSelectedL( - TFSMailMsgId aSelectedFolderId, TFSEmailUiCtrlBarResponse aResponse ) - { + TFSMailMsgId aSelectedFolderId, TFSEmailUiCtrlBarResponse aResponse ) + { FUNC_LOG; if ( iMoveToFolderOngoing ) - { - iMoveToFolderOngoing = EFalse; - if ( !iMovingMeetingRequest ) - { - switch ( aResponse ) - { - case EFSEmailUiCtrlBarResponseSelect: - { - iMoveDestinationFolder = aSelectedFolderId; - iAsyncCallback->Cancel(); // cancel any outstanding callback just to be safe - iAsyncCallback->Set( TCallBack( MoveToFolderAndExitL, this ) ); - iAsyncCallback->CallBack(); - } - break; + { + iMoveToFolderOngoing = EFalse; + if ( !iMovingMeetingRequest ) + { + switch ( aResponse ) + { + case EFSEmailUiCtrlBarResponseSelect: + { + iMoveDestinationFolder = aSelectedFolderId; + iAsyncCallback->Cancel(); // cancel any outstanding callback just to be safe + iAsyncCallback->Set( TCallBack( MoveToFolderAndExitL, this ) ); + iAsyncCallback->CallBack(); + } + break; + case EFSEmailUiCtrlBarResponseCancel: + default: + break; + } + } + else + { + iMovingMeetingRequest = EFalse; + switch ( aResponse ) + { case EFSEmailUiCtrlBarResponseCancel: - default: - break; - } - } - else - { - iMovingMeetingRequest = EFalse; - switch ( aResponse ) - { - case EFSEmailUiCtrlBarResponseCancel: - iOpResult.iResultCode = KErrCancel; - break; - case EFSEmailUiCtrlBarResponseSelect: - { - // Do moving here, do not exit, because mrui exists itself. - iOpResult.iResultCode = KErrNone; - iMoveDestinationFolder = aSelectedFolderId; - RArray messageIds; - CleanupClosePushL( messageIds ); - messageIds.Append( iMessage->GetMessageId() ); - // Trap is needed because protocol might return KErrNotSupported - // if move away from current folder is not supprted - TRAPD(errMove, iAppUi.GetActiveMailbox()->MoveMessagesL( messageIds, - iMessage->GetFolderId(), iMoveDestinationFolder )); - if ( errMove != KErrNotSupported ) - { - if ( errMove == KErrNone ) - { - TFsEmailUiUtility::DisplayMsgsMovedNoteL( 1, iMoveDestinationFolder, ETrue ); - } - else - { - User::Leave( errMove ); - } - } - CleanupStack::PopAndDestroy( &messageIds ); - } - break; - default: - break; - } - } - } - - } + iOpResult.iResultCode = KErrCancel; + break; + case EFSEmailUiCtrlBarResponseSelect: + { + // Do moving here, do not exit, because mrui exists itself. + iOpResult.iResultCode = KErrNone; + iMoveDestinationFolder = aSelectedFolderId; + RArray messageIds; + CleanupClosePushL( messageIds ); + messageIds.Append( iMessage->GetMessageId() ); + // Trap is needed because protocol might return KErrNotSupported + // if move away from current folder is not supprted + TRAPD(errMove, iAppUi.GetActiveMailbox()->MoveMessagesL( messageIds, + iMessage->GetFolderId(), iMoveDestinationFolder )); + if ( errMove != KErrNotSupported ) + { + if ( errMove == KErrNone ) + { + TFsEmailUiUtility::DisplayMsgsMovedNoteL( 1, iMoveDestinationFolder, ETrue ); + } + else + { + User::Leave( errMove ); + } + } + CleanupStack::PopAndDestroy( &messageIds ); + } + break; + default: + break; + } + } + } + + } // --------------------------------------------------------------------------- // From MFSEmailUiContactHandlerObserver @@ -562,28 +562,28 @@ static_cast(aMailViewerVisualiser); RArray messageIds; - CleanupClosePushL( messageIds ); + CleanupClosePushL( messageIds ); messageIds.Append( self->iMessage->GetMessageId() ); - // Trap is needed because protocol might return KErrNotSupported - // if move away from current folder is not supprted - TRAPD(errMove, self->iAppUi.GetActiveMailbox()->MoveMessagesL( messageIds, + // Trap is needed because protocol might return KErrNotSupported + // if move away from current folder is not supprted + TRAPD(errMove, self->iAppUi.GetActiveMailbox()->MoveMessagesL( messageIds, self->iMessage->GetFolderId(), self->iMoveDestinationFolder ) ); - if ( errMove != KErrNotSupported ) - { - if ( errMove == KErrNone ) - { - // move successfull, display note - TFsEmailUiUtility::DisplayMsgsMovedNoteL( 1, self->iMoveDestinationFolder, ETrue ); - } - else - { - // Leave with any other err code than KErrNone or KErrNotSupported. - User::Leave( errMove ); - } - } - CleanupStack::PopAndDestroy( &messageIds ); + if ( errMove != KErrNotSupported ) + { + if ( errMove == KErrNone ) + { + // move successfull, display note + TFsEmailUiUtility::DisplayMsgsMovedNoteL( 1, self->iMoveDestinationFolder, ETrue ); + } + else + { + // Leave with any other err code than KErrNone or KErrNotSupported. + User::Leave( errMove ); + } + } + CleanupStack::PopAndDestroy( &messageIds ); // return to previous view self->HandleCommandL( EAknSoftkeyBack ); @@ -595,45 +595,45 @@ // CFSEmailUiMailViewerVisualiser::OpenFolderListForMessageMovingL // ----------------------------------------------------------------------------- TBool CFSEmailUiMailViewerVisualiser::OpenFolderListForMessageMovingL() - { + { FUNC_LOG; - TBool ret = EFalse; - // Ignore if mailbox doesn't support moving or we are viewing embedded message - if ( iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaMoveToFolder ) && - !iEmbeddedMessageMode ) - { - // Activate folder selection view and handle moving after callback gets destination - iMoveToFolderOngoing = ETrue; - TFolderListActivationData folderListData; - folderListData.iCallback = this; - CFSMailFolder* folder = iAppUi.GetMailClient()->GetFolderByUidL( iMessage->GetMailBoxId(), iMessage->GetFolderId() ); - folderListData.iSourceFolderType = TFSFolderType( folder->GetFolderType() ); - delete folder; - const TPckgBuf pkgOut( folderListData ); - iAppUi.EnterFsEmailViewL( FolderListId, KFolderListMoveMessage, pkgOut ); - ret = ETrue; - } - return ret; - } + TBool ret = EFalse; + // Ignore if mailbox doesn't support moving or we are viewing embedded message + if ( iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaMoveToFolder ) && + !iEmbeddedMessageMode ) + { + // Activate folder selection view and handle moving after callback gets destination + iMoveToFolderOngoing = ETrue; + TFolderListActivationData folderListData; + folderListData.iCallback = this; + CFSMailFolder* folder = iAppUi.GetMailClient()->GetFolderByUidL( iMessage->GetMailBoxId(), iMessage->GetFolderId() ); + folderListData.iSourceFolderType = TFSFolderType( folder->GetFolderType() ); + delete folder; + const TPckgBuf pkgOut( folderListData ); + iAppUi.EnterFsEmailViewL( FolderListId, KFolderListMoveMessage, pkgOut ); + ret = ETrue; + } + return ret; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::ViewerControl // ----------------------------------------------------------------------------- CAlfControl* CFSEmailUiMailViewerVisualiser::ViewerControl() - { + { FUNC_LOG; - return iTextViewerControl; - } + return iTextViewerControl; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::Id // ----------------------------------------------------------------------------- TUid CFSEmailUiMailViewerVisualiser::Id() const - { + { FUNC_LOG; - return MailViewerId; - } + return MailViewerId; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::ChildDoActivateL @@ -648,7 +648,7 @@ const TVwsViewId& aPrevViewId, TUid aCustomMessageId, const TDesC8& aCustomMessage ) - { + { FUNC_LOG; // Read the activation parameters @@ -792,7 +792,7 @@ } iNextOrPevMessageSelected = EFalse; - } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::OfferToolbarEventL @@ -840,24 +840,24 @@ // CFSEmailUiMailViewerVisualiser::ChildDoDeactivate // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::ChildDoDeactivate() - { + { FUNC_LOG; - CancelFetchings(); - if ( iFetchingAnimationTimer ) - { - iFetchingAnimationTimer->Stop(); - } - if ( iDownloadProgressIndicator ) - { - iDownloadProgressIndicator->HideIndicator(); - } - - // Hide this view's navipane - HideNaviPane(); - - // set view itself as toolbar observer again (e.g. MRGUI could have been changed it) - Toolbar()->SetToolbarObserver( this ); - } + CancelFetchings(); + if ( iFetchingAnimationTimer ) + { + iFetchingAnimationTimer->Stop(); + } + if ( iDownloadProgressIndicator ) + { + iDownloadProgressIndicator->HideIndicator(); + } + + // Hide this view's navipane + HideNaviPane(); + + // set view itself as toolbar observer again (e.g. MRGUI could have been changed it) + Toolbar()->SetToolbarObserver( this ); + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::HideNaviPane @@ -893,7 +893,7 @@ // message directly from list UI. // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::HandleMrCommandL( - TInt aCommandId, + TInt aCommandId, TFSMailMsgId aMailboxId, TFSMailMsgId aFolderId, TFSMailMsgId aMessageId ) @@ -902,16 +902,16 @@ // All items should be run if ( !iFirstStartCompleted ) - { - DoFirstStartL(); + { + DoFirstStartL(); } - UpdateMessagePtrL( aMailboxId, aFolderId, aMessageId ); + UpdateMessagePtrL( aMailboxId, aFolderId, aMessageId ); if ( aCommandId == EFsEmailUiCmdCalRemoveFromCalendar ) { iAppUi.MrViewerInstanceL()->RemoveMeetingRequestFromCalendarL( - *iMessage, *this ); + *iMessage, *this ); } else { @@ -929,7 +929,7 @@ respondStatus = EESMRAttendeeStatusDecline; } iAppUi.MrViewerInstanceL()->ResponseToMeetingRequestL( - respondStatus, *iMessage, *this ); + respondStatus, *iMessage, *this ); } } @@ -938,7 +938,7 @@ // From viewer observer for CFsTextViewer callbacks // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::HandleTextViewerEventL( TFsTextViewerEvent aEvent ) - { + { FUNC_LOG; if ( iFirstStartCompleted ) // Safety { @@ -988,7 +988,7 @@ SetActionMenuIconVisbilityL(); } } - } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::HandleHeaderHotspotActionL @@ -1036,26 +1036,26 @@ // Helper funcitons to get viewed message ID and Folder id TFSMailMsgId CFSEmailUiMailViewerVisualiser::ViewedMessageFolderId() - { + { FUNC_LOG; - TFSMailMsgId ret; - if ( iMessage ) - { - ret = iMessage->GetFolderId(); - } - return ret; - } + TFSMailMsgId ret; + if ( iMessage ) + { + ret = iMessage->GetFolderId(); + } + return ret; + } TFSMailMsgId CFSEmailUiMailViewerVisualiser::ViewedMessageId() - { + { FUNC_LOG; - TFSMailMsgId ret; - if ( iMessage ) - { - ret = iMessage->GetMessageId(); - } - return ret; - } + TFSMailMsgId ret; + if ( iMessage ) + { + ret = iMessage->GetMessageId(); + } + return ret; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::RefreshL @@ -1071,16 +1071,16 @@ // if ( TFsEmailUiUtility::IsMessageBodyLargeL( iMessage ) ) { - // using normal wait note instead of using global - //waitNoteId = TFsEmailUiUtility::ShowGlobalWaitNoteLC( R_FSE_WAIT_OPENING_TEXT ); + // using normal wait note instead of using global + //waitNoteId = TFsEmailUiUtility::ShowGlobalWaitNoteLC( R_FSE_WAIT_OPENING_TEXT ); iWaitDialogOpening = new(ELeave)CAknWaitDialog( (REINTERPRET_CAST(CEikDialog**,&iWaitDialogOpening))); - HBufC* noteText = StringLoader::LoadLC( R_FSE_WAIT_OPENING_TEXT ); + HBufC* noteText = StringLoader::LoadLC( R_FSE_WAIT_OPENING_TEXT ); iWaitDialogOpening->SetTextL(*noteText); //iWaitDialogOpening->DrawableWindow()->SetOrdinalPosition(0); - CleanupStack::PopAndDestroy(noteText); + CleanupStack::PopAndDestroy(noteText); iWaitDialogOpening->ExecuteLD(R_FSE_WAIT_DIALOG_NO_CANCEL); - // + // } // Do the update @@ -1098,12 +1098,12 @@ } // Close the wait note if it was opened - if ( iWaitDialogOpening )// + if ( iWaitDialogOpening )// { - // - //CleanupStack::PopAndDestroy( (TAny*)waitNoteId ); + // + //CleanupStack::PopAndDestroy( (TAny*)waitNoteId ); iWaitDialogOpening->ProcessFinishedL(); //it destroys the waitnote also - // + // } } } @@ -1154,22 +1154,22 @@ // If the structure is known but message body is not fetched yet, start fetching it. // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::CheckMessageStructureL() - { + { FUNC_LOG; - if ( iFirstStartCompleted && iMessage ) - { - if ( !MessageStructureKnown( *iMessage ) ) - { // fetch structure - StartWaitedFetchingL( EMessageStructure ); - } - else if ( StartFetchingBodyAfterOpeningL() ) - { - iViewerRichText->AppendFetchingMoreTextL(); - StartFetchingMessagePartL( *iMessage, EMessagePlainTextBodyPart ); - iFetchingAnimationTimer->Start( KAnimationRefreshTimeIntervalInMilliseconds ); - } - } - } + if ( iFirstStartCompleted && iMessage ) + { + if ( !MessageStructureKnown( *iMessage ) ) + { // fetch structure + StartWaitedFetchingL( EMessageStructure ); + } + else if ( StartFetchingBodyAfterOpeningL() ) + { + iViewerRichText->AppendFetchingMoreTextL(); + StartFetchingMessagePartL( *iMessage, EMessagePlainTextBodyPart ); + iFetchingAnimationTimer->Start( KAnimationRefreshTimeIntervalInMilliseconds ); + } + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::UpdateDownloadIndicatorL @@ -1240,68 +1240,68 @@ // For dynamically dimm/undimm menu options according to currect message and focus in the viewer // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::DynInitMenuPaneL( - TInt aResourceId, CEikMenuPane* aMenuPane ) - { + TInt aResourceId, CEikMenuPane* aMenuPane ) + { FUNC_LOG; - if ( !iMessage || !iTextViewer ) - { - User::Leave( KErrNotReady ); - } - - if ( aResourceId == R_FSEMAILUI_MAILVIEWER_MENUPANE ) - { - - if ( FeatureManager::FeatureSupported( KFeatureIdFfCmailIntegration ) ) - { - // remove help support in pf5250 - aMenuPane->SetItemDimmed( EFsEmailUiCmdHelp, ETrue); - } - + if ( !iMessage || !iTextViewer ) + { + User::Leave( KErrNotReady ); + } + + if ( aResourceId == R_FSEMAILUI_MAILVIEWER_MENUPANE ) + { + + if ( FeatureManager::FeatureSupported( KFeatureIdFfCmailIntegration ) ) + { + // remove help support in pf5250 + aMenuPane->SetItemDimmed( EFsEmailUiCmdHelp, ETrue); + } + // Folder independent options - // hide/show MessageReader - TBool hideMessageReader = iEmbeddedMessageMode || !iAppUi.MessageReaderSupportsFreestyle(); - aMenuPane->SetItemDimmed( EFsEmailUiCmdReadEmail, hideMessageReader ); - - // hide/show actions sub menu - TBool hideActions = !ShowActionsMenuInOptionsL(); - aMenuPane->SetItemDimmed( EFsEmailUiCmdMailActions, hideActions ); - - // hide/show next and previous message options - TBool hideNext = !ShowNextMessageMenuInOptions(); - aMenuPane->SetItemDimmed( EFsEmailUiCmdNextMessage, hideNext ); - TBool hidePrev = !ShowPreviousMessageMenuInOptions(); - aMenuPane->SetItemDimmed( EFsEmailUiCmdPreviousMessage, hidePrev ); + // hide/show MessageReader + TBool hideMessageReader = iEmbeddedMessageMode || !iAppUi.MessageReaderSupportsFreestyle(); + aMenuPane->SetItemDimmed( EFsEmailUiCmdReadEmail, hideMessageReader ); + + // hide/show actions sub menu + TBool hideActions = !ShowActionsMenuInOptionsL(); + aMenuPane->SetItemDimmed( EFsEmailUiCmdMailActions, hideActions ); + + // hide/show next and previous message options + TBool hideNext = !ShowNextMessageMenuInOptions(); + aMenuPane->SetItemDimmed( EFsEmailUiCmdNextMessage, hideNext ); + TBool hidePrev = !ShowPreviousMessageMenuInOptions(); + aMenuPane->SetItemDimmed( EFsEmailUiCmdPreviousMessage, hidePrev ); // hide/show copy to clipboard TBool hideCopyToClipBoard = !IsCopyToClipBoardAvailableL(); aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCopyToClipboard, hideCopyToClipBoard ); - // Folder dependent options - TFSMailMsgId currentMessageFolderId = iMessage->GetFolderId(); - CFSMailFolder* currentFolder = NULL; - if ( !iEmbeddedMessageMode ) - { + // Folder dependent options + TFSMailMsgId currentMessageFolderId = iMessage->GetFolderId(); + CFSMailFolder* currentFolder = NULL; + if ( !iEmbeddedMessageMode ) + { TRAP_IGNORE( currentFolder = iAppUi.GetMailClient()->GetFolderByUidL( iMessage->GetMailBoxId(), currentMessageFolderId ) ); - } - CleanupStack::PushL( currentFolder ); - if ( !currentFolder || currentFolder->GetFolderType() == EFSOutbox ) - { // outbox folder or embedded message - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsForward, ETrue ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsReply, ETrue ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsReplyAll, ETrue ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsForward2, ETrue ); + } + CleanupStack::PushL( currentFolder ); + if ( !currentFolder || currentFolder->GetFolderType() == EFSOutbox ) + { // outbox folder or embedded message + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsForward, ETrue ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsReply, ETrue ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsReplyAll, ETrue ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsForward2, ETrue ); aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsMoveToDrafts, !currentFolder ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsDelete, !currentFolder ); - } - else - { // other folders - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsMoveToDrafts, ETrue ); - - // hide reply all if there's no multiple recipients - TInt numRecipients(0); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsDelete, !currentFolder ); + } + else + { // other folders + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsMoveToDrafts, ETrue ); + + // hide reply all if there's no multiple recipients + TInt numRecipients(0); if ( iMessage ) { //Get # of recipients @@ -1334,187 +1334,187 @@ } } - TBool hideReplyAll = ( numRecipients <= 1 ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsReplyAll, hideReplyAll ); + TBool hideReplyAll = ( numRecipients <= 1 ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsReplyAll, hideReplyAll ); // In Sent folder, option forward is shown above options reply and reply all TBool forwardAboveReply = ( currentFolder->GetFolderType() == EFSSentFolder ); aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsForward, !forwardAboveReply ); aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsForward2, forwardAboveReply ); - } - CleanupStack::PopAndDestroy( currentFolder ); - } - - if ( aResourceId == R_FSEMAILUI_MAILVIEWER_SUBMENU_MORE ) - { - TFSMailMsgId currentMessageFolderId = iMessage->GetFolderId(); + } + CleanupStack::PopAndDestroy( currentFolder ); + } + + if ( aResourceId == R_FSEMAILUI_MAILVIEWER_SUBMENU_MORE ) + { + TFSMailMsgId currentMessageFolderId = iMessage->GetFolderId(); CFSMailFolder* currentFolder = NULL; if ( !iEmbeddedMessageMode ) { TRAP_IGNORE( currentFolder = iAppUi.GetMailClient()->GetFolderByUidL( iMessage->GetMailBoxId(), currentMessageFolderId ) ); } - CleanupStack::PushL( currentFolder ); - if ( !currentFolder || currentFolder->GetFolderType() == EFSOutbox ) - { // outbox folder or embedded message - aMenuPane->SetItemDimmed( EFsEmailUiCmdMarkAsUnread, ETrue ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdMarkAsRead, ETrue ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsMoveMessage, ETrue ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsFlag, ETrue ); + CleanupStack::PushL( currentFolder ); + if ( !currentFolder || currentFolder->GetFolderType() == EFSOutbox ) + { // outbox folder or embedded message + aMenuPane->SetItemDimmed( EFsEmailUiCmdMarkAsUnread, ETrue ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdMarkAsRead, ETrue ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsMoveMessage, ETrue ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsFlag, ETrue ); // Prevent Download Manager opening with attachments -// aMenuPane->SetItemDimmed( EFsEmailUiCmdDownloadManager, ETrue ); +// aMenuPane->SetItemDimmed( EFsEmailUiCmdDownloadManager, ETrue ); // Prevent Download Manager opening with attachments - } - else // other folders - { - // show read/unread according to current state - TBool messageIsRead = iMessage->IsFlagSet( EFSMsgFlag_Read ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdMarkAsRead, messageIsRead ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdMarkAsUnread, !messageIsRead ); - - // show/hide move message - TBool hideMove = !iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaMoveToFolder ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsMoveMessage, hideMove ); - - // show/hide flag for followup - TBool hideFlag = !TFsEmailUiUtility::IsFollowUpSupported( *iMailBox ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsFlag, hideFlag ); - - // hide/show download manager option + } + else // other folders + { + // show read/unread according to current state + TBool messageIsRead = iMessage->IsFlagSet( EFSMsgFlag_Read ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdMarkAsRead, messageIsRead ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdMarkAsUnread, !messageIsRead ); + + // show/hide move message + TBool hideMove = !iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaMoveToFolder ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsMoveMessage, hideMove ); + + // show/hide flag for followup + TBool hideFlag = !TFsEmailUiUtility::IsFollowUpSupported( *iMailBox ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsFlag, hideFlag ); + + // hide/show download manager option // Prevent Download Manager opening with attachments -// TBool hideDownloadMan = !ShowDownloadManagerMenuInOptions(); -// aMenuPane->SetItemDimmed( EFsEmailUiCmdDownloadManager, hideDownloadMan ); +// TBool hideDownloadMan = !ShowDownloadManagerMenuInOptions(); +// aMenuPane->SetItemDimmed( EFsEmailUiCmdDownloadManager, hideDownloadMan ); // - } - CleanupStack::PopAndDestroy( currentFolder ); - } - - if ( aResourceId == R_FSEMAILUI_MAILVIEWER_SUBMENU_ACTIONS ) - { - // All menu items are hidden by default. - // Undimm items that should be visible in action menu. - SViewerHeadingHotSpotData currentHeaderHotSpotData; - CFindItemEngine::SFoundItem currentBodyHotSpotData; - THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( - currentHeaderHotSpotData, currentBodyHotSpotData ); - - TBool remoteLookupAvailable = - TFsEmailUiUtility::IsRemoteLookupSupported( *iMailBox ); - - if ( ( hotspotType == EHeaderHotspot && ( - currentHeaderHotSpotData.iType == ETypeFromAddressDisplayName || - currentHeaderHotSpotData.iType == ETypeToAddressDisplayName || - currentHeaderHotSpotData.iType == ETypeCcAddressDisplayName || - currentHeaderHotSpotData.iType == ETypeBccAddressDisplayName || - currentHeaderHotSpotData.iType == ETypeEmailAddress ) ) - || - ( hotspotType == EBodyHotspot && - currentBodyHotSpotData.iItemType == - CFindItemEngine::EFindItemSearchMailAddressBin ) ) - { - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCall, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCreateMessage, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCreateMail, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsContactDetails, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsAddContact2, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsRemoteLookup, !remoteLookupAvailable ); - } - else if ( hotspotType == EHeaderHotspot && + } + CleanupStack::PopAndDestroy( currentFolder ); + } + + if ( aResourceId == R_FSEMAILUI_MAILVIEWER_SUBMENU_ACTIONS ) + { + // All menu items are hidden by default. + // Undimm items that should be visible in action menu. + SViewerHeadingHotSpotData currentHeaderHotSpotData; + CFindItemEngine::SFoundItem currentBodyHotSpotData; + THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( + currentHeaderHotSpotData, currentBodyHotSpotData ); + + TBool remoteLookupAvailable = + TFsEmailUiUtility::IsRemoteLookupSupported( *iMailBox ); + + if ( ( hotspotType == EHeaderHotspot && ( + currentHeaderHotSpotData.iType == ETypeFromAddressDisplayName || + currentHeaderHotSpotData.iType == ETypeToAddressDisplayName || + currentHeaderHotSpotData.iType == ETypeCcAddressDisplayName || + currentHeaderHotSpotData.iType == ETypeBccAddressDisplayName || + currentHeaderHotSpotData.iType == ETypeEmailAddress ) ) + || + ( hotspotType == EBodyHotspot && + currentBodyHotSpotData.iItemType == + CFindItemEngine::EFindItemSearchMailAddressBin ) ) + { + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCall, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCreateMessage, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCreateMail, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsContactDetails, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsAddContact2, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsRemoteLookup, !remoteLookupAvailable ); + } + else if ( hotspotType == EHeaderHotspot && currentHeaderHotSpotData.iType == ETypeAttachment ) - { - TBool hideOpen = !ShowOpenAttachmentOptionL(); - aMenuPane->SetItemDimmed( EFsEmailUiCmdOpenAttachment, hideOpen ); - TBool hideDownload = !ShowDownloadOptionL(); - aMenuPane->SetItemDimmed( EFsEmailUiCmdDownload, hideDownload ); - TBool hideCancel = !ShowCancelDownloadOption(); - aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelDownload, hideCancel ); - TBool hideSave = !ShowSaveAttachmentOptionL(); - aMenuPane->SetItemDimmed( EFsEmailUiCmdSave, hideSave ); - - TBool hideRemove = hideOpen; + { + TBool hideOpen = !ShowOpenAttachmentOptionL(); + aMenuPane->SetItemDimmed( EFsEmailUiCmdOpenAttachment, hideOpen ); + TBool hideDownload = !ShowDownloadOptionL(); + aMenuPane->SetItemDimmed( EFsEmailUiCmdDownload, hideDownload ); + TBool hideCancel = !ShowCancelDownloadOption(); + aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelDownload, hideCancel ); + TBool hideSave = !ShowSaveAttachmentOptionL(); + aMenuPane->SetItemDimmed( EFsEmailUiCmdSave, hideSave ); + + TBool hideRemove = hideOpen; aMenuPane->SetItemDimmed( EFsEmailUiCmdClearFetchedAttachment, hideRemove ); - } - else if ( hotspotType == EHeaderHotspot && - currentHeaderHotSpotData.iType == ETypeAttachments ) - { - TBool hideOpen = !ShowOpenAttachmentOptionL(); - aMenuPane->SetItemDimmed( EFsEmailUiCmdOpenAttachmentList, hideOpen ); - TBool hideDownload = !ShowDownloadOptionL(); - aMenuPane->SetItemDimmed( EFsEmailUiCmdDownloadAll, hideDownload ); - TBool hideCancel = !ShowCancelDownloadOption(); - aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelAllDownloads, hideCancel ); - TBool hideSave = !ShowSaveAttachmentOptionL(); - aMenuPane->SetItemDimmed( EFsEmailUiCmdSaveAll, hideSave ); - } - else if ( hotspotType == EBodyHotspot && - currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchPhoneNumberBin ) - { - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCall, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsAddContact, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCreateMessage, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsRemoteLookup, !remoteLookupAvailable ); - } - else if ( hotspotType == EBodyHotspot && - ( currentBodyHotSpotData.iItemType == - CFindItemEngine::EFindItemSearchURLBin || - currentBodyHotSpotData.iItemType == - CFindItemEngine::EFindItemSearchScheme ) ) - { - // Handle action menu for different search scheme, e.g mailto: and call: - TInt schemaLinkType = ResolveBodyTextSchemaUrlTypeL( currentBodyHotSpotData ); - switch ( schemaLinkType ) - { - case EFocusOnEMailInBodyText: - { - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCall, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCreateMessage, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsContactDetails, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsAddContact2, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsRemoteLookup, !remoteLookupAvailable ); - } - break; - case EFocusOnNumberWithinMessage: - { - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCall, EFalse ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsAddContact, EFalse ); - // Drop out "Create message" selection for SIP addresses - HBufC* schemeText = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); - if ( schemeText && schemeText->FindC( KVoipPrefix ) != 0 ) - { - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCreateMessage, EFalse ); - } - CleanupStack::PopAndDestroy( schemeText ); - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsRemoteLookup, !remoteLookupAvailable ); - } - break; - default: - { - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsOpenWeb, EFalse ); - - // Handle intranet browsing item by using AIW service - // handler's InitializeMenuPaneL-function, it will remove - // the IB menu item if IB is not available, or make the - // item visible if IB is available - if ( iIBServiceHandler && iIBServiceHandler->IsAiwMenu( aResourceId ) ) - { - TAiwGenericParam param( EGenericParamURL ); - CAiwGenericParamList* list = CAiwGenericParamList::NewLC(); - list->AppendL( param ); - iIBServiceHandler->InitializeMenuPaneL( *aMenuPane, aResourceId, - EFsEmailUiCmdActionsOpenInIntranetMenu, *list, ETrue ); - CleanupStack::PopAndDestroy( list ); - } - - aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsAddBookmark, EFalse ); - } - break; - } - } - } - - iAppUi.ShortcutBinding().AppendShortcutHintsL( *aMenuPane, - CFSEmailUiShortcutBinding::EContextMailViewer ); - } + } + else if ( hotspotType == EHeaderHotspot && + currentHeaderHotSpotData.iType == ETypeAttachments ) + { + TBool hideOpen = !ShowOpenAttachmentOptionL(); + aMenuPane->SetItemDimmed( EFsEmailUiCmdOpenAttachmentList, hideOpen ); + TBool hideDownload = !ShowDownloadOptionL(); + aMenuPane->SetItemDimmed( EFsEmailUiCmdDownloadAll, hideDownload ); + TBool hideCancel = !ShowCancelDownloadOption(); + aMenuPane->SetItemDimmed( EFsEmailUiCmdCancelAllDownloads, hideCancel ); + TBool hideSave = !ShowSaveAttachmentOptionL(); + aMenuPane->SetItemDimmed( EFsEmailUiCmdSaveAll, hideSave ); + } + else if ( hotspotType == EBodyHotspot && + currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchPhoneNumberBin ) + { + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCall, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsAddContact, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCreateMessage, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsRemoteLookup, !remoteLookupAvailable ); + } + else if ( hotspotType == EBodyHotspot && + ( currentBodyHotSpotData.iItemType == + CFindItemEngine::EFindItemSearchURLBin || + currentBodyHotSpotData.iItemType == + CFindItemEngine::EFindItemSearchScheme ) ) + { + // Handle action menu for different search scheme, e.g mailto: and call: + TInt schemaLinkType = ResolveBodyTextSchemaUrlTypeL( currentBodyHotSpotData ); + switch ( schemaLinkType ) + { + case EFocusOnEMailInBodyText: + { + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCall, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCreateMessage, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsContactDetails, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsAddContact2, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsRemoteLookup, !remoteLookupAvailable ); + } + break; + case EFocusOnNumberWithinMessage: + { + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCall, EFalse ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsAddContact, EFalse ); + // Drop out "Create message" selection for SIP addresses + HBufC* schemeText = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); + if ( schemeText && schemeText->FindC( KVoipPrefix ) != 0 ) + { + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsCreateMessage, EFalse ); + } + CleanupStack::PopAndDestroy( schemeText ); + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsRemoteLookup, !remoteLookupAvailable ); + } + break; + default: + { + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsOpenWeb, EFalse ); + + // Handle intranet browsing item by using AIW service + // handler's InitializeMenuPaneL-function, it will remove + // the IB menu item if IB is not available, or make the + // item visible if IB is available + if ( iIBServiceHandler && iIBServiceHandler->IsAiwMenu( aResourceId ) ) + { + TAiwGenericParam param( EGenericParamURL ); + CAiwGenericParamList* list = CAiwGenericParamList::NewLC(); + list->AppendL( param ); + iIBServiceHandler->InitializeMenuPaneL( *aMenuPane, aResourceId, + EFsEmailUiCmdActionsOpenInIntranetMenu, *list, ETrue ); + CleanupStack::PopAndDestroy( list ); + } + + aMenuPane->SetItemDimmed( EFsEmailUiCmdActionsAddBookmark, EFalse ); + } + break; + } + } + } + + iAppUi.ShortcutBinding().AppendShortcutHintsL( *aMenuPane, + CFSEmailUiShortcutBinding::EContextMailViewer ); + } // ----------------------------------------------------------------------------- @@ -1524,298 +1524,298 @@ void CFSEmailUiMailViewerVisualiser::HandleCommandL( TInt aCommand ) { FUNC_LOG; - if ( !iAppUi.ViewSwitchingOngoing() ) - { - switch ( aCommand ) - { - case EAknSoftkeyBack: - { - // Set empty MSK when navigating back - ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY ); - // Cancel MR viewer launching if Back is pressed in the middle - // of launching process. - CancelPendingMrCommandL(); - NavigateBackL(); - } - break; - // top level options - case EFsEmailUiCmdActionsMoveToDrafts: - { - TFsEmailUiUtility::MoveMessageToDraftsL( - *iAppUi.GetActiveMailbox(), *iMessage ); - } - break; - case EFsEmailUiCmdCalActionsReplyAsMail: - case EFsEmailUiCmdActionsReply: - { - if ( !iEmbeddedMessageMode ) - { + if ( !iAppUi.ViewSwitchingOngoing() ) + { + switch ( aCommand ) + { + case EAknSoftkeyBack: + { + // Set empty MSK when navigating back + ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY ); + // Cancel MR viewer launching if Back is pressed in the middle + // of launching process. + CancelPendingMrCommandL(); + NavigateBackL(); + } + break; + // top level options + case EFsEmailUiCmdActionsMoveToDrafts: + { + TFsEmailUiUtility::MoveMessageToDraftsL( + *iAppUi.GetActiveMailbox(), *iMessage ); + } + break; + case EFsEmailUiCmdCalActionsReplyAsMail: + case EFsEmailUiCmdActionsReply: + { + if ( !iEmbeddedMessageMode ) + { TEditorLaunchParams params; params.iMailboxId = iAppUi.GetActiveMailboxId(); params.iMsgId = iMessage->GetMessageId(); params.iActivatedExternally = EFalse; iAppUi.LaunchEditorL( KEditorCmdReply, params ); - } - } - break; - case EFsEmailUiCmdActionsReplyAll: - { - if ( !iEmbeddedMessageMode ) - { + } + } + break; + case EFsEmailUiCmdActionsReplyAll: + { + if ( !iEmbeddedMessageMode ) + { TEditorLaunchParams params; params.iMailboxId = iAppUi.GetActiveMailboxId(); params.iMsgId = iMessage->GetMessageId(); params.iActivatedExternally = EFalse; iAppUi.LaunchEditorL( KEditorCmdReplyAll, params ); - } - } - break; - case EFsEmailUiCmdCalActionsForwardAsMail: - case EFsEmailUiCmdActionsForward: - case EFsEmailUiCmdActionsForward2: - { - if ( !iEmbeddedMessageMode ) - { + } + } + break; + case EFsEmailUiCmdCalActionsForwardAsMail: + case EFsEmailUiCmdActionsForward: + case EFsEmailUiCmdActionsForward2: + { + if ( !iEmbeddedMessageMode ) + { TEditorLaunchParams params; params.iMailboxId = iAppUi.GetActiveMailboxId(); params.iMsgId = iMessage->GetMessageId(); params.iActivatedExternally = EFalse; iAppUi.LaunchEditorL( KEditorCmdForward, params ); - } - } - break; - case EFsEmailUiCmdActionsDelete: - { - DeleteMailL( *iMessage, ETrue ); - } - break; - case EFsEmailUiCmdActionsCopyToClipboard: - { - CopyCurrentHotspotToClipBoardL(); - } - break; - case EFsEmailUiCmdPreviousMessage: - { - ShowPreviousMessageL(); - } - break; - case EFsEmailUiCmdNextMessage: - { - ShowNextMessageL(); - } - break; - case EFsEmailUiCmdHelp: - { - TFsEmailUiUtility::LaunchHelpL( KFSE_HLP_LAUNCHER_GRID ); - } - break; - case EFsEmailUiCmdExit: - { - iAppUi.Exit(); - } - break; - case EFsEmailUiCmdReadEmail: - { - iAppUi.StartReadingEmailsL(); - } - break; - - // "actions" -sub menu options - case EFsEmailUiCmdActionsCall: - { - CallHotSpotAddressL(); - } - break; - case EFsEmailUiCmdActionsCreateMessage: - { - CreateMessageL(); - } - break; - case EFsEmailUiCmdActionsCreateMail: - { - ComposeMailL(); - } - break; - case EFsEmailUiCmdActionsContactDetails: - { - OpenContactDetailsL(); - } - break; - case EFsEmailUiCmdActionsAddContact: - case EFsEmailUiCmdActionsAddContact2: - { - SViewerHeadingHotSpotData currentHeaderHotSpotData; - CFindItemEngine::SFoundItem currentBodyHotSpotData; - THotspotType hotspotType = - iViewerRichText->FindCurrentHotSpotL( - currentHeaderHotSpotData, currentBodyHotSpotData ); - if ( hotspotType == EHeaderHotspot ) - { - HBufC* emailAddress = - iViewerRichText->GetHeaderHotspotEmailAddressLC( - currentHeaderHotSpotData ); - SaveEmailAsContactL( *emailAddress ); - CleanupStack::PopAndDestroy( emailAddress ); - } - else if ( hotspotType == EBodyHotspot ) - { - HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( - currentBodyHotSpotData ); - if ( currentBodyHotSpotData.iItemType == - CFindItemEngine::EFindItemSearchPhoneNumberBin ) - { - SavePhoneNumberAsContactL( *hotspotText ); - } - else if ( currentBodyHotSpotData.iItemType == - CFindItemEngine::EFindItemSearchMailAddressBin ) - { - SaveEmailAsContactL( *hotspotText ); - } - else if ( currentBodyHotSpotData.iItemType == - CFindItemEngine::EFindItemSearchScheme) - { - if ( hotspotText->FindC( KMailtoPrefix ) == 0 ) - { - // Save email address, prefix is stripped in SaveEmailAsContactL - SaveEmailAsContactL( *hotspotText ); - } - else if ( hotspotText->FindC( KCallPrefix ) == 0 || - hotspotText->FindC( KTelPrefix ) == 0 || - hotspotText->FindC( KSmsPrefix ) == 0 || - hotspotText->FindC( KMmsPrefix ) == 0 ) - { - // Save phone nukmber, prefix is stripped in SavePhoneNumberAsContactL - SavePhoneNumberAsContactL( *hotspotText ); - } - } - CleanupStack::PopAndDestroy( hotspotText ); - } - } - break; - case EFsEmailUiCmdActionsRemoteLookup: - { - SViewerHeadingHotSpotData currentHeaderHotSpotData; - CFindItemEngine::SFoundItem currentBodyHotSpotData; - THotspotType hotspotType = - iViewerRichText->FindCurrentHotSpotL( - currentHeaderHotSpotData, currentBodyHotSpotData ); - if ( hotspotType == EHeaderHotspot ) - { - HBufC* emailAddress = - iViewerRichText->GetHeaderHotspotEmailAddressLC( - currentHeaderHotSpotData ); - LaunchRemoteLookupL( *emailAddress ); - CleanupStack::PopAndDestroy( emailAddress ); - } - else if ( hotspotType == EBodyHotspot ) - { - HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( - currentBodyHotSpotData ); - LaunchRemoteLookupL( *hotspotText ); - CleanupStack::PopAndDestroy( hotspotText ); - } - } - break; - case EFsEmailUiCmdActionsOpenHtmlViewer: - { - LaunchHtmlViewerL(); - } - break; - case EFsEmailUiCmdActionsOpenWeb: - { - CFindItemEngine::SFoundItem currentBodyHotSpotData; - TBool bodyHotSpotFound = - iViewerRichText->FindCurrentBodyHotSpotL( - currentBodyHotSpotData ); - OpenHotSpotUrlInBrowserL( currentBodyHotSpotData ); - } - break; - case EFsEmailUiCmdActionsOpenInIntranetMenu: - { - OpenLinkInIntranetL( ETrue ); - } - break; - case EFsEmailUiCmdActionsAddBookmark: - { - CFindItemEngine::SFoundItem currentBodyHotSpotData; - TBool bodyHotSpotFound = - iViewerRichText->FindCurrentBodyHotSpotL( - currentBodyHotSpotData ); - AddToBookmarksL( currentBodyHotSpotData ); - } - break; - case EAknSoftkeyOpen: - case EFsEmailUiCmdOpenAttachment: - { - OpenAttachmentL(); - } - break; - case EFsEmailUiCmdOpenAttachmentList: - { - OpenAttachmentsViewL(); - } - break; - case EFsEmailUiCmdDownload: - case EFsEmailUiCmdDownloadAll: - { - StartDowloadingAttachmentsL(); - } - break; - case EFsEmailUiCmdCancelDownload: - case EFsEmailUiCmdCancelAllDownloads: - { - CancelDowloadingAttachmentsL(); - } - break; - case EFsEmailUiCmdSave: - case EFsEmailUiCmdSaveAll: - { - SaveAllAttachmentsL(); - } - break; - case EFsEmailUiCmdClearFetchedAttachment: - { - RemoveFetchedAttachmentL(); - } - break; - - // "more" -sub menu options - case EFsEmailUiCmdMarkAsUnread: - { - ChangeMsgReadStatusL( EFalse, EFalse ); - } - break; - case EFsEmailUiCmdMarkAsRead: - { - ChangeMsgReadStatusL( ETrue, EFalse ); - } - break; - case EFsEmailUiCmdActionsMoveMessage: - { + } + } + break; + case EFsEmailUiCmdActionsDelete: + { + DeleteMailL( *iMessage, ETrue ); + } + break; + case EFsEmailUiCmdActionsCopyToClipboard: + { + CopyCurrentHotspotToClipBoardL(); + } + break; + case EFsEmailUiCmdPreviousMessage: + { + ShowPreviousMessageL(); + } + break; + case EFsEmailUiCmdNextMessage: + { + ShowNextMessageL(); + } + break; + case EFsEmailUiCmdHelp: + { + TFsEmailUiUtility::LaunchHelpL( KFSE_HLP_LAUNCHER_GRID ); + } + break; + case EFsEmailUiCmdExit: + { + iAppUi.Exit(); + } + break; + case EFsEmailUiCmdReadEmail: + { + iAppUi.StartReadingEmailsL(); + } + break; + + // "actions" -sub menu options + case EFsEmailUiCmdActionsCall: + { + CallHotSpotAddressL(); + } + break; + case EFsEmailUiCmdActionsCreateMessage: + { + CreateMessageL(); + } + break; + case EFsEmailUiCmdActionsCreateMail: + { + ComposeMailL(); + } + break; + case EFsEmailUiCmdActionsContactDetails: + { + OpenContactDetailsL(); + } + break; + case EFsEmailUiCmdActionsAddContact: + case EFsEmailUiCmdActionsAddContact2: + { + SViewerHeadingHotSpotData currentHeaderHotSpotData; + CFindItemEngine::SFoundItem currentBodyHotSpotData; + THotspotType hotspotType = + iViewerRichText->FindCurrentHotSpotL( + currentHeaderHotSpotData, currentBodyHotSpotData ); + if ( hotspotType == EHeaderHotspot ) + { + HBufC* emailAddress = + iViewerRichText->GetHeaderHotspotEmailAddressLC( + currentHeaderHotSpotData ); + SaveEmailAsContactL( *emailAddress ); + CleanupStack::PopAndDestroy( emailAddress ); + } + else if ( hotspotType == EBodyHotspot ) + { + HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( + currentBodyHotSpotData ); + if ( currentBodyHotSpotData.iItemType == + CFindItemEngine::EFindItemSearchPhoneNumberBin ) + { + SavePhoneNumberAsContactL( *hotspotText ); + } + else if ( currentBodyHotSpotData.iItemType == + CFindItemEngine::EFindItemSearchMailAddressBin ) + { + SaveEmailAsContactL( *hotspotText ); + } + else if ( currentBodyHotSpotData.iItemType == + CFindItemEngine::EFindItemSearchScheme) + { + if ( hotspotText->FindC( KMailtoPrefix ) == 0 ) + { + // Save email address, prefix is stripped in SaveEmailAsContactL + SaveEmailAsContactL( *hotspotText ); + } + else if ( hotspotText->FindC( KCallPrefix ) == 0 || + hotspotText->FindC( KTelPrefix ) == 0 || + hotspotText->FindC( KSmsPrefix ) == 0 || + hotspotText->FindC( KMmsPrefix ) == 0 ) + { + // Save phone nukmber, prefix is stripped in SavePhoneNumberAsContactL + SavePhoneNumberAsContactL( *hotspotText ); + } + } + CleanupStack::PopAndDestroy( hotspotText ); + } + } + break; + case EFsEmailUiCmdActionsRemoteLookup: + { + SViewerHeadingHotSpotData currentHeaderHotSpotData; + CFindItemEngine::SFoundItem currentBodyHotSpotData; + THotspotType hotspotType = + iViewerRichText->FindCurrentHotSpotL( + currentHeaderHotSpotData, currentBodyHotSpotData ); + if ( hotspotType == EHeaderHotspot ) + { + HBufC* emailAddress = + iViewerRichText->GetHeaderHotspotEmailAddressLC( + currentHeaderHotSpotData ); + LaunchRemoteLookupL( *emailAddress ); + CleanupStack::PopAndDestroy( emailAddress ); + } + else if ( hotspotType == EBodyHotspot ) + { + HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( + currentBodyHotSpotData ); + LaunchRemoteLookupL( *hotspotText ); + CleanupStack::PopAndDestroy( hotspotText ); + } + } + break; + case EFsEmailUiCmdActionsOpenHtmlViewer: + { + LaunchHtmlViewerL(); + } + break; + case EFsEmailUiCmdActionsOpenWeb: + { + CFindItemEngine::SFoundItem currentBodyHotSpotData; + TBool bodyHotSpotFound = + iViewerRichText->FindCurrentBodyHotSpotL( + currentBodyHotSpotData ); + OpenHotSpotUrlInBrowserL( currentBodyHotSpotData ); + } + break; + case EFsEmailUiCmdActionsOpenInIntranetMenu: + { + OpenLinkInIntranetL( ETrue ); + } + break; + case EFsEmailUiCmdActionsAddBookmark: + { + CFindItemEngine::SFoundItem currentBodyHotSpotData; + TBool bodyHotSpotFound = + iViewerRichText->FindCurrentBodyHotSpotL( + currentBodyHotSpotData ); + AddToBookmarksL( currentBodyHotSpotData ); + } + break; + case EAknSoftkeyOpen: + case EFsEmailUiCmdOpenAttachment: + { + OpenAttachmentL(); + } + break; + case EFsEmailUiCmdOpenAttachmentList: + { + OpenAttachmentsViewL(); + } + break; + case EFsEmailUiCmdDownload: + case EFsEmailUiCmdDownloadAll: + { + StartDowloadingAttachmentsL(); + } + break; + case EFsEmailUiCmdCancelDownload: + case EFsEmailUiCmdCancelAllDownloads: + { + CancelDowloadingAttachmentsL(); + } + break; + case EFsEmailUiCmdSave: + case EFsEmailUiCmdSaveAll: + { + SaveAllAttachmentsL(); + } + break; + case EFsEmailUiCmdClearFetchedAttachment: + { + RemoveFetchedAttachmentL(); + } + break; + + // "more" -sub menu options + case EFsEmailUiCmdMarkAsUnread: + { + ChangeMsgReadStatusL( EFalse, EFalse ); + } + break; + case EFsEmailUiCmdMarkAsRead: + { + ChangeMsgReadStatusL( ETrue, EFalse ); + } + break; + case EFsEmailUiCmdActionsMoveMessage: + { OpenFolderListForMessageMovingL(); - } - break; - case EFsEmailUiCmdActionsFlag: - { - SetMessageFollowupFlagL(); - } - break; - case EFsEmailUiCmdCompose: - { - iAppUi.CreateNewMailL(); - } - break; - case EFsEmailUiCmdComposeTo: - { - ComposeMailL(); - } - break; - case EFsEmailUiCmdMessageDetails: - case EFsEmailUiCmdViewAll: - { - TUid activationCmdId = KStartMsgDetailsToBeginning; - if ( aCommand == EFsEmailUiCmdViewAll ) - { + } + break; + case EFsEmailUiCmdActionsFlag: + { + SetMessageFollowupFlagL(); + } + break; + case EFsEmailUiCmdCompose: + { + iAppUi.CreateNewMailL(); + } + break; + case EFsEmailUiCmdComposeTo: + { + ComposeMailL(); + } + break; + case EFsEmailUiCmdMessageDetails: + case EFsEmailUiCmdViewAll: + { + TUid activationCmdId = KStartMsgDetailsToBeginning; + if ( aCommand == EFsEmailUiCmdViewAll ) + { SViewerHeadingHotSpotData currentHeaderHotSpotData; iViewerRichText->FindCurrentHeaderHotSpotL( currentHeaderHotSpotData ); if( currentHeaderHotSpotData.iType == ETypeToNMoreRecipients ) @@ -1830,23 +1830,23 @@ { activationCmdId = KStartMsgDetailsToBcc; } - } + } TMsgDetailsActivationData msgDetailsData; - msgDetailsData.iMailBoxId = iMessage->GetMailBoxId(); - msgDetailsData.iFolderId = iMessage->GetFolderId(); - msgDetailsData.iMessageId = iMessage->GetMessageId(); - const TPckgBuf pkgOut( msgDetailsData ); - iAppUi.EnterFsEmailViewL( - MsgDetailsViewId, activationCmdId, pkgOut ); - } - break; + msgDetailsData.iMailBoxId = iMessage->GetMailBoxId(); + msgDetailsData.iFolderId = iMessage->GetFolderId(); + msgDetailsData.iMessageId = iMessage->GetMessageId(); + const TPckgBuf pkgOut( msgDetailsData ); + iAppUi.EnterFsEmailViewL( + MsgDetailsViewId, activationCmdId, pkgOut ); + } + break; // Prevent Download Manager opening with attachments -// case EFsEmailUiCmdDownloadManager: -// { -// iAppUi.EnterFsEmailViewL( DownloadManagerViewId ); -// } -// break; +// case EFsEmailUiCmdDownloadManager: +// { +// iAppUi.EnterFsEmailViewL( DownloadManagerViewId ); +// } +// break; // case EFsEmailUiCmdMarkAsReadUnreadToggle: { @@ -1873,9 +1873,9 @@ // // Do nothing if focus is already in top if ( iTextViewer->GetFirstDisplayedLine() > 1 ) - { + { iTextViewer->FocusLineL( 1 ); - } + } } // break; @@ -1895,25 +1895,25 @@ // and the Fn mappings vary between variants. // Similar mechanism is used inside AknFep with key codes EKeyF19...EKeyF24, // so collisions with these must be avoided. - case EFsEmailUiCmdScrollUp: - { - TKeyEvent simEvent = { KKeyCodeArtificialScrollUp, EStdKeyNull, 0, 0 }; - iCoeEnv->SimulateKeyEventL( simEvent, EEventKey ); - } - break; - case EFsEmailUiCmdScrollDown: - { - TKeyEvent simEvent = { KKeyCodeArtificialScrollDown, EStdKeyNull, 0, 0 }; - iCoeEnv->SimulateKeyEventL( simEvent, EEventKey ); - } + case EFsEmailUiCmdScrollUp: + { + TKeyEvent simEvent = { KKeyCodeArtificialScrollUp, EStdKeyNull, 0, 0 }; + iCoeEnv->SimulateKeyEventL( simEvent, EEventKey ); + } break; - case EFsEmailUiCmdPageUp: + case EFsEmailUiCmdScrollDown: + { + TKeyEvent simEvent = { KKeyCodeArtificialScrollDown, EStdKeyNull, 0, 0 }; + iCoeEnv->SimulateKeyEventL( simEvent, EEventKey ); + } + break; + case EFsEmailUiCmdPageUp: { TKeyEvent simEvent = { EKeyPageUp, EStdKeyNull, 0, 0 }; iCoeEnv->SimulateKeyEventL( simEvent, EEventKey ); } break; - case EFsEmailUiCmdPageDown: + case EFsEmailUiCmdPageDown: { TKeyEvent simEvent = { EKeyPageDown, EStdKeyNull, 0, 0 }; iCoeEnv->SimulateKeyEventL( simEvent, EEventKey ); @@ -1923,8 +1923,8 @@ break; default: - break; - } + break; + } } } @@ -1990,25 +1990,25 @@ void CFSEmailUiMailViewerVisualiser::ProcessAsyncCommandL( TESMRIcalViewerOperationType aCommandId, - const CFSMailMessage& aMessage, - MESMRIcalViewerObserver* aObserver ) - { - FUNC_LOG; - if ( aObserver ) - { - iMrObserverToInform = aObserver; - } - // we must cast constness away from message because of flaws in MRUI API - CFSMailMessage* messagePtr = const_cast(&aMessage); - if ( messagePtr ) - { + const CFSMailMessage& aMessage, + MESMRIcalViewerObserver* aObserver ) + { + FUNC_LOG; + if ( aObserver ) + { + iMrObserverToInform = aObserver; + } + // we must cast constness away from message because of flaws in MRUI API + CFSMailMessage* messagePtr = const_cast(&aMessage); + if ( messagePtr ) + { // Fill in result struct iOpResult.iOpType = aCommandId; iOpResult.iMessage = messagePtr; iOpResult.iResultCode = KErrNotFound; switch ( aCommandId ) - { + { case EESMRCmdMailMessageDetails: { iOpResult.iResultCode = KErrNone; @@ -2100,117 +2100,117 @@ } } break; - case EESMRCmdDownloadManager: - { - // Check that there is something in dwnld manager to show - if ( ShowDownloadManagerMenuInOptions() ) - { - iOpResult.iResultCode = KErrNone; - iAppUi.EnterFsEmailViewL( DownloadManagerViewId ); - } - } - break; + case EESMRCmdDownloadManager: + { + // Check that there is something in dwnld manager to show + if ( ShowDownloadManagerMenuInOptions() ) + { + iOpResult.iResultCode = KErrNone; + iAppUi.EnterFsEmailViewL( DownloadManagerViewId ); + } + } + break; case EESMRCmdMailComposeMessage: { iOpResult.iResultCode = KErrNone; iAppUi.CreateNewMailL(); } break; - case EESMRCmdMailReply: - case EESMRCmdMailReplyAll: - case EESMRCmdMailForwardAsMessage: - { - // Fill result codes for mrui - iOpResult.iResultCode = KErrNone; - // Fill launc params - TEditorLaunchParams params; - params.iMailboxId = iAppUi.GetActiveMailboxId(); - params.iActivatedExternally = EFalse; - params.iMsgId = messagePtr->GetMessageId(); - if ( aCommandId == EESMRCmdMailForwardAsMessage ) - { - iAppUi.LaunchEditorL( KEditorCmdForward, params ); - } - else if ( aCommandId == EESMRCmdMailReply ) - { - iAppUi.LaunchEditorL( KEditorCmdReply, params ); - } - else if ( aCommandId == EESMRCmdMailReplyAll ) - { - iAppUi.LaunchEditorL( KEditorCmdReplyAll, params ); - } - } - break; - case EESMRCmdMailPreviousMessage: - { + case EESMRCmdMailReply: + case EESMRCmdMailReplyAll: + case EESMRCmdMailForwardAsMessage: + { + // Fill result codes for mrui + iOpResult.iResultCode = KErrNone; + // Fill launc params + TEditorLaunchParams params; + params.iMailboxId = iAppUi.GetActiveMailboxId(); + params.iActivatedExternally = EFalse; + params.iMsgId = messagePtr->GetMessageId(); + if ( aCommandId == EESMRCmdMailForwardAsMessage ) + { + iAppUi.LaunchEditorL( KEditorCmdForward, params ); + } + else if ( aCommandId == EESMRCmdMailReply ) + { + iAppUi.LaunchEditorL( KEditorCmdReply, params ); + } + else if ( aCommandId == EESMRCmdMailReplyAll ) + { + iAppUi.LaunchEditorL( KEditorCmdReplyAll, params ); + } + } + break; + case EESMRCmdMailPreviousMessage: + { iNextOrPevMessageSelected = ETrue; // prevent back navigation when operation completed received ShowPreviousMessageL(); iOpResult.iResultCode = KErrNone; CompletePendingMrCommand(); - } - break; - case EESMRCmdMailNextMessage: - { - iNextOrPevMessageSelected = ETrue; // prevent back navigation when operation completed received - ShowNextMessageL(); + } + break; + case EESMRCmdMailNextMessage: + { + iNextOrPevMessageSelected = ETrue; // prevent back navigation when operation completed received + ShowNextMessageL(); iOpResult.iResultCode = KErrNone; - CompletePendingMrCommand(); + CompletePendingMrCommand(); } - break; - default: - break; - } - } - - // Complete immediately if handling command failed. It makes no harm if following - // function gets called several times in some case. - if ( iOpResult.iResultCode < 0 ) - { - CompletePendingMrCommand(); - } - } + break; + default: + break; + } + } + + // Complete immediately if handling command failed. It makes no harm if following + // function gets called several times in some case. + if ( iOpResult.iResultCode < 0 ) + { + CompletePendingMrCommand(); + } + } void CFSEmailUiMailViewerVisualiser::ProcessSyncCommandL( - TESMRIcalViewerOperationType aCommandId, - const CFSMailMessage& aMessage ) - { + TESMRIcalViewerOperationType aCommandId, + const CFSMailMessage& aMessage ) + { FUNC_LOG; - if ( &aMessage ) - { - switch ( aCommandId ) - { - case EESMRCmdMailMarkUnread: - { - ChangeMsgReadStatusL( EFalse, ETrue ); - } - break; - case EESMRCmdMailMarkRead: - { - ChangeMsgReadStatusL( ETrue, ETrue ); - } - break; - case EESMRCmdMailFlagMessage: - { - if ( iMessage ) - { - if ( !iFlagSelectionHanler ) - { - // Create when used for the first time - iFlagSelectionHanler = - CFlagSelectionGlobalNoteHandler::NewL( *this ); - } - // Call to LaunchFlagListQueryDialogL will lead - // to FlagselectionCompleteL - iFlagSelectionHanler->LaunchFlagListQueryDialogL(); - } - } - break; - default: - break; - } - } - } + if ( &aMessage ) + { + switch ( aCommandId ) + { + case EESMRCmdMailMarkUnread: + { + ChangeMsgReadStatusL( EFalse, ETrue ); + } + break; + case EESMRCmdMailMarkRead: + { + ChangeMsgReadStatusL( ETrue, ETrue ); + } + break; + case EESMRCmdMailFlagMessage: + { + if ( iMessage ) + { + if ( !iFlagSelectionHanler ) + { + // Create when used for the first time + iFlagSelectionHanler = + CFlagSelectionGlobalNoteHandler::NewL( *this ); + } + // Call to LaunchFlagListQueryDialogL will lead + // to FlagselectionCompleteL + iFlagSelectionHanler->LaunchFlagListQueryDialogL(); + } + } + break; + default: + break; + } + } + } // --------------------------------------------------------------------------- @@ -2220,19 +2220,19 @@ // --------------------------------------------------------------------------- // TBool CFSEmailUiMailViewerVisualiser::CanProcessCommand( - TESMRIcalViewerOperationType aCommandId ) const - { + TESMRIcalViewerOperationType aCommandId ) const + { FUNC_LOG; - TBool ret( EFalse ); - TInt numRecipients(0); - switch ( aCommandId ) - { - case EESMRCmdMailReply: - ret = ETrue; - break; - case EESMRCmdMailReplyAll: - //Get # of recipients - if ( iMessage ) + TBool ret( EFalse ); + TInt numRecipients(0); + switch ( aCommandId ) + { + case EESMRCmdMailReply: + ret = ETrue; + break; + case EESMRCmdMailReplyAll: + //Get # of recipients + if ( iMessage ) { numRecipients=TFsEmailUiUtility::CountRecepients( iMessage ); if ( numRecipients == 1 ) @@ -2262,78 +2262,78 @@ } } } - ret = ( iMessage && numRecipients > 1 ); - break; - case EESMRCmdDownloadManager: - ret = ShowDownloadManagerMenuInOptions(); - break; + ret = ( iMessage && numRecipients > 1 ); + break; + case EESMRCmdDownloadManager: + ret = ShowDownloadManagerMenuInOptions(); + break; // - case EESMRCmdOpenAttachment: - case EESMRCmdSaveAttachment: - case EESMRCmdSaveAllAttachments: - case EESMRCmdDownloadAttachment: - case EESMRCmdDownloadAllAttachments: + case EESMRCmdOpenAttachment: + case EESMRCmdSaveAttachment: + case EESMRCmdSaveAllAttachments: + case EESMRCmdDownloadAttachment: + case EESMRCmdDownloadAllAttachments: // - case EESMRCmdOpenAttachmentView: - ret = ETrue; - break; - case EESMRCmdMailComposeMessage: - ret = ETrue; - break; - case EESMRCmdMailMarkUnread: - { - ret = EFalse; - if ( iMessage && iMessage->IsFlagSet(EFSMsgFlag_Read) ) - { - // Read, unread should be available - ret = ETrue; - } - } - break; - case EESMRCmdMailMarkRead: - { - ret = EFalse; - if ( iMessage && !iMessage->IsFlagSet(EFSMsgFlag_Read) ) - { - // Read, unread should be available - ret = ETrue; - } - } - break; - case EESMRCmdMailMoveMessage: - { - ret = EFalse; - if ( iMessage ) - { - // confirmed pointer exists, check whether mb has capa - ret = iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaMoveToFolder ); - } - } - break; - case EESMRCmdMailForwardAsMessage: - ret = ETrue; - break; - case EESMRCmdMailFlagMessage: - ret = TFsEmailUiUtility::IsFollowUpSupported( *iMailBox ); - break; - case EESMRCmdMailMessageDetails: - ret = ETrue; - break; - case EESMRCmdMailDelete: - ret = ETrue; - break; - case EESMRCmdMailPreviousMessage: - ret = ShowPreviousMessageMenuInOptions(); - break; - case EESMRCmdMailNextMessage: - ret = ShowNextMessageMenuInOptions(); - break; - default: - ret = EFalse; - break; - } - return ret; - } + case EESMRCmdOpenAttachmentView: + ret = ETrue; + break; + case EESMRCmdMailComposeMessage: + ret = ETrue; + break; + case EESMRCmdMailMarkUnread: + { + ret = EFalse; + if ( iMessage && iMessage->IsFlagSet(EFSMsgFlag_Read) ) + { + // Read, unread should be available + ret = ETrue; + } + } + break; + case EESMRCmdMailMarkRead: + { + ret = EFalse; + if ( iMessage && !iMessage->IsFlagSet(EFSMsgFlag_Read) ) + { + // Read, unread should be available + ret = ETrue; + } + } + break; + case EESMRCmdMailMoveMessage: + { + ret = EFalse; + if ( iMessage ) + { + // confirmed pointer exists, check whether mb has capa + ret = iAppUi.GetActiveMailbox()->HasCapability( EFSMBoxCapaMoveToFolder ); + } + } + break; + case EESMRCmdMailForwardAsMessage: + ret = ETrue; + break; + case EESMRCmdMailFlagMessage: + ret = TFsEmailUiUtility::IsFollowUpSupported( *iMailBox ); + break; + case EESMRCmdMailMessageDetails: + ret = ETrue; + break; + case EESMRCmdMailDelete: + ret = ETrue; + break; + case EESMRCmdMailPreviousMessage: + ret = ShowPreviousMessageMenuInOptions(); + break; + case EESMRCmdMailNextMessage: + ret = ShowNextMessageMenuInOptions(); + break; + default: + ret = EFalse; + break; + } + return ret; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::CompletePendingMrCommand() @@ -2389,17 +2389,17 @@ TRAP_IGNORE( TFsEmailUiUtility::ShowGlobalInfoNoteL( noteTextId ) ); } } - } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::OperationError() // ----------------------------------------------------------------------------- // void CFSEmailUiMailViewerVisualiser::OperationError( TIcalViewerOperationResult aResult ) - { + { FUNC_LOG; // Show message in standard mail viewer in case launchin MRUI fails for any - // other reason than viewer being cancelled by calling CancelPendingMrCommand(). + // other reason than viewer being cancelled by calling CancelPendingMrCommand(). if ( aResult.iOpType == EESMRViewLaunch ) { iMrUiActive = EFalse; @@ -2414,7 +2414,7 @@ ); } } - } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::SetMskL() @@ -2534,7 +2534,7 @@ } else { - //it will set context menu for email (reply, forward, etc.) + //it will set context menu for email (reply, forward, etc.) ChangeMskCommandL( R_FSE_QTN_MSK_BODY_MENU ); } } @@ -2682,8 +2682,8 @@ iTextViewer->SetTextL( &iViewerRichText->RichText(), iSmDictionary ); // ownerships are transfered to AlfEnviroment. - // Compared to S60 3.2.3 in S60 5.0 Alf offers the key events in - // opposite order. + // Compared to S60 3.2.3 in S60 5.0 Alf offers the key events in + // opposite order. // Create control for capturing left and right navigation events iControl = CFreestyleEmailUiMailViewerControl::NewL( iEnv, *this ); ControlGroup().AppendL( iControl ); @@ -2698,132 +2698,132 @@ // CFSEmailUiMailViewerVisualiser::SetActionButtonIconAndHighLight // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::SetActionButtonIconAndHighLight() - { + { FUNC_LOG; - CFreestyleEmailUiTextureManager* textureMgr = iAppUi.FsTextureManager(); + CFreestyleEmailUiTextureManager* textureMgr = iAppUi.FsTextureManager(); CFSEmailUiLayoutHandler* layoutMgr = iAppUi.LayoutHandler(); // get textures from texture manager - CAlfTexture& menuTexture = textureMgr->TextureByIndex( EListControlMenuIcon ); - CAlfTexture& selectortexture = textureMgr->TextureByIndex( EViewerHighlightTexture ); + CAlfTexture& menuTexture = textureMgr->TextureByIndex( EListControlMenuIcon ); + CAlfTexture& selectortexture = textureMgr->TextureByIndex( EViewerHighlightTexture ); iTextViewer->SetLiteLineBg( selectortexture, layoutMgr->ViewerSelectorOpacity() ); - iTextViewer->SetActionButton( menuTexture, 1 ); - iTextViewer->SetActionButtonMargin( layoutMgr->ViewerActionMenuIconMargin() ); - TSize btnSize = layoutMgr->ViewerActionMenuIconSize(); - iTextViewer->SetActionButtonSize( btnSize.iWidth, btnSize.iHeight ); - } + iTextViewer->SetActionButton( menuTexture, 1 ); + iTextViewer->SetActionButtonMargin( layoutMgr->ViewerActionMenuIconMargin() ); + TSize btnSize = layoutMgr->ViewerActionMenuIconSize(); + iTextViewer->SetActionButtonSize( btnSize.iWidth, btnSize.iHeight ); + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::LaunchActionMenuL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::LaunchActionMenuL() - { + { FUNC_LOG; - // check that current hotspot is visible - TInt ignoreThis; // not used here. Only return value is used not this mandatory reference parameter - TBool visibleHotsSpot = iTextViewer->GetVisibleFocusedHotspotLine( ignoreThis ); - if( visibleHotsSpot ) - { - // Remove items - CFSEmailUiActionMenu::RemoveAllL(); - - // check which hotspot is active. - SViewerHeadingHotSpotData currentHeaderHotSpotData; - CFindItemEngine::SFoundItem currentBodyHotSpotData; - THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( currentHeaderHotSpotData, currentBodyHotSpotData ); - - TActionMenuType currentActionMenuType = ENoActionMenuFocused; - if( hotspotType == EHeaderHotspot && ( - currentHeaderHotSpotData.iType == ETypeFromAddressDisplayName || - currentHeaderHotSpotData.iType == ETypeToAddressDisplayName || - currentHeaderHotSpotData.iType == ETypeCcAddressDisplayName || - currentHeaderHotSpotData.iType == ETypeBccAddressDisplayName || - currentHeaderHotSpotData.iType == ETypeEmailAddress ) ) - { - currentActionMenuType = EFocusOnNameInAddressField; - } - else if( hotspotType == EHeaderHotspot && ( - currentHeaderHotSpotData.iType == ETypeAttachment ) ) - { - currentActionMenuType = EFocusOnAttachmentName; - } - else if( hotspotType == EHeaderHotspot && ( - currentHeaderHotSpotData.iType == ETypeAttachments ) ) - { - currentActionMenuType = EFocusOnAttachmentsText; - } - else if( hotspotType == EBodyHotspot && - currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchPhoneNumberBin ) - { - currentActionMenuType = EFocusOnNumberWithinMessage; - } - else if( hotspotType == EBodyHotspot && ( currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchURLBin || - currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchScheme ) ) - { - TInt schemaLinkType = ResolveBodyTextSchemaUrlTypeL( currentBodyHotSpotData ); - switch ( schemaLinkType ) - { - case EFocusOnEMailInBodyText: - currentActionMenuType = EFocusOnEMailInBodyText; - break; - case EFocusOnNumberWithinMessage: - currentActionMenuType = EFocusOnNumberWithinMessage; - break; - default: - currentActionMenuType = EFocusOnHyperLinkWithinMessage; - break; - - } - } - else if( hotspotType == EBodyHotspot && - currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchMailAddressBin ) - { - currentActionMenuType = EFocusOnEMailInBodyText; - } - - - if( currentActionMenuType != ENoActionMenuFocused ) - { - CreateActionMenuItemsL( currentActionMenuType ); - TActionMenuCustomItemId menuResult = CFSEmailUiActionMenu::ExecuteL( EFscCenter ); - if ( menuResult != FsEActionMenuCasItemSelectedAndExecuted && - menuResult != FsEActionMenuDismissed ) - { - HandleActionMenuCommandL( menuResult, currentActionMenuType ); - } - } - } - } + // check that current hotspot is visible + TInt ignoreThis; // not used here. Only return value is used not this mandatory reference parameter + TBool visibleHotsSpot = iTextViewer->GetVisibleFocusedHotspotLine( ignoreThis ); + if( visibleHotsSpot ) + { + // Remove items + CFSEmailUiActionMenu::RemoveAllL(); + + // check which hotspot is active. + SViewerHeadingHotSpotData currentHeaderHotSpotData; + CFindItemEngine::SFoundItem currentBodyHotSpotData; + THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( currentHeaderHotSpotData, currentBodyHotSpotData ); + + TActionMenuType currentActionMenuType = ENoActionMenuFocused; + if( hotspotType == EHeaderHotspot && ( + currentHeaderHotSpotData.iType == ETypeFromAddressDisplayName || + currentHeaderHotSpotData.iType == ETypeToAddressDisplayName || + currentHeaderHotSpotData.iType == ETypeCcAddressDisplayName || + currentHeaderHotSpotData.iType == ETypeBccAddressDisplayName || + currentHeaderHotSpotData.iType == ETypeEmailAddress ) ) + { + currentActionMenuType = EFocusOnNameInAddressField; + } + else if( hotspotType == EHeaderHotspot && ( + currentHeaderHotSpotData.iType == ETypeAttachment ) ) + { + currentActionMenuType = EFocusOnAttachmentName; + } + else if( hotspotType == EHeaderHotspot && ( + currentHeaderHotSpotData.iType == ETypeAttachments ) ) + { + currentActionMenuType = EFocusOnAttachmentsText; + } + else if( hotspotType == EBodyHotspot && + currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchPhoneNumberBin ) + { + currentActionMenuType = EFocusOnNumberWithinMessage; + } + else if( hotspotType == EBodyHotspot && ( currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchURLBin || + currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchScheme ) ) + { + TInt schemaLinkType = ResolveBodyTextSchemaUrlTypeL( currentBodyHotSpotData ); + switch ( schemaLinkType ) + { + case EFocusOnEMailInBodyText: + currentActionMenuType = EFocusOnEMailInBodyText; + break; + case EFocusOnNumberWithinMessage: + currentActionMenuType = EFocusOnNumberWithinMessage; + break; + default: + currentActionMenuType = EFocusOnHyperLinkWithinMessage; + break; + + } + } + else if( hotspotType == EBodyHotspot && + currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchMailAddressBin ) + { + currentActionMenuType = EFocusOnEMailInBodyText; + } + + + if( currentActionMenuType != ENoActionMenuFocused ) + { + CreateActionMenuItemsL( currentActionMenuType ); + TActionMenuCustomItemId menuResult = CFSEmailUiActionMenu::ExecuteL( EFscCenter ); + if ( menuResult != FsEActionMenuCasItemSelectedAndExecuted && + menuResult != FsEActionMenuDismissed ) + { + HandleActionMenuCommandL( menuResult, currentActionMenuType ); + } + } + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::ResolveBodyTextSchemaUrlTypeL // ----------------------------------------------------------------------------- TInt CFSEmailUiMailViewerVisualiser::ResolveBodyTextSchemaUrlTypeL( CFindItemEngine::SFoundItem aHotSpot ) - { + { FUNC_LOG; - TInt ret( EFocusOnHyperLinkWithinMessage ); - HBufC* schemeText = iViewerRichText->GetHotspotTextLC( aHotSpot ); - if ( schemeText->FindC( KMailtoPrefix ) == 0 ) - { - ret = EFocusOnEMailInBodyText; - } - else if ( schemeText->FindC( KCallPrefix ) == 0 || - schemeText->FindC( KTelPrefix ) == 0 || - schemeText->FindC( KSmsPrefix ) == 0 || - schemeText->FindC( KMmsPrefix ) == 0 || - schemeText->FindC( KVoipPrefix ) == 0 ) - { - ret = EFocusOnNumberWithinMessage; - } - else - { - ret = EFocusOnHyperLinkWithinMessage; - } - CleanupStack::PopAndDestroy( schemeText ); - return ret; - } + TInt ret( EFocusOnHyperLinkWithinMessage ); + HBufC* schemeText = iViewerRichText->GetHotspotTextLC( aHotSpot ); + if ( schemeText->FindC( KMailtoPrefix ) == 0 ) + { + ret = EFocusOnEMailInBodyText; + } + else if ( schemeText->FindC( KCallPrefix ) == 0 || + schemeText->FindC( KTelPrefix ) == 0 || + schemeText->FindC( KSmsPrefix ) == 0 || + schemeText->FindC( KMmsPrefix ) == 0 || + schemeText->FindC( KVoipPrefix ) == 0 ) + { + ret = EFocusOnNumberWithinMessage; + } + else + { + ret = EFocusOnHyperLinkWithinMessage; + } + CleanupStack::PopAndDestroy( schemeText ); + return ret; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::SetActionMenuIconVisbilityL @@ -2848,477 +2848,477 @@ // CFSEmailUiMailViewerVisualiser::CreateActionMenuItemsL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::CreateActionMenuItemsL( - TActionMenuType aActionMenuType ) - { + TActionMenuType aActionMenuType ) + { FUNC_LOG; - // See the ui spec for all the right action menus according to - // currently selected hotspot - RArray uids; - CleanupClosePushL( uids ); - if ( aActionMenuType == EFocusOnNumberWithinMessage ) - { - uids.Append( FsEActionMenuCall ); - uids.Append( FsEActionMenuAddToContacts ); - // Drop FsEActionMenuCreateMessage from sip: addresses - // First check which hotspot is active. - SViewerHeadingHotSpotData currentHeaderHotSpotData; - CFindItemEngine::SFoundItem currentBodyHotSpotData; - THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( - currentHeaderHotSpotData, currentBodyHotSpotData ); - HBufC* schemeText = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); - if ( schemeText && schemeText->FindC( KVoipPrefix ) != 0 ) - { - uids.Append( FsEActionMenuCreateMessage ); - } - CleanupStack::PopAndDestroy( schemeText ); - if ( TFsEmailUiUtility::IsRemoteLookupSupported( *iMailBox ) ) - { - uids.Append( FsEActionMenuRemoteLookup ); - } - } - else if ( aActionMenuType == EFocusOnNameInAddressField || - aActionMenuType == EFocusOnEMailInBodyText ) - { - uids.Append( FsEActionMenuCall ); - uids.Append( FsEActionMenuCreateMessage ); - uids.Append( FsEActionMenuCreateEmail ); - uids.Append( FsEActionMenuContactDetails ); - uids.Append( FsEActionMenuAddToContacts ); - if ( TFsEmailUiUtility::IsRemoteLookupSupported( *iMailBox ) ) - { - uids.Append( FsEActionMenuRemoteLookup ); - } - } - else if ( aActionMenuType == EFocusOnHyperLinkWithinMessage ) - { - uids.Append( FsEActionMenuOpenInWeb ); - uids.Append( FsEActionMenuOpenInIntranet ); - uids.Append( FsEActionMenuBookmark ); - } - else if ( aActionMenuType == EFocusOnAttachmentName ) - { - if ( ShowOpenAttachmentOptionL() ) - { - uids.Append( FsEActionAttachmentOpen ); - } - if ( ShowDownloadOptionL() ) - { - uids.Append( FsEActionAttachmentDownload ); - } - if ( ShowCancelDownloadOption() ) - { - uids.Append( FsEActionAttachmentCancelDownload ); - } - if ( ShowSaveAttachmentOptionL() ) - { - uids.Append( FsEActionAttachmentSave ); - } + // See the ui spec for all the right action menus according to + // currently selected hotspot + RArray uids; + CleanupClosePushL( uids ); + if ( aActionMenuType == EFocusOnNumberWithinMessage ) + { + uids.Append( FsEActionMenuCall ); + uids.Append( FsEActionMenuAddToContacts ); + // Drop FsEActionMenuCreateMessage from sip: addresses + // First check which hotspot is active. + SViewerHeadingHotSpotData currentHeaderHotSpotData; + CFindItemEngine::SFoundItem currentBodyHotSpotData; + THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( + currentHeaderHotSpotData, currentBodyHotSpotData ); + HBufC* schemeText = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); + if ( schemeText && schemeText->FindC( KVoipPrefix ) != 0 ) + { + uids.Append( FsEActionMenuCreateMessage ); + } + CleanupStack::PopAndDestroy( schemeText ); + if ( TFsEmailUiUtility::IsRemoteLookupSupported( *iMailBox ) ) + { + uids.Append( FsEActionMenuRemoteLookup ); + } + } + else if ( aActionMenuType == EFocusOnNameInAddressField || + aActionMenuType == EFocusOnEMailInBodyText ) + { + uids.Append( FsEActionMenuCall ); + uids.Append( FsEActionMenuCreateMessage ); + uids.Append( FsEActionMenuCreateEmail ); + uids.Append( FsEActionMenuContactDetails ); + uids.Append( FsEActionMenuAddToContacts ); + if ( TFsEmailUiUtility::IsRemoteLookupSupported( *iMailBox ) ) + { + uids.Append( FsEActionMenuRemoteLookup ); + } + } + else if ( aActionMenuType == EFocusOnHyperLinkWithinMessage ) + { + uids.Append( FsEActionMenuOpenInWeb ); + uids.Append( FsEActionMenuOpenInIntranet ); + uids.Append( FsEActionMenuBookmark ); + } + else if ( aActionMenuType == EFocusOnAttachmentName ) + { + if ( ShowOpenAttachmentOptionL() ) + { + uids.Append( FsEActionAttachmentOpen ); + } + if ( ShowDownloadOptionL() ) + { + uids.Append( FsEActionAttachmentDownload ); + } + if ( ShowCancelDownloadOption() ) + { + uids.Append( FsEActionAttachmentCancelDownload ); + } + if ( ShowSaveAttachmentOptionL() ) + { + uids.Append( FsEActionAttachmentSave ); + } if ( ShowOpenAttachmentOptionL() ) { uids.Append( FsEActionAttachmentClearFetchedContent ); } - } - else if ( aActionMenuType == EFocusOnAttachmentsText ) - { - if ( ShowOpenAttachmentOptionL() ) - { - uids.Append( FsEActionAttachmentViewAll ); - } - if ( ShowDownloadOptionL() ) - { - uids.Append( FsEActionAttachmentDownloadAll ); - } - if ( ShowCancelDownloadOption() ) - { - uids.Append( FsEActionAttachmentCancelAllDownloads ); - } - if ( ShowSaveAttachmentOptionL() ) - { - uids.Append( FsEActionAttachmentSaveAll ); - } - } - - TInt uidsCount = uids.Count(); - for ( TInt i = 0; i < uidsCount; i++ ) - { - CFSEmailUiActionMenu::AddCustomItemL( uids[i] ); - } - CleanupStack::PopAndDestroy( &uids ); - } + } + else if ( aActionMenuType == EFocusOnAttachmentsText ) + { + if ( ShowOpenAttachmentOptionL() ) + { + uids.Append( FsEActionAttachmentViewAll ); + } + if ( ShowDownloadOptionL() ) + { + uids.Append( FsEActionAttachmentDownloadAll ); + } + if ( ShowCancelDownloadOption() ) + { + uids.Append( FsEActionAttachmentCancelAllDownloads ); + } + if ( ShowSaveAttachmentOptionL() ) + { + uids.Append( FsEActionAttachmentSaveAll ); + } + } + + TInt uidsCount = uids.Count(); + for ( TInt i = 0; i < uidsCount; i++ ) + { + CFSEmailUiActionMenu::AddCustomItemL( uids[i] ); + } + CleanupStack::PopAndDestroy( &uids ); + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::HandleActionMenuCommandL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::HandleActionMenuCommandL( - TActionMenuCustomItemId aSelectedActionMenuItem, - TActionMenuType aActionMenuType ) - { + TActionMenuCustomItemId aSelectedActionMenuItem, + TActionMenuType aActionMenuType ) + { FUNC_LOG; - // check which hotspot is active. - SViewerHeadingHotSpotData currentHeaderHotSpotData; - CFindItemEngine::SFoundItem currentBodyHotSpotData; - THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( - currentHeaderHotSpotData, currentBodyHotSpotData ); - - if ( aActionMenuType == EFocusOnNumberWithinMessage ) - { - switch ( aSelectedActionMenuItem ) - { - case FsEActionMenuCall: // Call - { - CallToBodyHotSpotNumberL( currentBodyHotSpotData ); - } - break; - case FsEActionMenuAddToContacts: // Add to Contacts - { - HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( - currentBodyHotSpotData ); - SavePhoneNumberAsContactL( *hotspotText ); - CleanupStack::PopAndDestroy( hotspotText ); - } - break; - case FsEActionMenuCreateMessage: // Create message - { - CreateMessageL(); - } - break; - case FsEActionMenuRemoteLookup: // Remote lookup - { - HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( - currentBodyHotSpotData ); - LaunchRemoteLookupL( *hotspotText ); - CleanupStack::PopAndDestroy( hotspotText ); - } - break; - } - } - else if ( aActionMenuType == EFocusOnNameInAddressField ) - { - switch( aSelectedActionMenuItem ) - { - case FsEActionMenuCall: // Call - { - CallHotSpotAddressL(); - } - break; - case FsEActionMenuCreateMessage: // Create message - { - CreateMessageL(); - } - break; + // check which hotspot is active. + SViewerHeadingHotSpotData currentHeaderHotSpotData; + CFindItemEngine::SFoundItem currentBodyHotSpotData; + THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( + currentHeaderHotSpotData, currentBodyHotSpotData ); + + if ( aActionMenuType == EFocusOnNumberWithinMessage ) + { + switch ( aSelectedActionMenuItem ) + { + case FsEActionMenuCall: // Call + { + CallToBodyHotSpotNumberL( currentBodyHotSpotData ); + } + break; + case FsEActionMenuAddToContacts: // Add to Contacts + { + HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( + currentBodyHotSpotData ); + SavePhoneNumberAsContactL( *hotspotText ); + CleanupStack::PopAndDestroy( hotspotText ); + } + break; + case FsEActionMenuCreateMessage: // Create message + { + CreateMessageL(); + } + break; + case FsEActionMenuRemoteLookup: // Remote lookup + { + HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( + currentBodyHotSpotData ); + LaunchRemoteLookupL( *hotspotText ); + CleanupStack::PopAndDestroy( hotspotText ); + } + break; + } + } + else if ( aActionMenuType == EFocusOnNameInAddressField ) + { + switch( aSelectedActionMenuItem ) + { + case FsEActionMenuCall: // Call + { + CallHotSpotAddressL(); + } + break; + case FsEActionMenuCreateMessage: // Create message + { + CreateMessageL(); + } + break; case FsEActionMenuCreateEmail: // Create message { ComposeMailL(); } break; - case FsEActionMenuContactDetails: // Contact details - { - OpenContactDetailsL(); - } - break; - case FsEActionMenuAddToContacts: // Add to Contacts - { - HBufC* emailAddress = - iViewerRichText->GetHeaderHotspotEmailAddressLC( - currentHeaderHotSpotData ); - SaveEmailAsContactL( *emailAddress ); - CleanupStack::PopAndDestroy( emailAddress ); - } - break; - case FsEActionMenuRemoteLookup: // Remote lookup - { - HBufC* emailAddress = - iViewerRichText->GetHeaderHotspotEmailAddressLC( - currentHeaderHotSpotData ); - LaunchRemoteLookupL( *emailAddress ); - CleanupStack::PopAndDestroy( emailAddress ); - } - break; - } - } - else if ( aActionMenuType == EFocusOnHyperLinkWithinMessage ) - { - switch ( aSelectedActionMenuItem ) - { - case FsEActionMenuOpenInWeb: // Open in web - { - OpenHotSpotUrlInBrowserL( currentBodyHotSpotData ); - } - break; - case FsEActionMenuOpenInIntranet: // Open in intranet - { - OpenLinkInIntranetL( EFalse ); - } - break; - case FsEActionMenuBookmark: // Bookmark - { - AddToBookmarksL( currentBodyHotSpotData ); - } - break; - } - } - else if ( aActionMenuType == EFocusOnAttachmentName || - aActionMenuType == EFocusOnAttachmentsText ) - { - switch ( aSelectedActionMenuItem ) - { - case FsEActionAttachmentOpen: // Open single attachment - { - OpenAttachmentL(); + case FsEActionMenuContactDetails: // Contact details + { + OpenContactDetailsL(); + } + break; + case FsEActionMenuAddToContacts: // Add to Contacts + { + HBufC* emailAddress = + iViewerRichText->GetHeaderHotspotEmailAddressLC( + currentHeaderHotSpotData ); + SaveEmailAsContactL( *emailAddress ); + CleanupStack::PopAndDestroy( emailAddress ); + } + break; + case FsEActionMenuRemoteLookup: // Remote lookup + { + HBufC* emailAddress = + iViewerRichText->GetHeaderHotspotEmailAddressLC( + currentHeaderHotSpotData ); + LaunchRemoteLookupL( *emailAddress ); + CleanupStack::PopAndDestroy( emailAddress ); + } + break; + } + } + else if ( aActionMenuType == EFocusOnHyperLinkWithinMessage ) + { + switch ( aSelectedActionMenuItem ) + { + case FsEActionMenuOpenInWeb: // Open in web + { + OpenHotSpotUrlInBrowserL( currentBodyHotSpotData ); + } + break; + case FsEActionMenuOpenInIntranet: // Open in intranet + { + OpenLinkInIntranetL( EFalse ); + } + break; + case FsEActionMenuBookmark: // Bookmark + { + AddToBookmarksL( currentBodyHotSpotData ); } break; - case FsEActionAttachmentViewAll: // Open attachments list - { - OpenAttachmentsViewL(); - } - break; - case FsEActionAttachmentDownload: // Dowload one - case FsEActionAttachmentDownloadAll : /// all attachments - { - StartDowloadingAttachmentsL(); - } - break; - case FsEActionAttachmentCancelDownload: // Cancel one / all downloads - case FsEActionAttachmentCancelAllDownloads: - { - CancelDowloadingAttachmentsL(); - } - break; - case FsEActionAttachmentSave: // Save one / all attachments - case FsEActionAttachmentSaveAll: - { - SaveAllAttachmentsL(); - } - break; - case FsEActionAttachmentClearFetchedContent: - { - RemoveFetchedAttachmentL(); - } - break; - } - } - else if ( aActionMenuType == EFocusOnEMailInBodyText ) - { - switch ( aSelectedActionMenuItem ) - { - case FsEActionMenuCall: // Call - { - CallHotSpotAddressL(); - } - break; - case FsEActionMenuCreateMessage: // Create message - { - CreateMessageL(); - } - break; + } + } + else if ( aActionMenuType == EFocusOnAttachmentName || + aActionMenuType == EFocusOnAttachmentsText ) + { + switch ( aSelectedActionMenuItem ) + { + case FsEActionAttachmentOpen: // Open single attachment + { + OpenAttachmentL(); + } + break; + case FsEActionAttachmentViewAll: // Open attachments list + { + OpenAttachmentsViewL(); + } + break; + case FsEActionAttachmentDownload: // Dowload one + case FsEActionAttachmentDownloadAll : /// all attachments + { + StartDowloadingAttachmentsL(); + } + break; + case FsEActionAttachmentCancelDownload: // Cancel one / all downloads + case FsEActionAttachmentCancelAllDownloads: + { + CancelDowloadingAttachmentsL(); + } + break; + case FsEActionAttachmentSave: // Save one / all attachments + case FsEActionAttachmentSaveAll: + { + SaveAllAttachmentsL(); + } + break; + case FsEActionAttachmentClearFetchedContent: + { + RemoveFetchedAttachmentL(); + } + break; + } + } + else if ( aActionMenuType == EFocusOnEMailInBodyText ) + { + switch ( aSelectedActionMenuItem ) + { + case FsEActionMenuCall: // Call + { + CallHotSpotAddressL(); + } + break; + case FsEActionMenuCreateMessage: // Create message + { + CreateMessageL(); + } + break; case FsEActionMenuCreateEmail: // Create message { ComposeMailL(); } break; - case FsEActionMenuContactDetails: // Contact details - { - OpenContactDetailsL(); - } - break; - case FsEActionMenuAddToContacts: // Add to Contacts - { - HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( - currentBodyHotSpotData ); - if ( currentBodyHotSpotData.iItemType == - CFindItemEngine::EFindItemSearchPhoneNumberBin ) - { - SavePhoneNumberAsContactL( *hotspotText ); - } - else if ( currentBodyHotSpotData.iItemType == - CFindItemEngine::EFindItemSearchMailAddressBin ) - { - SaveEmailAsContactL( *hotspotText ); - } - else if ( currentBodyHotSpotData.iItemType == - CFindItemEngine::EFindItemSearchScheme ) - { - if ( hotspotText->FindC( KMailtoPrefix ) == 0 ) - { - // Save email as contact, address mailto: strip is done in SaveEmailAsContactL - SaveEmailAsContactL( *hotspotText ); - } - } - CleanupStack::PopAndDestroy( hotspotText ); - } - break; - case FsEActionMenuRemoteLookup: // Remote lookup - { - HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( - currentBodyHotSpotData ); - LaunchRemoteLookupL( *hotspotText ); - CleanupStack::PopAndDestroy( hotspotText ); - } - break; - } - } - } + case FsEActionMenuContactDetails: // Contact details + { + OpenContactDetailsL(); + } + break; + case FsEActionMenuAddToContacts: // Add to Contacts + { + HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( + currentBodyHotSpotData ); + if ( currentBodyHotSpotData.iItemType == + CFindItemEngine::EFindItemSearchPhoneNumberBin ) + { + SavePhoneNumberAsContactL( *hotspotText ); + } + else if ( currentBodyHotSpotData.iItemType == + CFindItemEngine::EFindItemSearchMailAddressBin ) + { + SaveEmailAsContactL( *hotspotText ); + } + else if ( currentBodyHotSpotData.iItemType == + CFindItemEngine::EFindItemSearchScheme ) + { + if ( hotspotText->FindC( KMailtoPrefix ) == 0 ) + { + // Save email as contact, address mailto: strip is done in SaveEmailAsContactL + SaveEmailAsContactL( *hotspotText ); + } + } + CleanupStack::PopAndDestroy( hotspotText ); + } + break; + case FsEActionMenuRemoteLookup: // Remote lookup + { + HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( + currentBodyHotSpotData ); + LaunchRemoteLookupL( *hotspotText ); + CleanupStack::PopAndDestroy( hotspotText ); + } + break; + } + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::OpenContactDetailsL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::OpenContactDetailsL() - { + { FUNC_LOG; - SViewerHeadingHotSpotData currentHeaderHotSpotData; - CFindItemEngine::SFoundItem currentBodyHotSpotData; - THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( currentHeaderHotSpotData, currentBodyHotSpotData ); - - HBufC* emailAddress = NULL; - if ( hotspotType == EHeaderHotspot ) - { - emailAddress = iViewerRichText->GetHeaderHotspotEmailAddressLC( currentHeaderHotSpotData ); - } - else if ( hotspotType == EBodyHotspot ) - { - emailAddress = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); - // Delete "mailto:" prefix if found - if ( emailAddress->FindC( KMailtoPrefix ) == 0 ) - { - emailAddress->Des().Delete( 0, KMailtoPrefix().Length() ); - } - } - else - { - return; - } - - CFsDelayedLoader::InstanceL()->GetContactHandlerL()->ShowContactDetailsL( - *emailAddress, EContactUpdateEmail, NULL ); - - CleanupStack::PopAndDestroy( emailAddress ); - } + SViewerHeadingHotSpotData currentHeaderHotSpotData; + CFindItemEngine::SFoundItem currentBodyHotSpotData; + THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( currentHeaderHotSpotData, currentBodyHotSpotData ); + + HBufC* emailAddress = NULL; + if ( hotspotType == EHeaderHotspot ) + { + emailAddress = iViewerRichText->GetHeaderHotspotEmailAddressLC( currentHeaderHotSpotData ); + } + else if ( hotspotType == EBodyHotspot ) + { + emailAddress = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); + // Delete "mailto:" prefix if found + if ( emailAddress->FindC( KMailtoPrefix ) == 0 ) + { + emailAddress->Des().Delete( 0, KMailtoPrefix().Length() ); + } + } + else + { + return; + } + + CFsDelayedLoader::InstanceL()->GetContactHandlerL()->ShowContactDetailsL( + *emailAddress, EContactUpdateEmail, NULL ); + + CleanupStack::PopAndDestroy( emailAddress ); + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::LaunchHtmlViewerL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::LaunchHtmlViewerL() - { + { FUNC_LOG; - if ( MessagePartFullyFetchedL( EMessageHtmlBodyPart ) ) - { - THtmlViewerActivationData htmlData; - htmlData.iActivationDataType = THtmlViewerActivationData::EMailMessage; - htmlData.iMailBoxId = iMessage->GetMailBoxId(); + if ( MessagePartFullyFetchedL( EMessageHtmlBodyPart ) ) + { + THtmlViewerActivationData htmlData; + htmlData.iActivationDataType = THtmlViewerActivationData::EMailMessage; + htmlData.iMailBoxId = iMessage->GetMailBoxId(); htmlData.iFolderId = iMessage->GetFolderId(); htmlData.iMessageId = iMessage->GetMessageId(); htmlData.iEmbeddedMessageMode = iEmbeddedMessageMode; - TPckgBuf pckgData( htmlData ); - - iAppUi.EnterFsEmailViewL( HtmlViewerId, KHtmlViewerOpenNew, pckgData ); - } - else - { - StartWaitedFetchingL( EMessageHtmlBodyPart ); - } - } + TPckgBuf pckgData( htmlData ); + + iAppUi.EnterFsEmailViewL( HtmlViewerId, KHtmlViewerOpenNew, pckgData ); + } + else + { + StartWaitedFetchingL( EMessageHtmlBodyPart ); + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::LaunchRemoteLookupL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::LaunchRemoteLookupL( const TDesC& aDes ) const - { + { FUNC_LOG; - // this method assumes that remote lookup is available with current plugin. - HBufC* textData = HBufC::NewLC( aDes.Length() ); - textData->Des().Append( aDes ); - if ( textData->FindC( KMailtoPrefix ) == 0 ) - { - textData->Des().Delete( 0, KMailtoPrefix().Length() ); - } - else if ( textData->FindC( KCallPrefix ) == 0 ) - { - textData->Des().Delete( 0, KCallPrefix().Length() ); - } - else if ( textData->FindC( KTelPrefix ) == 0 ) - { - textData->Des().Delete( 0, KTelPrefix().Length() ); - } - else if ( textData->FindC( KSmsPrefix ) == 0 ) - { - textData->Des().Delete( 0, KSmsPrefix().Length() ); - } - else if ( textData->FindC( KMmsPrefix ) == 0 ) - { - textData->Des().Delete( 0, KMmsPrefix().Length() ); - } - else if ( textData->FindC( KVoipPrefix ) == 0 ) - { - textData->Des().Delete( 0, KVoipPrefix().Length() ); - } - - CFsDelayedLoader::InstanceL()->GetContactHandlerL()->LaunchRemoteLookupWithQueryL( *iMailBox, *textData ); - CleanupStack::PopAndDestroy( textData ); - } + // this method assumes that remote lookup is available with current plugin. + HBufC* textData = HBufC::NewLC( aDes.Length() ); + textData->Des().Append( aDes ); + if ( textData->FindC( KMailtoPrefix ) == 0 ) + { + textData->Des().Delete( 0, KMailtoPrefix().Length() ); + } + else if ( textData->FindC( KCallPrefix ) == 0 ) + { + textData->Des().Delete( 0, KCallPrefix().Length() ); + } + else if ( textData->FindC( KTelPrefix ) == 0 ) + { + textData->Des().Delete( 0, KTelPrefix().Length() ); + } + else if ( textData->FindC( KSmsPrefix ) == 0 ) + { + textData->Des().Delete( 0, KSmsPrefix().Length() ); + } + else if ( textData->FindC( KMmsPrefix ) == 0 ) + { + textData->Des().Delete( 0, KMmsPrefix().Length() ); + } + else if ( textData->FindC( KVoipPrefix ) == 0 ) + { + textData->Des().Delete( 0, KVoipPrefix().Length() ); + } + + CFsDelayedLoader::InstanceL()->GetContactHandlerL()->LaunchRemoteLookupWithQueryL( *iMailBox, *textData ); + CleanupStack::PopAndDestroy( textData ); + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::AddToBookmarksL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::AddToBookmarksL( - const CFindItemEngine::SFoundItem& aBodyHotspotData ) const - { + const CFindItemEngine::SFoundItem& aBodyHotspotData ) const + { FUNC_LOG; - HBufC* hotspotText = - iViewerRichText->GetHotspotTextLC( aBodyHotspotData ); - - RFavouritesSession fSession; - User::LeaveIfError( fSession.Connect() ); - CleanupClosePushL( fSession ); - - RFavouritesDb favoris; - User::LeaveIfError( favoris.Open( fSession, KBrowserBookmarks ) ); - CleanupClosePushL( favoris ); - - CFavouritesItem *favorisItem = CFavouritesItem::NewLC(); - favorisItem->SetType( CFavouritesItem::EItem ); - favorisItem->SetUrlL( *hotspotText ); + HBufC* hotspotText = + iViewerRichText->GetHotspotTextLC( aBodyHotspotData ); + + RFavouritesSession fSession; + User::LeaveIfError( fSession.Connect() ); + CleanupClosePushL( fSession ); + + RFavouritesDb favoris; + User::LeaveIfError( favoris.Open( fSession, KBrowserBookmarks ) ); + CleanupClosePushL( favoris ); + + CFavouritesItem *favorisItem = CFavouritesItem::NewLC(); + favorisItem->SetType( CFavouritesItem::EItem ); + favorisItem->SetUrlL( *hotspotText ); // Should be less than KFavouritesMaxName ( 50 ) - if ( hotspotText->Length() > KFavouritesMaxName ) - { - favorisItem->SetNameL( hotspotText->Left( KFavouritesMaxName ) ); - } - else - { - favorisItem->SetNameL( *hotspotText ); - } - - favorisItem->SetParentFolder( KFavouritesRootUid ); - - TInt error = favoris.Add( *favorisItem, ETrue ); - - CleanupStack::PopAndDestroy( favorisItem ); - CleanupStack::PopAndDestroy( &favoris ); - CleanupStack::PopAndDestroy( &fSession ); - - CleanupStack::PopAndDestroy( hotspotText ); - - if ( error == KErrNone ) - { - TFsEmailUiUtility::ShowInfoNoteL( - R_FREESTYLE_EMAIL_UI_VIEWER_BOOKMARK_ADDED, ETrue ); - } - else // Error in bookmark creation, show could not complete message - { - TFsEmailUiUtility::ShowErrorNoteL( - R_FREESTYLE_EMAIL_ERROR_GENERAL_UNABLE_TO_COMPLETE, ETrue ); - } - } + if ( hotspotText->Length() > KFavouritesMaxName ) + { + favorisItem->SetNameL( hotspotText->Left( KFavouritesMaxName ) ); + } + else + { + favorisItem->SetNameL( *hotspotText ); + } + + favorisItem->SetParentFolder( KFavouritesRootUid ); + + TInt error = favoris.Add( *favorisItem, ETrue ); + + CleanupStack::PopAndDestroy( favorisItem ); + CleanupStack::PopAndDestroy( &favoris ); + CleanupStack::PopAndDestroy( &fSession ); + + CleanupStack::PopAndDestroy( hotspotText ); + + if ( error == KErrNone ) + { + TFsEmailUiUtility::ShowInfoNoteL( + R_FREESTYLE_EMAIL_UI_VIEWER_BOOKMARK_ADDED, ETrue ); + } + else // Error in bookmark creation, show could not complete message + { + TFsEmailUiUtility::ShowErrorNoteL( + R_FREESTYLE_EMAIL_ERROR_GENERAL_UNABLE_TO_COMPLETE, ETrue ); + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::CallHotSpotAddressL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::CallHotSpotAddressL() - { + { FUNC_LOG; - SViewerHeadingHotSpotData currentHeaderHotSpotData; - CFindItemEngine::SFoundItem currentBodyHotSpotData; - THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( currentHeaderHotSpotData, currentBodyHotSpotData ); + SViewerHeadingHotSpotData currentHeaderHotSpotData; + CFindItemEngine::SFoundItem currentBodyHotSpotData; + THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( currentHeaderHotSpotData, currentBodyHotSpotData ); if( hotspotType == EHeaderHotspot && currentHeaderHotSpotData.iType == ETypeFromAddressDisplayName ) { @@ -3328,123 +3328,123 @@ CleanupStack::PopAndDestroy( emailAddress ); } else if( ( hotspotType == EHeaderHotspot && - ( currentHeaderHotSpotData.iType == ETypeToAddressDisplayName || - currentHeaderHotSpotData.iType == ETypeCcAddressDisplayName || - currentHeaderHotSpotData.iType == ETypeBccAddressDisplayName || - currentHeaderHotSpotData.iType == ETypeEmailAddress ) - ) - ) - { - HBufC* emailAddress = iViewerRichText->GetHeaderHotspotEmailAddressLC( currentHeaderHotSpotData ); - CFsDelayedLoader::InstanceL()->GetContactHandlerL()->FindAndCallToContactByEmailL( *emailAddress, - iAppUi.GetActiveMailbox(), this, EFalse /*use call sender text*/); - CleanupStack::PopAndDestroy( emailAddress ); - } - else if( hotspotType == EBodyHotspot && - currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchMailAddressBin ) - { - HBufC* emailAddress = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); - CFsDelayedLoader::InstanceL()->GetContactHandlerL()->FindAndCallToContactByEmailL( *emailAddress, - iAppUi.GetActiveMailbox(), this, EFalse ); - CleanupStack::PopAndDestroy( emailAddress ); - } - else if( hotspotType == EBodyHotspot && - currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchPhoneNumberBin ) - { - CallToBodyHotSpotNumberL( currentBodyHotSpotData ); - } - else if ( currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchScheme ) - { - // Get scheme text and make sure there is "mailto:" text or "call:" text - HBufC* schemeText = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); - if ( schemeText && schemeText->FindC( KMailtoPrefix ) == 0 ) - { - schemeText->Des().Delete( 0, KMailtoPrefix().Length() ); - CFsDelayedLoader::InstanceL()->GetContactHandlerL()->FindAndCallToContactByEmailL( *schemeText, - iAppUi.GetActiveMailbox(), this, EFalse); - } - else if ( schemeText->FindC( KCallPrefix ) == 0 || - schemeText->FindC( KTelPrefix ) == 0 || - schemeText->FindC( KSmsPrefix ) == 0 || - schemeText->FindC( KMmsPrefix ) == 0 || - schemeText->FindC( KVoipPrefix ) == 0 ) - { - CallToBodyHotSpotNumberL( currentBodyHotSpotData ); - } - CleanupStack::PopAndDestroy( schemeText ); - } - - } + ( currentHeaderHotSpotData.iType == ETypeToAddressDisplayName || + currentHeaderHotSpotData.iType == ETypeCcAddressDisplayName || + currentHeaderHotSpotData.iType == ETypeBccAddressDisplayName || + currentHeaderHotSpotData.iType == ETypeEmailAddress ) + ) + ) + { + HBufC* emailAddress = iViewerRichText->GetHeaderHotspotEmailAddressLC( currentHeaderHotSpotData ); + CFsDelayedLoader::InstanceL()->GetContactHandlerL()->FindAndCallToContactByEmailL( *emailAddress, + iAppUi.GetActiveMailbox(), this, EFalse /*use call sender text*/); + CleanupStack::PopAndDestroy( emailAddress ); + } + else if( hotspotType == EBodyHotspot && + currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchMailAddressBin ) + { + HBufC* emailAddress = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); + CFsDelayedLoader::InstanceL()->GetContactHandlerL()->FindAndCallToContactByEmailL( *emailAddress, + iAppUi.GetActiveMailbox(), this, EFalse ); + CleanupStack::PopAndDestroy( emailAddress ); + } + else if( hotspotType == EBodyHotspot && + currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchPhoneNumberBin ) + { + CallToBodyHotSpotNumberL( currentBodyHotSpotData ); + } + else if ( currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchScheme ) + { + // Get scheme text and make sure there is "mailto:" text or "call:" text + HBufC* schemeText = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); + if ( schemeText && schemeText->FindC( KMailtoPrefix ) == 0 ) + { + schemeText->Des().Delete( 0, KMailtoPrefix().Length() ); + CFsDelayedLoader::InstanceL()->GetContactHandlerL()->FindAndCallToContactByEmailL( *schemeText, + iAppUi.GetActiveMailbox(), this, EFalse); + } + else if ( schemeText->FindC( KCallPrefix ) == 0 || + schemeText->FindC( KTelPrefix ) == 0 || + schemeText->FindC( KSmsPrefix ) == 0 || + schemeText->FindC( KMmsPrefix ) == 0 || + schemeText->FindC( KVoipPrefix ) == 0 ) + { + CallToBodyHotSpotNumberL( currentBodyHotSpotData ); + } + CleanupStack::PopAndDestroy( schemeText ); + } + + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::CreateMessageL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::CreateMessageL() const - { + { FUNC_LOG; - SViewerHeadingHotSpotData currentHeaderHotSpotData; - CFindItemEngine::SFoundItem currentBodyHotSpotData; - THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( currentHeaderHotSpotData, currentBodyHotSpotData ); - - if( hotspotType == EHeaderHotspot ) - { - HBufC* emailAddress = iViewerRichText->GetHeaderHotspotEmailAddressLC( currentHeaderHotSpotData ); - CFSEmailUiContactHandler* cntHandlerInstance = CFsDelayedLoader::InstanceL()->GetContactHandlerL(); - cntHandlerInstance->FindAndCreateMsgToContactByEmailL( *emailAddress, iAppUi.GetActiveMailbox() ); - CleanupStack::PopAndDestroy( emailAddress ); - } - else if( hotspotType == EBodyHotspot ) - { - // Sending based on email address, goes to contact handler - if ( currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchMailAddressBin ) - { - HBufC* emailAddress = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); - CFSEmailUiContactHandler* cntHandlerInstance = CFsDelayedLoader::InstanceL()->GetContactHandlerL(); - cntHandlerInstance->FindAndCreateMsgToContactByEmailL( *emailAddress, iAppUi.GetActiveMailbox() ); - CleanupStack::PopAndDestroy( emailAddress ); - } - // Sending based on found number, goes to utility class - else if ( currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchPhoneNumberBin ) - { - HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); - TFsEmailUiUtility::ShowCreateMessageQueryL( *hotspotText ); - CleanupStack::PopAndDestroy( hotspotText ); - } - else if ( currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchScheme ) - { - // Get scheme text and make sure there is "mailto:" text or "call:" text - HBufC* schemeText = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); - if ( schemeText && ( schemeText->FindC( KMailtoPrefix ) == 0 || - schemeText->FindC( KVoipPrefix ) == 0) ) - { - schemeText->Des().Delete( 0, KMailtoPrefix().Length() ); - CFSEmailUiContactHandler* cntHandlerInstance = CFsDelayedLoader::InstanceL()->GetContactHandlerL(); - cntHandlerInstance->FindAndCreateMsgToContactByEmailL( *schemeText, iAppUi.GetActiveMailbox() ); - } - else if ( schemeText && schemeText->FindC( KCallPrefix ) == 0 ) - { - schemeText->Des().Delete( 0, KCallPrefix().Length() ); - TFsEmailUiUtility::ShowCreateMessageQueryL( *schemeText ); - } - else if ( schemeText && schemeText->FindC( KTelPrefix ) == 0 ) - { - schemeText->Des().Delete( 0, KTelPrefix().Length() ); - TFsEmailUiUtility::ShowCreateMessageQueryL( *schemeText ); - } - else if ( schemeText && schemeText->FindC( KSmsPrefix ) == 0 ) - { - schemeText->Des().Delete( 0, KSmsPrefix().Length() ); - TFsEmailUiUtility::ShowCreateMessageQueryL( *schemeText ); - } - else if ( schemeText && schemeText->FindC( KMmsPrefix ) == 0 ) - { - schemeText->Des().Delete( 0, KMmsPrefix().Length() ); - TFsEmailUiUtility::ShowCreateMessageQueryL( *schemeText ); - } - CleanupStack::PopAndDestroy( schemeText ); - } - } - } + SViewerHeadingHotSpotData currentHeaderHotSpotData; + CFindItemEngine::SFoundItem currentBodyHotSpotData; + THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( currentHeaderHotSpotData, currentBodyHotSpotData ); + + if( hotspotType == EHeaderHotspot ) + { + HBufC* emailAddress = iViewerRichText->GetHeaderHotspotEmailAddressLC( currentHeaderHotSpotData ); + CFSEmailUiContactHandler* cntHandlerInstance = CFsDelayedLoader::InstanceL()->GetContactHandlerL(); + cntHandlerInstance->FindAndCreateMsgToContactByEmailL( *emailAddress, iAppUi.GetActiveMailbox() ); + CleanupStack::PopAndDestroy( emailAddress ); + } + else if( hotspotType == EBodyHotspot ) + { + // Sending based on email address, goes to contact handler + if ( currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchMailAddressBin ) + { + HBufC* emailAddress = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); + CFSEmailUiContactHandler* cntHandlerInstance = CFsDelayedLoader::InstanceL()->GetContactHandlerL(); + cntHandlerInstance->FindAndCreateMsgToContactByEmailL( *emailAddress, iAppUi.GetActiveMailbox() ); + CleanupStack::PopAndDestroy( emailAddress ); + } + // Sending based on found number, goes to utility class + else if ( currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchPhoneNumberBin ) + { + HBufC* hotspotText = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); + TFsEmailUiUtility::ShowCreateMessageQueryL( *hotspotText ); + CleanupStack::PopAndDestroy( hotspotText ); + } + else if ( currentBodyHotSpotData.iItemType == CFindItemEngine::EFindItemSearchScheme ) + { + // Get scheme text and make sure there is "mailto:" text or "call:" text + HBufC* schemeText = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); + if ( schemeText && ( schemeText->FindC( KMailtoPrefix ) == 0 || + schemeText->FindC( KVoipPrefix ) == 0) ) + { + schemeText->Des().Delete( 0, KMailtoPrefix().Length() ); + CFSEmailUiContactHandler* cntHandlerInstance = CFsDelayedLoader::InstanceL()->GetContactHandlerL(); + cntHandlerInstance->FindAndCreateMsgToContactByEmailL( *schemeText, iAppUi.GetActiveMailbox() ); + } + else if ( schemeText && schemeText->FindC( KCallPrefix ) == 0 ) + { + schemeText->Des().Delete( 0, KCallPrefix().Length() ); + TFsEmailUiUtility::ShowCreateMessageQueryL( *schemeText ); + } + else if ( schemeText && schemeText->FindC( KTelPrefix ) == 0 ) + { + schemeText->Des().Delete( 0, KTelPrefix().Length() ); + TFsEmailUiUtility::ShowCreateMessageQueryL( *schemeText ); + } + else if ( schemeText && schemeText->FindC( KSmsPrefix ) == 0 ) + { + schemeText->Des().Delete( 0, KSmsPrefix().Length() ); + TFsEmailUiUtility::ShowCreateMessageQueryL( *schemeText ); + } + else if ( schemeText && schemeText->FindC( KMmsPrefix ) == 0 ) + { + schemeText->Des().Delete( 0, KMmsPrefix().Length() ); + TFsEmailUiUtility::ShowCreateMessageQueryL( *schemeText ); + } + CleanupStack::PopAndDestroy( schemeText ); + } + } + } TBool CFSEmailUiMailViewerVisualiser::IsCopyToClipBoardAvailableL() const { @@ -3498,7 +3498,7 @@ // CFSEmailUiMailViewerVisualiser::CopyCurrentHotspotToClipBoardL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::CopyCurrentHotspotToClipBoardL() const - { + { FUNC_LOG; TInt ignoreThis( 0 ); TBool visibleHotsSpot = @@ -3551,7 +3551,7 @@ CleanupStack::PopAndDestroy( clipBoardText ); } } - } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::ShowOpenAttachmentOptionL @@ -3561,9 +3561,9 @@ FUNC_LOG; TInt ret = EFalse; - RPointerArray attachments; - CleanupResetAndDestroyClosePushL( attachments ); - iMessage->AttachmentListL( attachments ); + RPointerArray attachments; + CleanupResetAndDestroyClosePushL( attachments ); + iMessage->AttachmentListL( attachments ); // The Open option is always available when focus on the multiple // attachments item. @@ -3630,28 +3630,28 @@ // CFSEmailUiMailViewerVisualiser::ShowDownloadOptionL // ----------------------------------------------------------------------------- TBool CFSEmailUiMailViewerVisualiser::ShowDownloadOptionL() - { + { FUNC_LOG; - TBool retVal = EFalse; - - TPartData partData = MailData(); - - RPointerArray attachments; - CleanupResetAndDestroyClosePushL( attachments ); - iMessage->AttachmentListL( attachments ); - TInt attachmentsCount = attachments.Count(); - for ( TInt i = 0; i < attachmentsCount; i++ ) - { - partData.iMessagePartId = attachments[i]->GetPartId(); - if ( iAppUi.DownloadInfoMediator() && iAppUi.DownloadInfoMediator()->IsDownloadableL( partData ) ) - { - retVal = ETrue; - break; - } - } - CleanupStack::PopAndDestroy( &attachments ); - return retVal; - } + TBool retVal = EFalse; + + TPartData partData = MailData(); + + RPointerArray attachments; + CleanupResetAndDestroyClosePushL( attachments ); + iMessage->AttachmentListL( attachments ); + TInt attachmentsCount = attachments.Count(); + for ( TInt i = 0; i < attachmentsCount; i++ ) + { + partData.iMessagePartId = attachments[i]->GetPartId(); + if ( iAppUi.DownloadInfoMediator() && iAppUi.DownloadInfoMediator()->IsDownloadableL( partData ) ) + { + retVal = ETrue; + break; + } + } + CleanupStack::PopAndDestroy( &attachments ); + return retVal; + } // ----------------------------------------------------------------------------- @@ -3687,178 +3687,178 @@ // CFSEmailUiMailViewerVisualiser::ShowCancelDownloadOption // ----------------------------------------------------------------------------- TBool CFSEmailUiMailViewerVisualiser::ShowCancelDownloadOption() - { + { FUNC_LOG; - TBool ret( EFalse ); - if ( iMessage && iAppUi.DownloadInfoMediator() ) - { - ret = iAppUi.DownloadInfoMediator()->IsAnyAttachmentDownloads( - iMessage->GetMessageId() ); - } - return ret; - } + TBool ret( EFalse ); + if ( iMessage && iAppUi.DownloadInfoMediator() ) + { + ret = iAppUi.DownloadInfoMediator()->IsAnyAttachmentDownloads( + iMessage->GetMessageId() ); + } + return ret; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::OpenAttachmentL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::OpenAttachmentL() - { + { FUNC_LOG; - if ( !iMessage ) - { - User::Leave( KErrNotReady ); - } - - RPointerArray attachments; - CleanupResetAndDestroyClosePushL( attachments ); - iMessage->AttachmentListL( attachments ); - - // start downloading if not yet downloaded. - if ( ShowDownloadOptionL() ) - { - StartDowloadingAttachmentsL(); - } - else if ( ShowCancelDownloadOption() ) // show download ongoing info - { - TFsEmailUiUtility::ShowInfoNoteL( - R_FSE_VIEWER_NOTE_ATTACHMENT_DOWNLOADING_PROGRESS ); - } - else // open if attachment is already downloaded - { - TInt attachmentsCount = attachments.Count(); - if ( attachmentsCount ) - { - // - TFsEmailUiUtility::OpenAttachmentL( *attachments[attachmentsCount-1] ); - // - } - } - - CleanupStack::PopAndDestroy( &attachments ); - } + if ( !iMessage ) + { + User::Leave( KErrNotReady ); + } + + RPointerArray attachments; + CleanupResetAndDestroyClosePushL( attachments ); + iMessage->AttachmentListL( attachments ); + + // start downloading if not yet downloaded. + if ( ShowDownloadOptionL() ) + { + StartDowloadingAttachmentsL(); + } + else if ( ShowCancelDownloadOption() ) // show download ongoing info + { + TFsEmailUiUtility::ShowInfoNoteL( + R_FSE_VIEWER_NOTE_ATTACHMENT_DOWNLOADING_PROGRESS ); + } + else // open if attachment is already downloaded + { + TInt attachmentsCount = attachments.Count(); + if ( attachmentsCount ) + { + // + TFsEmailUiUtility::OpenAttachmentL( *attachments[attachmentsCount-1] ); + // + } + } + + CleanupStack::PopAndDestroy( &attachments ); + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::OpenAttachmentsViewL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::OpenAttachmentsViewL() - { + { FUNC_LOG; - // give pointer to current for attachments list view - TAttachmentListActivationData params; - params.iMailBoxId = iMessage->GetMailBoxId(); - params.iFolderId = iMessage->GetFolderId(); - params.iMessageId = iMessage->GetMessageId(); - params.iEmbeddedMsgMode = iEmbeddedMessageMode; - // use package buffer to pass the params - TPckgBuf buf( params ); - TUid emptyCustomMessageId = { 0 }; - iAppUi.EnterFsEmailViewL( - AttachmentMngrViewId, emptyCustomMessageId, buf ); - } + // give pointer to current for attachments list view + TAttachmentListActivationData params; + params.iMailBoxId = iMessage->GetMailBoxId(); + params.iFolderId = iMessage->GetFolderId(); + params.iMessageId = iMessage->GetMessageId(); + params.iEmbeddedMsgMode = iEmbeddedMessageMode; + // use package buffer to pass the params + TPckgBuf buf( params ); + TUid emptyCustomMessageId = { 0 }; + iAppUi.EnterFsEmailViewL( + AttachmentMngrViewId, emptyCustomMessageId, buf ); + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::StartDowloadingAttachmentsL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::StartDowloadingAttachmentsL() - { + { FUNC_LOG; - TPartData partData = MailData(); - - RPointerArray attachments; - CleanupResetAndDestroyClosePushL( attachments ); - iMessage->AttachmentListL( attachments ); - TInt attachmentsCount = attachments.Count(); - for( TInt i = 0; i < attachmentsCount; i++) - { - if ( attachments[i]->FetchLoadState() == EFSNone || - attachments[i]->FetchLoadState() == EFSPartial ) - { - partData.iMessagePartId = attachments[i]->GetPartId(); - if ( iAppUi.DownloadInfoMediator() ) - { - iAppUi.DownloadInfoMediator()->DownloadL( partData ); - } - } - } - CleanupStack::PopAndDestroy( &attachments ); - } + TPartData partData = MailData(); + + RPointerArray attachments; + CleanupResetAndDestroyClosePushL( attachments ); + iMessage->AttachmentListL( attachments ); + TInt attachmentsCount = attachments.Count(); + for( TInt i = 0; i < attachmentsCount; i++) + { + if ( attachments[i]->FetchLoadState() == EFSNone || + attachments[i]->FetchLoadState() == EFSPartial ) + { + partData.iMessagePartId = attachments[i]->GetPartId(); + if ( iAppUi.DownloadInfoMediator() ) + { + iAppUi.DownloadInfoMediator()->DownloadL( partData ); + } + } + } + CleanupStack::PopAndDestroy( &attachments ); + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::CancelDowloadingAttachmentsL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::CancelDowloadingAttachmentsL() - { + { FUNC_LOG; - RPointerArray attachments; - CleanupResetAndDestroyClosePushL( attachments ); - iMessage->AttachmentListL( attachments ); - TInt attachmentsCount = attachments.Count(); - - // ask confirmation for cancel - TInt promptTextId = R_FSE_VIEWER_CANCEL_DOWNLOAD_QUERY; - if ( attachmentsCount > 1 ) - { - promptTextId = R_FSE_VIEWER_CANCEL_DOWNLOADS_QUERY; - } - - if ( TFsEmailUiUtility::ShowConfirmationQueryL(promptTextId) && iAppUi.DownloadInfoMediator() ) - { - for ( TInt i = 0 ; i < attachmentsCount ; i++ ) - { - TFSPartFetchState fetchState = attachments[i]->FetchLoadState(); - if ( fetchState == EFSPartial || fetchState == EFSNone ) - { - iAppUi.DownloadInfoMediator()->CancelDownloadL( attachments[i]->GetPartId() ); - } - } - } - CleanupStack::PopAndDestroy( &attachments ); - } + RPointerArray attachments; + CleanupResetAndDestroyClosePushL( attachments ); + iMessage->AttachmentListL( attachments ); + TInt attachmentsCount = attachments.Count(); + + // ask confirmation for cancel + TInt promptTextId = R_FSE_VIEWER_CANCEL_DOWNLOAD_QUERY; + if ( attachmentsCount > 1 ) + { + promptTextId = R_FSE_VIEWER_CANCEL_DOWNLOADS_QUERY; + } + + if ( TFsEmailUiUtility::ShowConfirmationQueryL(promptTextId) && iAppUi.DownloadInfoMediator() ) + { + for ( TInt i = 0 ; i < attachmentsCount ; i++ ) + { + TFSPartFetchState fetchState = attachments[i]->FetchLoadState(); + if ( fetchState == EFSPartial || fetchState == EFSNone ) + { + iAppUi.DownloadInfoMediator()->CancelDownloadL( attachments[i]->GetPartId() ); + } + } + } + CleanupStack::PopAndDestroy( &attachments ); + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::SaveAllAttachmentsL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::SaveAllAttachmentsL() - { + { FUNC_LOG; - TFileName fileName; - if ( TFsEmailUiUtility::ShowSaveFolderDialogL( fileName ) ) - { - // start downloading attachemts which are not downloaded. - // Save all attachment which all already downloaded - TPartData partData = MailData(); - - RPointerArray attachments; - CleanupResetAndDestroyClosePushL( attachments ); - iMessage->AttachmentListL( attachments ); - TInt attachmentsCount = attachments.Count(); + TFileName fileName; + if ( TFsEmailUiUtility::ShowSaveFolderDialogL( fileName ) ) + { + // start downloading attachemts which are not downloaded. + // Save all attachment which all already downloaded + TPartData partData = MailData(); + + RPointerArray attachments; + CleanupResetAndDestroyClosePushL( attachments ); + iMessage->AttachmentListL( attachments ); + TInt attachmentsCount = attachments.Count(); // remove the MRUI part of the message so we - // don't save unnecessary .ics file + // don't save unnecessary .ics file CFSMailMessagePart* calendarPart = iMessage->FindBodyPartL( KFSMailContentTypeTextCalendar ); CleanupStack::PushL( calendarPart ); // - TInt savedCount( 0 ); - for ( TInt i = 0; i < attachmentsCount; i++ ) - { - partData.iMessagePartId = attachments[i]->GetPartId(); - if ( iAppUi.DownloadInfoMediator() && iAppUi.DownloadInfoMediator()->IsDownloadableL( partData ) ) - { // start download and let mediator do the saving - iAppUi.DownloadInfoMediator()->DownloadAndSaveL( partData, fileName ); - } - else // save immediately. - { - // + TInt savedCount( 0 ); + for ( TInt i = 0; i < attachmentsCount; i++ ) + { + partData.iMessagePartId = attachments[i]->GetPartId(); + if ( iAppUi.DownloadInfoMediator() && iAppUi.DownloadInfoMediator()->IsDownloadableL( partData ) ) + { // start download and let mediator do the saving + iAppUi.DownloadInfoMediator()->DownloadAndSaveL( partData, fileName ); + } + else // save immediately. + { + // if( (calendarPart && partData.iMessagePartId != calendarPart->GetPartId() || !calendarPart) && TFsEmailUiUtility::OkToSaveFileL( fileName, *attachments[i] ) ) { - attachments[i]->CopyContentFileL( fileName ); - savedCount++; + attachments[i]->CopyContentFileL( fileName ); + savedCount++; } - // - } - } + // + } + } if ( savedCount ) { TFsEmailUiUtility::ShowFilesSavedToFolderNoteL( savedCount ); @@ -3866,9 +3866,9 @@ // CleanupStack::PopAndDestroy( calendarPart ); // - CleanupStack::PopAndDestroy( &attachments ); - } - } + CleanupStack::PopAndDestroy( &attachments ); + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::RemoveFetchedAttachmentL @@ -3898,175 +3898,175 @@ // CFSEmailUiMailViewerVisualiser::MailData // ----------------------------------------------------------------------------- TPartData CFSEmailUiMailViewerVisualiser::MailData() - { + { FUNC_LOG; - TPartData newPartData; - newPartData.iMailBoxId = iMessage->GetMailBoxId(); - newPartData.iFolderId = iMessage->GetFolderId(); - newPartData.iMessageId = iMessage->GetMessageId(); - return newPartData; - } + TPartData newPartData; + newPartData.iMailBoxId = iMessage->GetMailBoxId(); + newPartData.iFolderId = iMessage->GetFolderId(); + newPartData.iMessageId = iMessage->GetMessageId(); + return newPartData; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::StartFetchingBodyAfterOpeningL // ----------------------------------------------------------------------------- TBool CFSEmailUiMailViewerVisualiser::StartFetchingBodyAfterOpeningL() const - { + { FUNC_LOG; - TBool retVal = EFalse; - CFSMailMessagePart* textPart = iMessage->PlainTextBodyPartL(); - if ( textPart ) - { - TFSPartFetchState currentPlainTextFetchState = textPart->FetchLoadState(); - if ( currentPlainTextFetchState == EFSNone ) - { - retVal = ETrue; - } - } - delete textPart; - return retVal; - } + TBool retVal = EFalse; + CFSMailMessagePart* textPart = iMessage->PlainTextBodyPartL(); + if ( textPart ) + { + TFSPartFetchState currentPlainTextFetchState = textPart->FetchLoadState(); + if ( currentPlainTextFetchState == EFSNone ) + { + retVal = ETrue; + } + } + delete textPart; + return retVal; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::MessagePartFullyFetchedL // ----------------------------------------------------------------------------- TBool CFSEmailUiMailViewerVisualiser::MessagePartFullyFetchedL( TFetchedContentType aFetchedContentType ) const - { + { FUNC_LOG; - TBool retVal = ETrue; - if( aFetchedContentType == EMessagePlainTextBodyPart ) - { - CFSMailMessagePart* textPart = iMessage->PlainTextBodyPartL(); - if( textPart ) - { - TFSPartFetchState currentPlainTextFetchState = textPart->FetchLoadState(); - if( currentPlainTextFetchState != EFSFull ) - { - retVal = EFalse; - } - } - delete textPart; - } - else if( aFetchedContentType == EMessageHtmlBodyPart ) - { - CFSMailMessagePart* htmlPart = iMessage->HtmlBodyPartL(); - if( htmlPart ) - { - TFSPartFetchState currentHtmlTextFetchState = htmlPart->FetchLoadState(); - if( currentHtmlTextFetchState != EFSFull ) - { - retVal = EFalse; - } - } - delete htmlPart; - } - else if( aFetchedContentType == EMessageStructure ) - { - retVal = MessageStructureKnown( *iMessage ); - } - else - { - User::Leave( KErrNotSupported ); - } - return retVal; - } + TBool retVal = ETrue; + if( aFetchedContentType == EMessagePlainTextBodyPart ) + { + CFSMailMessagePart* textPart = iMessage->PlainTextBodyPartL(); + if( textPart ) + { + TFSPartFetchState currentPlainTextFetchState = textPart->FetchLoadState(); + if( currentPlainTextFetchState != EFSFull ) + { + retVal = EFalse; + } + } + delete textPart; + } + else if( aFetchedContentType == EMessageHtmlBodyPart ) + { + CFSMailMessagePart* htmlPart = iMessage->HtmlBodyPartL(); + if( htmlPart ) + { + TFSPartFetchState currentHtmlTextFetchState = htmlPart->FetchLoadState(); + if( currentHtmlTextFetchState != EFSFull ) + { + retVal = EFalse; + } + } + delete htmlPart; + } + else if( aFetchedContentType == EMessageStructure ) + { + retVal = MessageStructureKnown( *iMessage ); + } + else + { + User::Leave( KErrNotSupported ); + } + return retVal; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::StartFetchingMessagePartL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::StartFetchingMessagePartL( CFSMailMessage& aMessagePtr, - TFetchedContentType aFetchedContentType ) - { + TFetchedContentType aFetchedContentType ) + { FUNC_LOG; - if( aFetchedContentType == EMessagePlainTextBodyPart ) - { - CFSMailMessagePart* textPart = aMessagePtr.PlainTextBodyPartL(); - CleanupStack::PushL( textPart ); - TFSMailMsgId textPartId = textPart->GetPartId(); - iFetchingPlainTextMessageBody = ETrue; - iCurrentPlainTextBodyFetchRequestId = textPart->FetchMessagePartL( textPartId, *this, 0 ); - CleanupStack::PopAndDestroy( textPart ); - } - else if( aFetchedContentType == EMessageHtmlBodyPart ) - { - CFSMailMessagePart* htmlPart = aMessagePtr.HtmlBodyPartL(); - CleanupStack::PushL( htmlPart ); - TFSMailMsgId htmlPartId = htmlPart->GetPartId(); - iFetchingHtmlMessageBody = ETrue; - iCurrentHtmlBodyFetchRequestId = htmlPart->FetchMessagePartL( htmlPartId, *this, 0 ); - CleanupStack::PopAndDestroy( htmlPart ); - } - else if( aFetchedContentType == EMessageStructure ) - { - StartFetchingMessageStructureL( aMessagePtr ); - } - else - { - User::Leave( KErrNotSupported ); - } - } + if( aFetchedContentType == EMessagePlainTextBodyPart ) + { + CFSMailMessagePart* textPart = aMessagePtr.PlainTextBodyPartL(); + CleanupStack::PushL( textPart ); + TFSMailMsgId textPartId = textPart->GetPartId(); + iFetchingPlainTextMessageBody = ETrue; + iCurrentPlainTextBodyFetchRequestId = textPart->FetchMessagePartL( textPartId, *this, 0 ); + CleanupStack::PopAndDestroy( textPart ); + } + else if( aFetchedContentType == EMessageHtmlBodyPart ) + { + CFSMailMessagePart* htmlPart = aMessagePtr.HtmlBodyPartL(); + CleanupStack::PushL( htmlPart ); + TFSMailMsgId htmlPartId = htmlPart->GetPartId(); + iFetchingHtmlMessageBody = ETrue; + iCurrentHtmlBodyFetchRequestId = htmlPart->FetchMessagePartL( htmlPartId, *this, 0 ); + CleanupStack::PopAndDestroy( htmlPart ); + } + else if( aFetchedContentType == EMessageStructure ) + { + StartFetchingMessageStructureL( aMessagePtr ); + } + else + { + User::Leave( KErrNotSupported ); + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::CancelFetchings // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::CancelFetchings() - { + { FUNC_LOG; - if( iFetchingPlainTextMessageBody ) - { - TRAP_IGNORE( iAppUi.GetMailClient()->CancelL( iCurrentPlainTextBodyFetchRequestId ) ); - iFetchingPlainTextMessageBody = EFalse; - } - if( iFetchingHtmlMessageBody ) - { - TRAP_IGNORE( iAppUi.GetMailClient()->CancelL( iCurrentHtmlBodyFetchRequestId ) ); - iFetchingHtmlMessageBody = EFalse; - } - if( iFetchingMessageStructure ) - { - TRAP_IGNORE( iAppUi.GetMailClient()->CancelL( iCurrentStructureFetchRequestId ) ); - iFetchingMessageStructure = EFalse; - } - iAsyncProcessComplete = ETrue; - // + if( iFetchingPlainTextMessageBody ) + { + TRAP_IGNORE( iAppUi.GetMailClient()->CancelL( iCurrentPlainTextBodyFetchRequestId ) ); + iFetchingPlainTextMessageBody = EFalse; + } + if( iFetchingHtmlMessageBody ) + { + TRAP_IGNORE( iAppUi.GetMailClient()->CancelL( iCurrentHtmlBodyFetchRequestId ) ); + iFetchingHtmlMessageBody = EFalse; + } + if( iFetchingMessageStructure ) + { + TRAP_IGNORE( iAppUi.GetMailClient()->CancelL( iCurrentStructureFetchRequestId ) ); + iFetchingMessageStructure = EFalse; + } + iAsyncProcessComplete = ETrue; + // if(iWaitDialog && iDialogNotDismissed) - TRAP_IGNORE(iWaitDialog->ProcessFinishedL()); // deletes the dialog - // - } + TRAP_IGNORE(iWaitDialog->ProcessFinishedL()); // deletes the dialog + // + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::MessageStructureKnownL // ----------------------------------------------------------------------------- TBool CFSEmailUiMailViewerVisualiser::MessageStructureKnown( CFSMailMessage& aMsg ) const - { + { FUNC_LOG; - return TFsEmailUiUtility::IsMessageStructureKnown( aMsg ); - } + return TFsEmailUiUtility::IsMessageStructureKnown( aMsg ); + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::StartFetchingMessageStructureL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::StartFetchingMessageStructureL( CFSMailMessage& aMsg ) - { + { FUNC_LOG; - TFSMailMsgId currentMailboxId = aMsg.GetMailBoxId(); - TFSMailMsgId currentMessageFolderId = aMsg.GetFolderId(); - CFSMailFolder* currentFolder = iAppUi.GetMailClient()->GetFolderByUidL( currentMailboxId, currentMessageFolderId ); - CleanupStack::PushL( currentFolder ); - RArray messageIds; - CleanupClosePushL( messageIds ); - messageIds.Append( aMsg.GetMessageId() ); - iFetchingMessageStructure = ETrue; - iCurrentStructureFetchRequestId = currentFolder->FetchMessagesL( messageIds, EFSMsgDataStructure, *this ); - CleanupStack::PopAndDestroy( &messageIds ); - CleanupStack::PopAndDestroy( currentFolder ); - } + TFSMailMsgId currentMailboxId = aMsg.GetMailBoxId(); + TFSMailMsgId currentMessageFolderId = aMsg.GetFolderId(); + CFSMailFolder* currentFolder = iAppUi.GetMailClient()->GetFolderByUidL( currentMailboxId, currentMessageFolderId ); + CleanupStack::PushL( currentFolder ); + RArray messageIds; + CleanupClosePushL( messageIds ); + messageIds.Append( aMsg.GetMessageId() ); + iFetchingMessageStructure = ETrue; + iCurrentStructureFetchRequestId = currentFolder->FetchMessagesL( messageIds, EFSMsgDataStructure, *this ); + CleanupStack::PopAndDestroy( &messageIds ); + CleanupStack::PopAndDestroy( currentFolder ); + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::StartWaitedFetchingL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::StartWaitedFetchingL( TFetchedContentType aFetchedContentType ) - { + { FUNC_LOG; iAsyncProcessComplete = EFalse; iFetchingAlready = EFalse; @@ -4086,10 +4086,10 @@ iWaitDialog->SetCallback(this); iDialogNotDismissed = ETrue; iWaitDialog->ExecuteLD(R_FSE_FETCHING_WAIT_DIALOG); - StartFetchingMessagePartL( *iMessage, iStartAsyncFetchType ); - iFetchingAlready = ETrue; + StartFetchingMessagePartL( *iMessage, iStartAsyncFetchType ); + iFetchingAlready = ETrue; // - } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::StartFetchingRemaininBodyLinesIfAtBottomL @@ -4119,14 +4119,14 @@ // CFSEmailUiMailViewerVisualiser::TimerEventL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::TimerEventL( CFSEmailUiGenericTimer* aTriggeredTimer ) - { + { FUNC_LOG; - if ( aTriggeredTimer == iFetchingAnimationTimer ) - { - iViewerRichText->AppendFetchingMoreTextL(); - iFetchingAnimationTimer->Start( KAnimationRefreshTimeIntervalInMilliseconds ); - } - } + if ( aTriggeredTimer == iFetchingAnimationTimer ) + { + iViewerRichText->AppendFetchingMoreTextL(); + iFetchingAnimationTimer->Start( KAnimationRefreshTimeIntervalInMilliseconds ); + } + } // MAknBackgroundProcess methods // @@ -4136,14 +4136,14 @@ // /* void CFSEmailUiMailViewerVisualiser::StepL() - { + { FUNC_LOG; - if( !iFetchingAlready ) - { - StartFetchingMessagePartL( *iMessage, iStartAsyncFetchType ); - iFetchingAlready = ETrue; - } - }*/ + if( !iFetchingAlready ) + { + StartFetchingMessagePartL( *iMessage, iStartAsyncFetchType ); + iFetchingAlready = ETrue; + } + }*/ // // ----------------------------------------------------------------------------- @@ -4155,7 +4155,7 @@ { FUNC_LOG; return iAsyncProcessComplete; - }*/ + }*/ // // ----------------------------------------------------------------------------- @@ -4169,14 +4169,14 @@ // CFSEmailUiMailViewerVisualiser::DialogDismissedL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::DialogDismissedL( TInt aButtonId ) - { + { FUNC_LOG; iDialogNotDismissed = EFalse; - if( aButtonId == EAknSoftkeyCancel ) - { - CancelFetchings(); - } - } + if( aButtonId == EAknSoftkeyCancel ) + { + CancelFetchings(); + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::CycleError @@ -4196,87 +4196,87 @@ // CFSEmailUiMailViewerVisualiser::AddBackgroundPicturesL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::AddBackgroundPicturesL() - { - CAlfTexture& headerTexture = iAppUi.FsTextureManager()->TextureByIndex( EViewerTextureHeaderBackGround ); - CAlfTexture& backgroundTexture = iAppUi.FsTextureManager()->TextureByIndex( EBackgroundTextureMailList ); - - // add header texture - // -1 is here for to bottom space icon - // // S60 Skin support - // iTextViewer->SetPartBgImageL( 0, iViewerRichText->HeaderLengthInCharacters()-2, headerTexture ); - // - - // add bg texture - // S60 skin support - //iTextViewer->SetBackgroundImageL( backgroundTexture ); + { + CAlfTexture& headerTexture = iAppUi.FsTextureManager()->TextureByIndex( EViewerTextureHeaderBackGround ); + CAlfTexture& backgroundTexture = iAppUi.FsTextureManager()->TextureByIndex( EBackgroundTextureMailList ); + + // add header texture + // -1 is here for to bottom space icon + // // S60 Skin support + // iTextViewer->SetPartBgImageL( 0, iViewerRichText->HeaderLengthInCharacters()-2, headerTexture ); + // + + // add bg texture + // S60 skin support + //iTextViewer->SetBackgroundImageL( backgroundTexture ); // - } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::SetMessageFollowupFlagL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::SetMessageFollowupFlagL() - { + { FUNC_LOG; - if ( iMessage && - iTextViewer && - iViewerRichText && - TFsEmailUiUtility::IsFollowUpSupported( *iMailBox ) && - !iEmbeddedMessageMode ) - { - TFollowUpNewState newState = TFsEmailUiUtility::SetMessageFollowupFlagL( *iMessage ); - - switch ( newState ) - { - case EFollowUp: - { - iViewerRichText->UpdateIconL( CFSEmailUiMailViewerRichText::EViewerIconFollowUp ); - } - break; - case EFollowUpComplete: - { - iViewerRichText->UpdateIconL( CFSEmailUiMailViewerRichText::EViewerIconFollowUpComplete ); - } - break; - case EFollowUpClear: - { - iViewerRichText->UpdateIconL( CFSEmailUiMailViewerRichText::EViewerIconFollowUpNone ); - } - break; - case EFollowUpNoChanges: - default: - { - // do nothing. - } - break; - } - - if ( newState != EFollowUpNoChanges ) - { - // Update icon in viewer - TInt iconLine = iViewerRichText->FollowupIconLine(); + if ( iMessage && + iTextViewer && + iViewerRichText && + TFsEmailUiUtility::IsFollowUpSupported( *iMailBox ) && + !iEmbeddedMessageMode ) + { + TFollowUpNewState newState = TFsEmailUiUtility::SetMessageFollowupFlagL( *iMessage ); + + switch ( newState ) + { + case EFollowUp: + { + iViewerRichText->UpdateIconL( CFSEmailUiMailViewerRichText::EViewerIconFollowUp ); + } + break; + case EFollowUpComplete: + { + iViewerRichText->UpdateIconL( CFSEmailUiMailViewerRichText::EViewerIconFollowUpComplete ); + } + break; + case EFollowUpClear: + { + iViewerRichText->UpdateIconL( CFSEmailUiMailViewerRichText::EViewerIconFollowUpNone ); + } + break; + case EFollowUpNoChanges: + default: + { + // do nothing. + } + break; + } + + if ( newState != EFollowUpNoChanges ) + { + // Update icon in viewer + TInt iconLine = iViewerRichText->FollowupIconLine(); iTextViewer->ReloadPicturesL( iconLine ); // Notify appui of changed mail item SendEventToAppUiL( TFSEventMailChanged ); - } - } - } + } + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::DeleteMailL // ----------------------------------------------------------------------------- TInt CFSEmailUiMailViewerVisualiser::DeleteMailL( CFSMailMessage& aMessagePtr, TBool aReturnPreviousView, TBool aDisableNote ) - { + { FUNC_LOG; - TInt ret( KErrCancel ); - - if ( iEmbeddedMessageMode ) - { - // embedded messages can't be deleted - ret = KErrNotSupported; - } - else - { + TInt ret( KErrCancel ); + + if ( iEmbeddedMessageMode ) + { + // embedded messages can't be deleted + ret = KErrNotSupported; + } + else + { TInt okToDelete( ETrue ); if ( !aDisableNote ) { @@ -4311,81 +4311,81 @@ { // return only if we are in mail viewer if ( iAppUi.CurrentActiveView()->Id() == MailViewerId ) - { - HandleCommandL( EAknSoftkeyBack ); - } + { + HandleCommandL( EAknSoftkeyBack ); + } } } if ( okToDelete ) { ret = KErrNone; } - } - return ret; - } + } + return ret; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::ShowActionsMenuInOptionsL // ----------------------------------------------------------------------------- TBool CFSEmailUiMailViewerVisualiser::ShowActionsMenuInOptionsL() const - { + { FUNC_LOG; - TBool retVal = ETrue; - - SViewerHeadingHotSpotData currentHeaderHotSpotData; - CFindItemEngine::SFoundItem currentBodyHotSpotData; - THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( currentHeaderHotSpotData, currentBodyHotSpotData ); - - if( hotspotType == ENoHotspot || ( hotspotType == EHeaderHotspot && ( - currentHeaderHotSpotData.iType == ETypeToNMoreRecipients || - currentHeaderHotSpotData.iType == ETypeCcNMoreRecipients || - currentHeaderHotSpotData.iType == ETypeBccNMoreRecipients || - currentHeaderHotSpotData.iType == ETypeHtml ) ) ) - { - retVal = EFalse; - } - return retVal; - } + TBool retVal = ETrue; + + SViewerHeadingHotSpotData currentHeaderHotSpotData; + CFindItemEngine::SFoundItem currentBodyHotSpotData; + THotspotType hotspotType = iViewerRichText->FindCurrentHotSpotL( currentHeaderHotSpotData, currentBodyHotSpotData ); + + if( hotspotType == ENoHotspot || ( hotspotType == EHeaderHotspot && ( + currentHeaderHotSpotData.iType == ETypeToNMoreRecipients || + currentHeaderHotSpotData.iType == ETypeCcNMoreRecipients || + currentHeaderHotSpotData.iType == ETypeBccNMoreRecipients || + currentHeaderHotSpotData.iType == ETypeHtml ) ) ) + { + retVal = EFalse; + } + return retVal; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::ShowDownloadManagerMenuInOptions // ----------------------------------------------------------------------------- TBool CFSEmailUiMailViewerVisualiser::ShowDownloadManagerMenuInOptions() const - { + { FUNC_LOG; - TBool ret(EFalse); + TBool ret(EFalse); /* Download Manager blocked - if ( iAppUi.DownloadInfoMediator() ) - { - ret = iAppUi.DownloadInfoMediator()->IsAnyAttachmentDownloads(); - } + if ( iAppUi.DownloadInfoMediator() ) + { + ret = iAppUi.DownloadInfoMediator()->IsAnyAttachmentDownloads(); + } */ - return ret; - } + return ret; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::ShowNextMessageMenuInOptions // ----------------------------------------------------------------------------- TBool CFSEmailUiMailViewerVisualiser::ShowNextMessageMenuInOptions() const - { + { FUNC_LOG; - TBool available = EFalse; - // Next/previous message options are inavailable in the embedded mode - if ( iMessage && !iEmbeddedMessageMode ) - { + TBool available = EFalse; + // Next/previous message options are inavailable in the embedded mode + if ( iMessage && !iEmbeddedMessageMode ) + { TFSMailMsgId currentMsgId = iMessage->GetMessageId(); TFSMailMsgId nextMsgId; TFSMailMsgId nextMsgFolderId; available = iAppUi.IsNextMsgAvailable( currentMsgId, nextMsgId, nextMsgFolderId ); - } - return available; - } + } + return available; + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::ShowPreviousMessageMenuInOptions // ----------------------------------------------------------------------------- TBool CFSEmailUiMailViewerVisualiser::ShowPreviousMessageMenuInOptions() const - { + { FUNC_LOG; TBool available = EFalse; // Next/previous message options are inavailable in the embedded mode @@ -4397,59 +4397,59 @@ available = iAppUi.IsPreviousMsgAvailable( currentMsgId, prevMsgId, prevMsgFolderId ); } return available; - } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::ShowNextMessageL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::ShowNextMessageL() - { + { FUNC_LOG; - if ( iMessage && !iEmbeddedMessageMode ) - { - TFSMailMsgId currentMsgId = iMessage->GetMessageId(); - TFSMailMsgId nextMsgId; - TFSMailMsgId nextMsgFolderId; - if ( iAppUi.IsNextMsgAvailable( currentMsgId, nextMsgId, nextMsgFolderId ) ) - { - // Stop timer and cancel fetchings before showing next message - iFetchingAnimationTimer->Stop(); - CancelFetchings(); - - // Change empty msk when moving to next - ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY ); - - iAppUi.MoveToNextMsgL( currentMsgId, nextMsgId ); - // Next message is displayed in this view through doactivate, because view is re-activate by mail list - } - } - } + if ( iMessage && !iEmbeddedMessageMode ) + { + TFSMailMsgId currentMsgId = iMessage->GetMessageId(); + TFSMailMsgId nextMsgId; + TFSMailMsgId nextMsgFolderId; + if ( iAppUi.IsNextMsgAvailable( currentMsgId, nextMsgId, nextMsgFolderId ) ) + { + // Stop timer and cancel fetchings before showing next message + iFetchingAnimationTimer->Stop(); + CancelFetchings(); + + // Change empty msk when moving to next + ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY ); + + iAppUi.MoveToNextMsgL( currentMsgId, nextMsgId ); + // Next message is displayed in this view through doactivate, because view is re-activate by mail list + } + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::ShowPreviousMessageL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::ShowPreviousMessageL() - { + { FUNC_LOG; - if ( iMessage && !iEmbeddedMessageMode ) - { - TFSMailMsgId currentMsgId = iMessage->GetMessageId(); - TFSMailMsgId prevMsgId; - TFSMailMsgId prevMsgFolderId; - if ( iAppUi.IsPreviousMsgAvailable( currentMsgId, prevMsgId, prevMsgFolderId ) ) - { - // Stop timer and cancel fetchings before showing prev message - iFetchingAnimationTimer->Stop(); - CancelFetchings(); - - // Change empty msk when moving to previous - ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY ); - - iAppUi.MoveToPreviousMsgL( currentMsgId, prevMsgId ); - // Previous message is displayed in this view through doactivate, because view is re-activate by mail list - } - } - } + if ( iMessage && !iEmbeddedMessageMode ) + { + TFSMailMsgId currentMsgId = iMessage->GetMessageId(); + TFSMailMsgId prevMsgId; + TFSMailMsgId prevMsgFolderId; + if ( iAppUi.IsPreviousMsgAvailable( currentMsgId, prevMsgId, prevMsgFolderId ) ) + { + // Stop timer and cancel fetchings before showing prev message + iFetchingAnimationTimer->Stop(); + CancelFetchings(); + + // Change empty msk when moving to previous + ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY ); + + iAppUi.MoveToPreviousMsgL( currentMsgId, prevMsgId ); + // Previous message is displayed in this view through doactivate, because view is re-activate by mail list + } + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::UpdateMessagePtrL @@ -4629,31 +4629,31 @@ // CFSEmailUiMailViewerVisualiser::HandleDynamicVariantSwitchL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::HandleDynamicVariantSwitchL( CFsEmailUiViewBase::TDynamicSwitchType /*aType*/ ) - { + { FUNC_LOG; - // Set scroll offset to match screen height - if ( iFirstStartCompleted && iTextViewer && iMessage ) - { - // - TInt firstLine = iTextViewer->GetFirstDisplayedLine(); // get first line number - TInt firstChar = iTextViewer->GetFirstCharInLine(firstLine); // get first char offset - // - - iAppUi.Display().Roster().Hide( ControlGroup() ); - RefreshL(); - - // - TInt newLine = iTextViewer->GetLineNumber(firstChar); // get the new line number for this offset - if(newLine<0) newLine = firstLine; // in case of error go to the prev. line number - iTextViewer->FocusLineL(newLine,ETrue); // focus on the found line number - // - // - SetActionMenuIconVisbilityL(); + // Set scroll offset to match screen height + if ( iFirstStartCompleted && iTextViewer && iMessage ) + { + // + TInt firstLine = iTextViewer->GetFirstDisplayedLine(); // get first line number + TInt firstChar = iTextViewer->GetFirstCharInLine(firstLine); // get first char offset + // + + iAppUi.Display().Roster().Hide( ControlGroup() ); + RefreshL(); + + // + TInt newLine = iTextViewer->GetLineNumber(firstChar); // get the new line number for this offset + if(newLine<0) newLine = firstLine; // in case of error go to the prev. line number + iTextViewer->FocusLineL(newLine,ETrue); // focus on the found line number + // + // + SetActionMenuIconVisbilityL(); // iAppUi.Display().Roster().ShowL( ControlGroup() ); - iDownloadProgressIndicator->NotifyLayoutChange(); - } - } + iDownloadProgressIndicator->NotifyLayoutChange(); + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::HandleDynamicVariantSwitchOnBackgroundL @@ -4668,18 +4668,18 @@ // CFSEmailUiMailViewerVisualiser::OpenLinkInIntranetL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::OpenLinkInIntranetL( TBool aMenuSelection ) - { + { FUNC_LOG; - CFindItemEngine::SFoundItem currentBodyHotSpotData; - TBool bodyHotSpotFound = iViewerRichText->FindCurrentBodyHotSpotL( currentBodyHotSpotData ); - if ( bodyHotSpotFound ) - { - HBufC* intranetUrl = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); - TInt len = intranetUrl->Length(); - HBufC8* eightBitUrl = HBufC8::NewLC( len ); - eightBitUrl->Des().Copy( *intranetUrl ); - - TAiwGenericParam param( EGenericParamURL, TAiwVariant(*eightBitUrl) ); + CFindItemEngine::SFoundItem currentBodyHotSpotData; + TBool bodyHotSpotFound = iViewerRichText->FindCurrentBodyHotSpotL( currentBodyHotSpotData ); + if ( bodyHotSpotFound ) + { + HBufC* intranetUrl = iViewerRichText->GetHotspotTextLC( currentBodyHotSpotData ); + TInt len = intranetUrl->Length(); + HBufC8* eightBitUrl = HBufC8::NewLC( len ); + eightBitUrl->Des().Copy( *intranetUrl ); + + TAiwGenericParam param( EGenericParamURL, TAiwVariant(*eightBitUrl) ); CAiwGenericParamList& paramList = iIBServiceHandler->InParamListL(); paramList.AppendL( param ); if ( aMenuSelection ) @@ -4692,284 +4692,284 @@ iIBServiceHandler->ExecuteServiceCmdL( KAiwCmdView, paramList, iIBServiceHandler->OutParamListL() ); } - CleanupStack::PopAndDestroy( eightBitUrl ); - CleanupStack::PopAndDestroy( intranetUrl ); - } - } + CleanupStack::PopAndDestroy( eightBitUrl ); + CleanupStack::PopAndDestroy( intranetUrl ); + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::ChangeMsgReadStatusL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::ChangeMsgReadStatusL( - TBool aRead, TBool aCmdFromMrui ) - { + TBool aRead, TBool aCmdFromMrui ) + { FUNC_LOG; - if ( iMessage && !iEmbeddedMessageMode ) - { - if ( aRead ) - { - // Send flags, local and server - iMessage->SetFlag( EFSMsgFlag_Read ); - } - else - { - // Send flags, local and server - iMessage->ResetFlag( EFSMsgFlag_Read ); - } - iMessage->SaveMessageL(); // Save read status - SendEventToAppUiL( TFSEventMailChanged ); - - if ( !aCmdFromMrui && iViewerRichText && iTextViewer ) - { - iViewerRichText->UpdateIconL( - CFSEmailUiMailViewerRichText::EViewerEmailStatus ); - TInt iconLine = iViewerRichText->EmailStatusIconLine(); - iTextViewer->ReloadPicturesL( iconLine ); - } - } - } + if ( iMessage && !iEmbeddedMessageMode ) + { + if ( aRead ) + { + // Send flags, local and server + iMessage->SetFlag( EFSMsgFlag_Read ); + } + else + { + // Send flags, local and server + iMessage->ResetFlag( EFSMsgFlag_Read ); + } + iMessage->SaveMessageL(); // Save read status + SendEventToAppUiL( TFSEventMailChanged ); + + if ( !aCmdFromMrui && iViewerRichText && iTextViewer ) + { + iViewerRichText->UpdateIconL( + CFSEmailUiMailViewerRichText::EViewerEmailStatus ); + TInt iconLine = iViewerRichText->EmailStatusIconLine(); + iTextViewer->ReloadPicturesL( iconLine ); + } + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::OpenHotSpotUrlInBrowserL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::OpenHotSpotUrlInBrowserL( CFindItemEngine::SFoundItem& aHotSpot ) - { + { FUNC_LOG; - if ( aHotSpot.iItemType == CFindItemEngine::EFindItemSearchURLBin || - aHotSpot.iItemType == CFindItemEngine::EFindItemSearchScheme ) // Scheme is needed also - { - // use browser launcher API here - HBufC* urlToOpen = iViewerRichText->GetHotspotTextLC( aHotSpot ); - // Check if the address is rtsp url and send it media player - if ( aHotSpot.iItemType == CFindItemEngine::EFindItemSearchScheme && - urlToOpen->FindC( KRtspUrlPrefix ) == 0 ) - { - RApaLsSession appArcSession; - User::LeaveIfError( appArcSession.Connect() ); - TThreadId id; - appArcSession.StartDocument( urlToOpen->Des(), KUidMediaPlayer , id ); - appArcSession.Close(); - } - else - { - // Check wheter the url text has some prefix (http, https, ftp, etc.). - // If no prefix found, try with the default prefix http. - TInt urlPos = urlToOpen->Find( KUrlPrefixIdentifier ); - if ( urlPos == KErrNotFound ) - { - HBufC* newBuf = urlToOpen->ReAllocL( urlToOpen->Length() + KHttpUrlPrefix().Length() ); - CleanupStack::Pop( urlToOpen ); - urlToOpen = newBuf; - CleanupStack::PushL( urlToOpen ); - TPtr urlToOpenPtr = urlToOpen->Des(); - urlToOpenPtr.Insert( 0, KHttpUrlPrefix ); - } - - // Use scheme handler to launch the browser as a stand alone application - CSchemeHandler* handler = CSchemeHandler::NewL( *urlToOpen ); - CleanupStack::PushL( handler ); - handler->HandleUrlStandaloneL(); - CleanupStack::PopAndDestroy( handler ); - } - - CleanupStack::PopAndDestroy( urlToOpen ); - } - } + if ( aHotSpot.iItemType == CFindItemEngine::EFindItemSearchURLBin || + aHotSpot.iItemType == CFindItemEngine::EFindItemSearchScheme ) // Scheme is needed also + { + // use browser launcher API here + HBufC* urlToOpen = iViewerRichText->GetHotspotTextLC( aHotSpot ); + // Check if the address is rtsp url and send it media player + if ( aHotSpot.iItemType == CFindItemEngine::EFindItemSearchScheme && + urlToOpen->FindC( KRtspUrlPrefix ) == 0 ) + { + RApaLsSession appArcSession; + User::LeaveIfError( appArcSession.Connect() ); + TThreadId id; + appArcSession.StartDocument( urlToOpen->Des(), KUidMediaPlayer , id ); + appArcSession.Close(); + } + else + { + // Check wheter the url text has some prefix (http, https, ftp, etc.). + // If no prefix found, try with the default prefix http. + TInt urlPos = urlToOpen->Find( KUrlPrefixIdentifier ); + if ( urlPos == KErrNotFound ) + { + HBufC* newBuf = urlToOpen->ReAllocL( urlToOpen->Length() + KHttpUrlPrefix().Length() ); + CleanupStack::Pop( urlToOpen ); + urlToOpen = newBuf; + CleanupStack::PushL( urlToOpen ); + TPtr urlToOpenPtr = urlToOpen->Des(); + urlToOpenPtr.Insert( 0, KHttpUrlPrefix ); + } + + // Use scheme handler to launch the browser as a stand alone application + CSchemeHandler* handler = CSchemeHandler::NewL( *urlToOpen ); + CleanupStack::PushL( handler ); + handler->HandleUrlStandaloneL(); + CleanupStack::PopAndDestroy( handler ); + } + + CleanupStack::PopAndDestroy( urlToOpen ); + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::CallToBodyHotSpotNumberL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::CallToBodyHotSpotNumberL( CFindItemEngine::SFoundItem& aHotSpot ) - { + { FUNC_LOG; - if ( aHotSpot.iItemType == CFindItemEngine::EFindItemSearchPhoneNumberBin ) - { - HBufC* phoneNumber = iViewerRichText->GetHotspotTextLC( aHotSpot ); - TInt answer = TFsEmailUiUtility::ShowConfirmationQueryL( - R_FREESTYLE_EMAIL_UI_VIEWER_CALL_HOTSPOT, *phoneNumber ); - if ( answer ) - { - TPtr numberPtr = phoneNumber->Des(); - CommonPhoneParser::ParsePhoneNumber( numberPtr, - CommonPhoneParser::EPhoneClientNumber); - - CFsDelayedLoader::InstanceL()->GetContactHandlerL()->MakeAiwCallL( NULL, *phoneNumber ); - } + if ( aHotSpot.iItemType == CFindItemEngine::EFindItemSearchPhoneNumberBin ) + { + HBufC* phoneNumber = iViewerRichText->GetHotspotTextLC( aHotSpot ); + TInt answer = TFsEmailUiUtility::ShowConfirmationQueryL( + R_FREESTYLE_EMAIL_UI_VIEWER_CALL_HOTSPOT, *phoneNumber ); + if ( answer ) + { + TPtr numberPtr = phoneNumber->Des(); + CommonPhoneParser::ParsePhoneNumber( numberPtr, + CommonPhoneParser::EPhoneClientNumber); + + CFsDelayedLoader::InstanceL()->GetContactHandlerL()->MakeAiwCallL( NULL, *phoneNumber ); + } CleanupStack::PopAndDestroy( phoneNumber ); - } - else if ( aHotSpot.iItemType == CFindItemEngine::EFindItemSearchScheme ) - { - TBool voipCall( EFalse ); - HBufC* schemeText = iViewerRichText->GetHotspotTextLC( aHotSpot ); - // Strip scheme prefix text if found - if ( schemeText && schemeText->FindC( KCallPrefix ) == 0 ) - { - schemeText->Des().Delete( 0, KCallPrefix().Length() ); - } - else if ( schemeText && schemeText->FindC( KTelPrefix ) == 0 ) - { - schemeText->Des().Delete( 0, KTelPrefix().Length() ); - } - else if ( schemeText && schemeText->FindC( KSmsPrefix ) == 0 ) - { - schemeText->Des().Delete( 0, KSmsPrefix().Length() ); - } - else if ( schemeText && schemeText->FindC( KMmsPrefix ) == 0 ) - { - schemeText->Des().Delete( 0, KMmsPrefix().Length() ); - } - else if ( schemeText && schemeText->FindC( KVoipPrefix ) == 0 ) - { - voipCall = ETrue; - schemeText->Des().Delete( 0, KVoipPrefix().Length() ); - } - - TInt answer = TFsEmailUiUtility::ShowConfirmationQueryL( - R_FREESTYLE_EMAIL_UI_VIEWER_CALL_HOTSPOT, *schemeText ); - if ( answer ) - { - if ( !voipCall ) - { - // use common phone parser for other than voip numbers - TPtr numberPtr = schemeText->Des(); - CommonPhoneParser::ParsePhoneNumber( numberPtr, - CommonPhoneParser::EPhoneClientNumber ); - } - CFsDelayedLoader::InstanceL()->GetContactHandlerL()->MakeAiwCallL( NULL, *schemeText, voipCall ); - } - CleanupStack::PopAndDestroy( schemeText ); - } - } + } + else if ( aHotSpot.iItemType == CFindItemEngine::EFindItemSearchScheme ) + { + TBool voipCall( EFalse ); + HBufC* schemeText = iViewerRichText->GetHotspotTextLC( aHotSpot ); + // Strip scheme prefix text if found + if ( schemeText && schemeText->FindC( KCallPrefix ) == 0 ) + { + schemeText->Des().Delete( 0, KCallPrefix().Length() ); + } + else if ( schemeText && schemeText->FindC( KTelPrefix ) == 0 ) + { + schemeText->Des().Delete( 0, KTelPrefix().Length() ); + } + else if ( schemeText && schemeText->FindC( KSmsPrefix ) == 0 ) + { + schemeText->Des().Delete( 0, KSmsPrefix().Length() ); + } + else if ( schemeText && schemeText->FindC( KMmsPrefix ) == 0 ) + { + schemeText->Des().Delete( 0, KMmsPrefix().Length() ); + } + else if ( schemeText && schemeText->FindC( KVoipPrefix ) == 0 ) + { + voipCall = ETrue; + schemeText->Des().Delete( 0, KVoipPrefix().Length() ); + } + + TInt answer = TFsEmailUiUtility::ShowConfirmationQueryL( + R_FREESTYLE_EMAIL_UI_VIEWER_CALL_HOTSPOT, *schemeText ); + if ( answer ) + { + if ( !voipCall ) + { + // use common phone parser for other than voip numbers + TPtr numberPtr = schemeText->Des(); + CommonPhoneParser::ParsePhoneNumber( numberPtr, + CommonPhoneParser::EPhoneClientNumber ); + } + CFsDelayedLoader::InstanceL()->GetContactHandlerL()->MakeAiwCallL( NULL, *schemeText, voipCall ); + } + CleanupStack::PopAndDestroy( schemeText ); + } + } // ----------------------------------------------------------------------------- // CFSEmailUiMailViewerVisualiser::WriteEmailToHotSpotAddressL // ----------------------------------------------------------------------------- void CFSEmailUiMailViewerVisualiser::WriteEmailToHotSpotAddressL( CFindItemEngine::SFoundItem& aHotSpot ) - { + { FUNC_LOG; - if ( aHotSpot.iItemType == CFindItemEngine::EFindItemSearchMailAddressBin ) - { - delete iNewMailTempAddress; iNewMailTempAddress = NULL; - iNewMailTempAddress = CFSMailAddress::NewL(); - HBufC* mailAddress = iViewerRichText->GetHotspotTextLC( aHotSpot ); - iNewMailTempAddress->SetEmailAddress( *mailAddress ); - CleanupStack::PopAndDestroy( mailAddress ); - iAppUi.LaunchEditorL( iNewMailTempAddress ); - } - else if ( aHotSpot.iItemType == CFindItemEngine::EFindItemSearchScheme ) - { - HBufC* schemeText = iViewerRichText->GetHotspotTextLC( aHotSpot ); - if ( schemeText && schemeText->FindC( KMailtoPrefix ) == 0) - { - schemeText->Des().Delete( 0, KMailtoPrefix().Length() ); - delete iNewMailTempAddress; iNewMailTempAddress = NULL; - iNewMailTempAddress = CFSMailAddress::NewL(); - iNewMailTempAddress->SetEmailAddress( *schemeText ); - iAppUi.LaunchEditorL( iNewMailTempAddress ); - } - CleanupStack::PopAndDestroy( schemeText ); - } - } + if ( aHotSpot.iItemType == CFindItemEngine::EFindItemSearchMailAddressBin ) + { + delete iNewMailTempAddress; iNewMailTempAddress = NULL; + iNewMailTempAddress = CFSMailAddress::NewL(); + HBufC* mailAddress = iViewerRichText->GetHotspotTextLC( aHotSpot ); + iNewMailTempAddress->SetEmailAddress( *mailAddress ); + CleanupStack::PopAndDestroy( mailAddress ); + iAppUi.LaunchEditorL( iNewMailTempAddress ); + } + else if ( aHotSpot.iItemType == CFindItemEngine::EFindItemSearchScheme ) + { + HBufC* schemeText = iViewerRichText->GetHotspotTextLC( aHotSpot ); + if ( schemeText && schemeText->FindC( KMailtoPrefix ) == 0) + { + schemeText->Des().Delete( 0, KMailtoPrefix().Length() ); + delete iNewMailTempAddress; iNewMailTempAddress = NULL; + iNewMailTempAddress = CFSMailAddress::NewL(); + iNewMailTempAddress->SetEmailAddress( *schemeText ); + iAppUi.LaunchEditorL( iNewMailTempAddress ); + } + CleanupStack::PopAndDestroy( schemeText ); + } + } void CFSEmailUiMailViewerVisualiser::SaveEmailAsContactL( - const TDesC& aEmailAddress ) - { + const TDesC& aEmailAddress ) + { FUNC_LOG; - TAddToContactsType type; - // Query to "update existing" or "Create new" - // --> EFALSE = user chose "cancel" - if ( CFsDelayedLoader::InstanceL()->GetContactHandlerL()-> - AddtoContactsQueryL( type ) ) - { - // Create buffer and strip scheme data such as mailto: and call: - HBufC* textData = aEmailAddress.AllocLC(); - if ( textData->FindC( KMailtoPrefix ) == 0 ) - { - textData->Des().Delete( 0, KMailtoPrefix().Length() ); - } - CFsDelayedLoader::InstanceL()->GetContactHandlerL()->AddToContactL( - *textData, EContactUpdateEmail, type, this ); - CleanupStack::PopAndDestroy( textData ); - } - } + TAddToContactsType type; + // Query to "update existing" or "Create new" + // --> EFALSE = user chose "cancel" + if ( CFsDelayedLoader::InstanceL()->GetContactHandlerL()-> + AddtoContactsQueryL( type ) ) + { + // Create buffer and strip scheme data such as mailto: and call: + HBufC* textData = aEmailAddress.AllocLC(); + if ( textData->FindC( KMailtoPrefix ) == 0 ) + { + textData->Des().Delete( 0, KMailtoPrefix().Length() ); + } + CFsDelayedLoader::InstanceL()->GetContactHandlerL()->AddToContactL( + *textData, EContactUpdateEmail, type, this ); + CleanupStack::PopAndDestroy( textData ); + } + } void CFSEmailUiMailViewerVisualiser::SavePhoneNumberAsContactL( - const TDesC& aPhoneNumber ) - { + const TDesC& aPhoneNumber ) + { FUNC_LOG; - TAddToContactsType type; - // Query to "update existing" or "Create new" - // --> EFALSE = user chose "cancel" - if ( CFsDelayedLoader::InstanceL()->GetContactHandlerL()-> - AddtoContactsQueryL( type ) ) - { - // Create buffer and strip scheme data such as mailto: and call: - HBufC* textData = aPhoneNumber.AllocLC(); - // Strip scheme prefix text if found - if ( textData && textData->FindC( KCallPrefix ) == 0 ) - { - textData->Des().Delete( 0, KCallPrefix().Length() ); - } - else if ( textData && textData->FindC( KTelPrefix ) == 0 ) - { - textData->Des().Delete( 0, KTelPrefix().Length() ); - } - else if ( textData && textData->FindC( KSmsPrefix ) == 0 ) - { - textData->Des().Delete( 0, KSmsPrefix().Length() ); - } - else if ( textData && textData->FindC( KMmsPrefix ) == 0 ) - { - textData->Des().Delete( 0, KMmsPrefix().Length() ); - } - CFsDelayedLoader::InstanceL()->GetContactHandlerL()->AddToContactL( - *textData, EContactUpdateNumber, type, this ); - CleanupStack::PopAndDestroy( textData ); - } - } + TAddToContactsType type; + // Query to "update existing" or "Create new" + // --> EFALSE = user chose "cancel" + if ( CFsDelayedLoader::InstanceL()->GetContactHandlerL()-> + AddtoContactsQueryL( type ) ) + { + // Create buffer and strip scheme data such as mailto: and call: + HBufC* textData = aPhoneNumber.AllocLC(); + // Strip scheme prefix text if found + if ( textData && textData->FindC( KCallPrefix ) == 0 ) + { + textData->Des().Delete( 0, KCallPrefix().Length() ); + } + else if ( textData && textData->FindC( KTelPrefix ) == 0 ) + { + textData->Des().Delete( 0, KTelPrefix().Length() ); + } + else if ( textData && textData->FindC( KSmsPrefix ) == 0 ) + { + textData->Des().Delete( 0, KSmsPrefix().Length() ); + } + else if ( textData && textData->FindC( KMmsPrefix ) == 0 ) + { + textData->Des().Delete( 0, KMmsPrefix().Length() ); + } + CFsDelayedLoader::InstanceL()->GetContactHandlerL()->AddToContactL( + *textData, EContactUpdateNumber, type, this ); + CleanupStack::PopAndDestroy( textData ); + } + } void CFSEmailUiMailViewerVisualiser::FlagselectionCompleteL( TInt aSelection ) - { + { FUNC_LOG; - // Set message follow up flag - if ( iMessage && aSelection != KErrNotFound ) - { - switch ( aSelection ) - { - case EFollowUp: - { - iMessage->SetFlag( EFSMsgFlag_FollowUp ); - iMessage->ResetFlag( EFSMsgFlag_FollowUpComplete ); - iMessage->SaveMessageL(); - } - break; - case EFollowUpComplete: - { - iMessage->SetFlag( EFSMsgFlag_FollowUpComplete ); - iMessage->ResetFlag( EFSMsgFlag_FollowUp ); - iMessage->SaveMessageL(); - } - break; - case EFollowUpClear: - { - iMessage->ResetFlag( EFSMsgFlag_FollowUp | EFSMsgFlag_FollowUpComplete ); - iMessage->SaveMessageL(); - } - break; - default: - break; - } - } - } + // Set message follow up flag + if ( iMessage && aSelection != KErrNotFound ) + { + switch ( aSelection ) + { + case EFollowUp: + { + iMessage->SetFlag( EFSMsgFlag_FollowUp ); + iMessage->ResetFlag( EFSMsgFlag_FollowUpComplete ); + iMessage->SaveMessageL(); + } + break; + case EFollowUpComplete: + { + iMessage->SetFlag( EFSMsgFlag_FollowUpComplete ); + iMessage->ResetFlag( EFSMsgFlag_FollowUp ); + iMessage->SaveMessageL(); + } + break; + case EFollowUpClear: + { + iMessage->ResetFlag( EFSMsgFlag_FollowUp | EFSMsgFlag_FollowUpComplete ); + iMessage->SaveMessageL(); + } + break; + default: + break; + } + } + } void CFSEmailUiMailViewerVisualiser::SetMailboxNameToStatusPaneL() - { + { FUNC_LOG; - iAppUi.SetActiveMailboxNameToStatusPaneL(); - } + iAppUi.SetActiveMailboxNameToStatusPaneL(); + } void CFSEmailUiMailViewerVisualiser::GetParentLayoutsL( RPointerArray& aLayoutArray ) const { @@ -5087,22 +5087,22 @@ { FUNC_LOG; if ( iFirstStartCompleted && iMessage && aMailbox.Id() == iAppUi.GetActiveMailboxId().Id() && - aEvent == TFSEventMailDeleted && aParam1 ) // Safety, in list events that only concern active mailbox are handled + aEvent == TFSEventMailDeleted && aParam1 ) // Safety, in list events that only concern active mailbox are handled { TFSMailMsgId curMsgId = iMessage->GetMessageId(); - RArray* removedEntries = static_cast*>(aParam1); - for ( TInt i=0 ; i < removedEntries->Count() ; i++ ) - { - // - if ( (curMsgId == (*removedEntries)[i]) && - (iDeletedMessageFromMrui != curMsgId) ) - { - // - ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY ); - NavigateBackL(); - break; - } - } + RArray* removedEntries = static_cast*>(aParam1); + for ( TInt i=0 ; i < removedEntries->Count() ; i++ ) + { + // + if ( (curMsgId == (*removedEntries)[i]) && + (iDeletedMessageFromMrui != curMsgId) ) + { + // + ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY ); + NavigateBackL(); + break; + } + } } } @@ -5125,80 +5125,80 @@ { FUNC_LOG; CFlagSelectionGlobalNoteHandler* self = - new (ELeave) CFlagSelectionGlobalNoteHandler( aViewerVisualiser ); + new (ELeave) CFlagSelectionGlobalNoteHandler( aViewerVisualiser ); return self; } CFlagSelectionGlobalNoteHandler::~CFlagSelectionGlobalNoteHandler() - { + { FUNC_LOG; - delete iPrompt; - delete iGlobalFlagQuery; - } + delete iPrompt; + delete iGlobalFlagQuery; + } void CFlagSelectionGlobalNoteHandler::Cancel() - { + { FUNC_LOG; - } + } void CFlagSelectionGlobalNoteHandler::LaunchFlagListQueryDialogL() - { + { FUNC_LOG; - iSelection = 0; - if ( !iPrompt ) - { - iPrompt = StringLoader::LoadL( R_FREESTYLE_EMAIL_UI_VIEWER_FLAG_DIALOG_HEADER ); - } - if ( !iGlobalFlagQuery ) - { - iGlobalFlagQuery = CAknGlobalListQuery::NewL(); - iGlobalFlagQuery->SetHeadingL( *iPrompt ); // Set query heading. - } - - CDesCArrayFlat* array = new (ELeave) CDesCArrayFlat( 3 ); - CleanupStack::PushL( array ); - // Add follow up text - HBufC* followUp = StringLoader::LoadLC( R_FREESTYLE_EMAIL_UI_FLAG_FOLLOW_UP ); + iSelection = 0; + if ( !iPrompt ) + { + iPrompt = StringLoader::LoadL( R_FREESTYLE_EMAIL_UI_VIEWER_FLAG_DIALOG_HEADER ); + } + if ( !iGlobalFlagQuery ) + { + iGlobalFlagQuery = CAknGlobalListQuery::NewL(); + iGlobalFlagQuery->SetHeadingL( *iPrompt ); // Set query heading. + } + + CDesCArrayFlat* array = new (ELeave) CDesCArrayFlat( 3 ); + CleanupStack::PushL( array ); + // Add follow up text + HBufC* followUp = StringLoader::LoadLC( R_FREESTYLE_EMAIL_UI_FLAG_FOLLOW_UP ); array->AppendL( *followUp ); - CleanupStack::PopAndDestroy( followUp ); - - // Add flag complete text - HBufC* completeFlag = StringLoader::LoadLC( R_FREESTYLE_EMAIL_UI_FLAG_COMPLETE ); + CleanupStack::PopAndDestroy( followUp ); + + // Add flag complete text + HBufC* completeFlag = StringLoader::LoadLC( R_FREESTYLE_EMAIL_UI_FLAG_COMPLETE ); array->AppendL( *completeFlag ); - CleanupStack::PopAndDestroy( completeFlag ); - - // Add clear flag text - HBufC* clearFlag = StringLoader::LoadLC( R_FREESTYLE_EMAIL_UI_FLAG_CLEAR ); + CleanupStack::PopAndDestroy( completeFlag ); + + // Add clear flag text + HBufC* clearFlag = StringLoader::LoadLC( R_FREESTYLE_EMAIL_UI_FLAG_CLEAR ); array->AppendL( *clearFlag ); - CleanupStack::PopAndDestroy( clearFlag ); + CleanupStack::PopAndDestroy( clearFlag ); // Show query iGlobalFlagQuery->ShowListQueryL( array, iStatus, iSelection ); - CleanupStack::PopAndDestroy( array ); - - // Set active + CleanupStack::PopAndDestroy( array ); + + // Set active SetActive(); - } + } void CFlagSelectionGlobalNoteHandler::RunL() - { + { FUNC_LOG; TInt status = iStatus.Int(); - iViewerVisualiser.FlagselectionCompleteL( status ); - } + iViewerVisualiser.FlagselectionCompleteL( status ); + } void CFlagSelectionGlobalNoteHandler::DoCancel() - { + { FUNC_LOG; - } + } TInt CFlagSelectionGlobalNoteHandler::RunError( TInt /*aError*/ ) - { + { FUNC_LOG; - TInt err( KErrNone ); - return err; - } + TInt err( KErrNone ); + return err; + } CFlagSelectionGlobalNoteHandler::CFlagSelectionGlobalNoteHandler( CFSEmailUiMailViewerVisualiser& aViewerVisualiser ) : CActive ( EPriorityHigh ),