emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp
changeset 1 12c456ceeff2
parent 0 8466d47a6819
child 2 5253a20d2a1e
--- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp	Thu Dec 17 08:39:21 2009 +0200
+++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpshandler.cpp	Thu Jan 07 12:38:38 2010 +0200
@@ -115,18 +115,18 @@
     // and pass it on to actual publisher interface
     iLiwIf->SetConfiguration( iSettings->Configuration() );
     
-    const TInt iiMax( iSettings->Mailboxes().Count() );
+    TInt iiMax( iSettings->Mailboxes().Count() );
     for ( TInt ii = 0; ii < iiMax; ii++ )
         {
         CFSMailBox* mailbox( NULL );
         mailbox = MailClient().GetMailBoxByUidL( iSettings->Mailboxes()[ii] );
 
-        TInt id(0);
+        TInt mailboxId(0);
         if (mailbox)
             {
-            id = mailbox->GetId().Id();
+            mailboxId = mailbox->GetId().Id();
             }
-        if ( !id )
+        if ( !mailboxId )
             {
             // Remove box from settings
             iSettings->RemoveMailboxL( ii );
@@ -136,13 +136,24 @@
         else
             {
             CleanupStack::PushL( mailbox );
-            CMailMailboxDetails* mailboxDetails = CreateMailboxDetailsL( *mailbox );
-            CleanupStack::PushL( mailboxDetails );
-            TBuf<KMaxDescLen> cid;
-            iSettings->GetContentId(id, cid);
-            mailboxDetails->SetWidgetInstance(cid);
-            iAccountsArray.AppendL( mailboxDetails );
-            CleanupStack::Pop( mailboxDetails );
+            TInt id(1);
+            while (id)
+                {
+                CMailMailboxDetails* mailboxDetails = CreateMailboxDetailsL( *mailbox );
+                CleanupStack::PushL( mailboxDetails );
+            
+                if (id > 1)
+                    {
+                    iiMax = iiMax - 1;
+                    }
+                TBuf<KMaxDescLen> cid;
+                id = iSettings->GetContentId(mailboxId, id, cid);
+                mailboxDetails->SetWidgetInstance(cid);
+                iAccountsArray.AppendL( mailboxDetails );
+    
+                CleanupStack::Pop( mailboxDetails );                
+                }
+            
             CleanupStack::PopAndDestroy( mailbox );            
             }
         }