emailuis/emailui/src/freestyleemailuimailboxdeleter.cpp
changeset 2 5253a20d2a1e
parent 1 12c456ceeff2
child 8 e1b6206813b4
--- a/emailuis/emailui/src/freestyleemailuimailboxdeleter.cpp	Thu Jan 07 12:38:38 2010 +0200
+++ b/emailuis/emailui/src/freestyleemailuimailboxdeleter.cpp	Mon Jan 18 20:08:26 2010 +0200
@@ -67,12 +67,19 @@
 void CFSEmailUiMailboxDeleter::ConstructL()
     {
     FUNC_LOG;
+    iIdle = CIdle::NewL (CIdle::EPriorityIdle);
     }
 
 CFSEmailUiMailboxDeleter::~CFSEmailUiMailboxDeleter()
     {
     FUNC_LOG;
     delete iWaitDialog;
+    iMailboxesToDelete.Close();
+    if (iIdle)
+    	{
+    	iIdle->Cancel();
+    	delete iIdle;
+    	}
     }
 
 
@@ -461,7 +468,8 @@
                 if( iMailboxesToDelete.Count() > 0 )
                     {
                     // Delete next mailbox in queue.
-                    DoDeleteNextMailboxL();
+            	    iIdle->Cancel();
+            		iIdle->Start(TCallBack(IdleCallbackL,this));
                     }
                 else
                     {
@@ -502,5 +510,16 @@
     iMailboxDeleteOperationId = iMailClient.DeleteMailBoxByUidL( nextToDelete, 
                                                                  *this );
     }
+// ---------------------------------------------------------------------------
+// IdleCallback
+// ---------------------------------------------------------------------------
+//
+TInt CFSEmailUiMailboxDeleter::IdleCallbackL(TAny* aPtr)
+	{
+	TRAPD( leaveErr,
+		   static_cast<CFSEmailUiMailboxDeleter*>
+		   (aPtr)->DoDeleteNextMailboxL(); );
+	return leaveErr;
+	}
 
 // End of file