emailuis/emailui/src/FreestyleEmailUiHtmlViewerView.cpp
branchRCL_3
changeset 35 e64954c2c8e2
parent 34 cd2816114bd1
child 24 b5fbb9b25d57
equal deleted inserted replaced
34:cd2816114bd1 35:e64954c2c8e2
   133     iAsyncCallback = new (ELeave) CAsyncCallBack( CActive::EPriorityLow );
   133     iAsyncCallback = new (ELeave) CAsyncCallBack( CActive::EPriorityLow );
   134     iOpenMessages = new (ELeave) CStack<CFSMailMessage, ETrue>();
   134     iOpenMessages = new (ELeave) CStack<CFSMailMessage, ETrue>();
   135     iEmbeddedMessages = new (ELeave) CStack<CFSMailMessage, EFalse>();
   135     iEmbeddedMessages = new (ELeave) CStack<CFSMailMessage, EFalse>();
   136     iNextOrPrevMessageSelected = EFalse; 
   136     iNextOrPrevMessageSelected = EFalse; 
   137     iForwardingMessage = EFalse;
   137     iForwardingMessage = EFalse;
       
   138     iMessageIsDeleted = EFalse;
   138     }
   139     }
   139 
   140 
   140 // -----------------------------------------------------------------------------
   141 // -----------------------------------------------------------------------------
   141 // CFsEmailUiHtmlViewerView::Id()
   142 // CFsEmailUiHtmlViewerView::Id()
   142 // Returns View's ID.
   143 // Returns View's ID.
   755             HandleCommandL(EFsEmailUiCmdActionsForward);
   756             HandleCommandL(EFsEmailUiCmdActionsForward);
   756             break;
   757             break;
   757             }
   758             }
   758         case EFsEmailUiTbCmdDelete:
   759         case EFsEmailUiTbCmdDelete:
   759             {
   760             {
   760             HandleCommandL(EFsEmailUiCmdActionsDelete);
   761             iAsyncCallback->Cancel();
       
   762             iAsyncCallback->Set( TCallBack( DeleteMail, this ) );
       
   763             iAsyncCallback->SetPriority( CActive::EPriorityHigh );
       
   764             iAsyncCallback->CallBack();
   761             break;
   765             break;
   762             }
   766             }
   763         case EFsEmailUiTbCmdReplyAll:
   767         case EFsEmailUiTbCmdReplyAll:
   764             {
   768             {
   765             HandleCommandL(EFsEmailUiCmdActionsReplyAll);
   769             HandleCommandL(EFsEmailUiCmdActionsReplyAll);
   909       
   913       
   910         }
   914         }
   911     // In usual case we use the base view implementation
   915     // In usual case we use the base view implementation
   912     else
   916     else
   913         {
   917         {
   914         
       
   915         iMessage = NULL;
   918         iMessage = NULL;
   916         
       
   917         CancelFetchings();
   919         CancelFetchings();
   918              
       
   919         CFsEmailUiViewBase::NavigateBackL();
   920         CFsEmailUiViewBase::NavigateBackL();
       
   921 
       
   922         if ( iContainer )
       
   923             {
       
   924             HideContainer();
       
   925             iContainer->ResetContent();
       
   926             }
   920         }
   927         }
   921     }
   928     }
   922 
   929 
   923 // ---------------------------------------------------------------------------
   930 // ---------------------------------------------------------------------------
   924 // Sets status bar layout
   931 // Sets status bar layout
  1167         {
  1174         {
  1168         iContainer->LoadContentFromMailMessageL( aMailMessage, aResetScrollPos );
  1175         iContainer->LoadContentFromMailMessageL( aMailMessage, aResetScrollPos );
  1169         }
  1176         }
  1170     }
  1177     }
  1171 
  1178 
  1172 void CFsEmailUiHtmlViewerView::DeleteMailL(TBool aSilentDelete)
  1179 TInt CFsEmailUiHtmlViewerView::DeleteMail( TAny* aSelf )
       
  1180     {
       
  1181     FUNC_LOG;
       
  1182     CFsEmailUiHtmlViewerView* self =
       
  1183         static_cast<CFsEmailUiHtmlViewerView*>( aSelf );
       
  1184     TRAP_IGNORE( self->DeleteMailL( EFalse ) );
       
  1185     return KErrNone;
       
  1186     }
       
  1187 
       
  1188 void CFsEmailUiHtmlViewerView::DeleteMailL( TBool aSilentDelete )
  1173     {
  1189     {
  1174     FUNC_LOG;
  1190     FUNC_LOG;
  1175 
  1191 
  1176     if ( !iMessage || iActivationData.iEmbeddedMessageMode )
  1192     if ( !iMessage || iActivationData.iEmbeddedMessageMode )
  1177         {
  1193         {
  1226         if ( iAppUi.CurrentActiveView()->Id() == HtmlViewerId )
  1242         if ( iAppUi.CurrentActiveView()->Id() == HtmlViewerId )
  1227             {   
  1243             {   
  1228             //Open the previous message or navigate back to list viewer
  1244             //Open the previous message or navigate back to list viewer
  1229             if ( available )
  1245             if ( available )
  1230                 {
  1246                 {
  1231                 iAppUi.MoveToPreviousMsgAfterDeleteL( prevMsgId );              
  1247 				iMessageIsDeleted = ETrue;
       
  1248                 TRAPD( err, iAppUi.MoveToPreviousMsgAfterDeleteL( prevMsgId ) );
       
  1249                 iMessageIsDeleted = EFalse;
       
  1250                 
       
  1251                 User::LeaveIfError( err );
  1232                 }   
  1252                 }   
  1233             else
  1253             else
  1234                 {
  1254                 {
  1235                 ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY );
  1255                 ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY );
  1236                 NavigateBackL();
  1256                 NavigateBackL();
  1262             if ( ( curMsgId == ( *removedEntries )[i] ) &&
  1282             if ( ( curMsgId == ( *removedEntries )[i] ) &&
  1263                     (iDeletedMessageFromMrui != curMsgId) )
  1283                     (iDeletedMessageFromMrui != curMsgId) )
  1264                 {                
  1284                 {                
  1265                 cont = EFalse;
  1285                 cont = EFalse;
  1266                 ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY );
  1286                 ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY );
  1267                 if(aEvent == TFSEventMailDeleted)
  1287                 if( aEvent == TFSEventMailDeleted  && !iMessageIsDeleted )
  1268                     {   //Delete event came from server; close the viewer.
  1288                     {   //Delete event came from server; close the viewer.
  1269                 	HandleCommandL( EAknSoftkeyBack );
  1289                 	HandleCommandL( EAknSoftkeyBack );
  1270                 	// The message we are viewing was deleted => stop here
  1290                 	// The message we are viewing was deleted => stop here
  1271                 	return;
  1291                 	return;
  1272                     }
  1292                     }
  1960             ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY );
  1980             ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY );
  1961 
  1981 
  1962             iAppUi.MoveToNextMsgL( currentMsgId, nextMsgId );
  1982             iAppUi.MoveToNextMsgL( currentMsgId, nextMsgId );
  1963             // Next message is displayed in this view through doactivate, because view is re-activate by mail list
  1983             // Next message is displayed in this view through doactivate, because view is re-activate by mail list
  1964 
  1984 
  1965             RestoreZoomLevelL();
  1985             if ( iContainer )
       
  1986                 {
       
  1987 			    RestoreZoomLevelL();
       
  1988                 }
  1966             }
  1989             }
  1967         }
  1990         }
  1968     }
  1991     }
  1969 // -----------------------------------------------------------------------------
  1992 // -----------------------------------------------------------------------------
  1970 // CFsEmailUiHtmlViewerView::ShowPreviousMessageMenuInOptions
  1993 // CFsEmailUiHtmlViewerView::ShowPreviousMessageMenuInOptions
  2009             ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY );
  2032             ChangeMskCommandL( R_FSE_QTN_MSK_EMPTY );
  2010 
  2033 
  2011             iAppUi.MoveToPreviousMsgL( currentMsgId, prevMsgId );
  2034             iAppUi.MoveToPreviousMsgL( currentMsgId, prevMsgId );
  2012             // Previous message is displayed in this view through doactivate, because view is re-activate by mail list
  2035             // Previous message is displayed in this view through doactivate, because view is re-activate by mail list
  2013 
  2036 
  2014             RestoreZoomLevelL();
  2037             if ( iContainer )
       
  2038                 {
       
  2039                 RestoreZoomLevelL();
       
  2040                 }
  2015             }
  2041             }
  2016         }
  2042         }
  2017     }
  2043     }
  2018 
  2044 
  2019 
  2045 
  2060                 case EFSEmailUiCtrlBarResponseSelect:
  2086                 case EFSEmailUiCtrlBarResponseSelect:
  2061                     {
  2087                     {
  2062                     iMoveDestinationFolder = aSelectedFolderId;
  2088                     iMoveDestinationFolder = aSelectedFolderId;
  2063                     iAsyncCallback->Cancel(); // cancel any outstanding callback just to be safe
  2089                     iAsyncCallback->Cancel(); // cancel any outstanding callback just to be safe
  2064                     iAsyncCallback->Set( TCallBack( MoveToFolderAndExitL, this ) );
  2090                     iAsyncCallback->Set( TCallBack( MoveToFolderAndExitL, this ) );
       
  2091                     iAsyncCallback->SetPriority( CActive::EPriorityLow );
  2065                     iAsyncCallback->CallBack();
  2092                     iAsyncCallback->CallBack();
  2066                     }
  2093                     }
  2067                     break;
  2094                     break;
  2068                 case EFSEmailUiCtrlBarResponseCancel:
  2095                 case EFSEmailUiCtrlBarResponseCancel:
  2069                 default:
  2096                 default: