diff -r 72d484772ca6 -r a3a1ae9acec6 emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp --- a/emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp Fri Mar 12 15:41:14 2010 +0200 +++ b/emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp Mon Mar 15 12:39:10 2010 +0200 @@ -605,14 +605,14 @@ } else { + // Attachment list model is not created when opening mrViewer, so attachment options menu is + // not working with MR messages iAttachmentsListModel = CFSEmailUiAttachmentsListModel::NewL( iAppUi, *this ); - TPartData msgPartData( iActivationData.iMailBoxId, iActivationData.iFolderId, iActivationData.iMessageId); + TPartData msgPartData( iActivationData.iMailBoxId, iActivationData.iFolderId, iActivationData.iMessageId ); iAttachmentsListModel->UpdateListL( msgPartData ); - CheckMessageBodyL( *iMessage, msgBodyStructurePresent, msgBodyContentPresent ); LoadContentFromMailMessageL( iMessage, ETrue ); - } - + } } else { @@ -935,7 +935,7 @@ if( Layout_Meta_Data::IsLandscapeOrientation() ) { // landscape must use different layout - res = R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT; + res = R_AVKON_STATUS_PANE_LAYOUT_USUAL_EXT; } if( StatusPane()->CurrentLayoutResId() != res ) @@ -1221,7 +1221,7 @@ } } -void CFsEmailUiHtmlViewerView::DeleteMailL() +void CFsEmailUiHtmlViewerView::DeleteMailL(TBool aSilentDelete) { FUNC_LOG; @@ -1233,7 +1233,7 @@ TInt reallyDelete( ETrue ); if ( iAppUi.GetCRHandler()->WarnBeforeDelete() && - !iMessage->IsFlagSet( EFSMsgFlag_CalendarMsg ) ) + !aSilentDelete ) { reallyDelete = TFsEmailUiUtility::ShowConfirmationQueryL( R_FREESTYLE_EMAIL_UI_DELETE_MESSAGE_CONFIRMATION ); @@ -1269,7 +1269,9 @@ CleanupStack::PopAndDestroy( &msgIds ); // Notify appui of deleted mail item - SendEventToAppUiL( TFSEventMailDeleted ); + SendEventToAppUiL( TFSEventMailDeletedFromViewer ); + + if ( iAppUi.CurrentActiveView()->Id() == HtmlViewerId ) { @@ -1283,11 +1285,10 @@ ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY ); NavigateBackL(); } - - } - //inform user that mail is deleted - TFsEmailUiUtility::ShowDiscreetInfoNoteL( R_FREESTYLE_EMAIL_MAIL_DELETED ); + //inform user that mail is deleted + if (!aSilentDelete) + TFsEmailUiUtility::ShowDiscreetInfoNoteL( R_FREESTYLE_EMAIL_MAIL_DELETED ); } } @@ -1301,13 +1302,11 @@ { 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 || aEvent == TFSEventMailDeletedFromViewer) && aParam1 ) // Safety, in list events that only concern active mailbox are handled { TFSMailMsgId curMsgId = iMessage->GetMessageId(); RArray* removedEntries = static_cast*>( aParam1 ); - // break-keyword should be used only in switch-clauses TBool cont = ETrue; - for ( TInt i = 0 ; i < removedEntries->Count() && cont; i++ ) { if ( ( curMsgId == ( *removedEntries )[i] ) && @@ -1315,16 +1314,23 @@ { cont = EFalse; ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY ); - HandleCommandL( EAknSoftkeyBack ); + if(aEvent == TFSEventMailDeleted) + { //Delete event came from server; close the viewer. + HandleCommandL( EAknSoftkeyBack ); + // The message we are viewing was deleted => stop here + return; + } } } } - if (iMessage && aMailbox.Id() == iAppUi.GetActiveMailboxId().Id() && aEvent == TFSEventNewMail) + if (iContainer && iMessage && aMailbox.Id() == iAppUi.GetActiveMailboxId().Id() && + ( aEvent == TFSEventNewMail || + aEvent == TFSEventMailDeleted || + aEvent == TFSEventMailChanged ) ) { - UpdateEmailHeaderIndicators(); + iContainer->MailListModelUpdatedL(); } - // } void CFsEmailUiHtmlViewerView::DynInitZoomMenuL( CEikMenuPane* aMenuPane ) @@ -1408,6 +1414,16 @@ } // ----------------------------------------------------------------------------- +// CFsEmailUiHtmlViewerView::RestoreZoomLevelL() +// ----------------------------------------------------------------------------- +// +void CFsEmailUiHtmlViewerView::RestoreZoomLevelL() + { + FUNC_LOG; + SetZoomLevelIndexL( ZoomLevelIndexL() ); + } + +// ----------------------------------------------------------------------------- // CFsEmailUiHtmlViewerView::HandleEmailAddressCommandL() // ----------------------------------------------------------------------------- // @@ -1638,6 +1654,7 @@ void CFsEmailUiHtmlViewerView::DownloadAttachmentL( const TAttachmentData& aAttachment ) { + iAppUi.DownloadInfoMediator()->AddObserver( this, aAttachment.partData.iMessageId ); iAttachmentsListModel->StartDownloadL(aAttachment); } @@ -1786,6 +1803,12 @@ iContainer->ShowAttachmentDownloadStatusL( aEvent.iProgressStatus, *attachment ); } + + if (aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestComplete || + aEvent.iProgressStatus == TFSProgress::EFSStatus_RequestCancelled) + { + iAppUi.DownloadInfoMediator()->StopObserving( this, aPart.iMessageId ); + } } void CFsEmailUiHtmlViewerView::RequestResponseL( const TFSProgress& aEvent, const TPartData& aPart ) @@ -1967,6 +1990,8 @@ iAppUi.MoveToNextMsgL( currentMsgId, nextMsgId ); // Next message is displayed in this view through doactivate, because view is re-activate by mail list + + RestoreZoomLevelL(); } } } @@ -2000,7 +2025,7 @@ TFSMailMsgId prevMsgId; TFSMailMsgId prevMsgFolderId; if ( iAppUi.IsPreviousMsgAvailable( currentMsgId, prevMsgId, prevMsgFolderId ) ) - { + { if (iContainer) { iContainer->PrepareForMessageNavigation(); @@ -2014,6 +2039,8 @@ iAppUi.MoveToPreviousMsgL( currentMsgId, prevMsgId ); // Previous message is displayed in this view through doactivate, because view is re-activate by mail list + + RestoreZoomLevelL(); } } } @@ -2657,7 +2684,7 @@ if ( iMessage ) { iDeletedMessageFromMrui = iMessage->GetMessageId(); // - DeleteMailL(); + DeleteMailL(ETrue); iOpResult.iResultCode = KErrNone; //???? what to pass here }