--- 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