--- 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 );
}
}