emailuis/emailui/src/freestyleemailuimailboxdeleter.cpp
changeset 2 5253a20d2a1e
parent 1 12c456ceeff2
child 8 e1b6206813b4
equal deleted inserted replaced
1:12c456ceeff2 2:5253a20d2a1e
    65     }
    65     }
    66 
    66 
    67 void CFSEmailUiMailboxDeleter::ConstructL()
    67 void CFSEmailUiMailboxDeleter::ConstructL()
    68     {
    68     {
    69     FUNC_LOG;
    69     FUNC_LOG;
       
    70     iIdle = CIdle::NewL (CIdle::EPriorityIdle);
    70     }
    71     }
    71 
    72 
    72 CFSEmailUiMailboxDeleter::~CFSEmailUiMailboxDeleter()
    73 CFSEmailUiMailboxDeleter::~CFSEmailUiMailboxDeleter()
    73     {
    74     {
    74     FUNC_LOG;
    75     FUNC_LOG;
    75     delete iWaitDialog;
    76     delete iWaitDialog;
       
    77     iMailboxesToDelete.Close();
       
    78     if (iIdle)
       
    79     	{
       
    80     	iIdle->Cancel();
       
    81     	delete iIdle;
       
    82     	}
    76     }
    83     }
    77 
    84 
    78 
    85 
    79 // ---------------------------------------------------------------------------
    86 // ---------------------------------------------------------------------------
    80 // Deletes the given mailbox or displays a list of available mailboxes and
    87 // Deletes the given mailbox or displays a list of available mailboxes and
   459             if( aRequestId == iMailboxDeleteOperationId )
   466             if( aRequestId == iMailboxDeleteOperationId )
   460                 {
   467                 {
   461                 if( iMailboxesToDelete.Count() > 0 )
   468                 if( iMailboxesToDelete.Count() > 0 )
   462                     {
   469                     {
   463                     // Delete next mailbox in queue.
   470                     // Delete next mailbox in queue.
   464                     DoDeleteNextMailboxL();
   471             	    iIdle->Cancel();
       
   472             		iIdle->Start(TCallBack(IdleCallbackL,this));
   465                     }
   473                     }
   466                 else
   474                 else
   467                     {
   475                     {
   468                     if( iWaitDialog )
   476                     if( iWaitDialog )
   469                         {
   477                         {
   500     TFSMailMsgId nextToDelete = iMailboxesToDelete[0]; 
   508     TFSMailMsgId nextToDelete = iMailboxesToDelete[0]; 
   501     iMailboxesToDelete.Remove( 0 );
   509     iMailboxesToDelete.Remove( 0 );
   502     iMailboxDeleteOperationId = iMailClient.DeleteMailBoxByUidL( nextToDelete, 
   510     iMailboxDeleteOperationId = iMailClient.DeleteMailBoxByUidL( nextToDelete, 
   503                                                                  *this );
   511                                                                  *this );
   504     }
   512     }
       
   513 // ---------------------------------------------------------------------------
       
   514 // IdleCallback
       
   515 // ---------------------------------------------------------------------------
       
   516 //
       
   517 TInt CFSEmailUiMailboxDeleter::IdleCallbackL(TAny* aPtr)
       
   518 	{
       
   519 	TRAPD( leaveErr,
       
   520 		   static_cast<CFSEmailUiMailboxDeleter*>
       
   521 		   (aPtr)->DoDeleteNextMailboxL(); );
       
   522 	return leaveErr;
       
   523 	}
   505 
   524 
   506 // End of file
   525 // End of file