diff -r da5135c61bad -r cd2816114bd1 emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp --- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp Wed Mar 31 21:08:33 2010 +0300 +++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp Wed Apr 14 15:42:15 2010 +0300 @@ -145,6 +145,7 @@ ret = ResolveMailbox( value, mailbox ); if ( ret ) { + INFO("CMailCpsSettings::LoadSettingsL(): Error: ignore this entry"); // Resolving encountered error, ignore this entry ret = iCenRep->Reset( KCMailMailboxIdBase+ii ); ret = iCenRep->Reset( KCMailPluginIdBase+ii ); @@ -216,7 +217,8 @@ FUNC_LOG; RPointerArray mailboxarray; TInt err = iMailClient.ListMailBoxes( TFSMailMsgId(), mailboxarray ); - if( !err ) + INFO_1("CMailCpsSettings::ResolveMailbox(): : ListMailBoxes() returns %d", err); + if( !err ) // KErrNone = 0 { err = KErrNotFound; aMsg.SetId( aMailboxId ); @@ -227,13 +229,11 @@ { // Mailbox found aMsg.SetPluginId( mailboxarray[ii]->GetId().PluginId() ); - return err = KErrNone; + err = KErrNone; + break; } } } - else - { - } mailboxarray.ResetAndDestroy(); return err; } @@ -386,40 +386,16 @@ { if( iMailboxArray[ii].Id() == aMailbox.Id() ) { - RemoveMailboxL( ii ); + TBuf cid; + GetContentId( aMailbox.Id(), 1, cid ); + DissociateWidgetFromSettingL( cid ); + iMailboxArray.Remove( ii ); break; } } } // --------------------------------------------------------------------------- -// CMailCpsSettings::RemoveMailboxL -// --------------------------------------------------------------------------- -// -void CMailCpsSettings::RemoveMailboxL( const TInt aIndex ) - { - FUNC_LOG; - - // Remove mailbox from local array - TFSMailMsgId mailboxId = iMailboxArray[aIndex]; - iMailboxArray.Remove( aIndex ); - - // Remove mailbox from widget settings - RArray keys; - GetMailboxNonZeroKeysL( keys ); - const TInt iiMax( keys.Count() ); - for ( TInt ii = 0; ii < iiMax; ii++ ) - { - TInt value( 0 ); - iCenRep->Get( keys[ii], value ); - if( value == mailboxId.Id() ) - { - iCenRep->Set( keys[ii], 0 ); - } - } - } - -// --------------------------------------------------------------------------- // CMailCpsSettings::MaxRowCount // --------------------------------------------------------------------------- // @@ -466,21 +442,17 @@ void CMailCpsSettings::DissociateWidgetFromSettingL( const TDesC& aContentId ) { FUNC_LOG; - TUint32 key(0); - TUint32 mailboxKey(0); - - for (TInt i = 0; i < KMaxMailboxCount; i++) + for ( TInt i = 0; i < KMaxMailboxCount; i++ ) { TBuf value; - TUint32 tempKey(KCMailWidgetContentIdBase+i); - iCenRep->Get( tempKey, value ); + TUint32 key( KCMailWidgetContentIdBase + i ); + iCenRep->Get( key, value ); TInt result = value.Compare(aContentId); if (!result) { - key = tempKey; - mailboxKey = KCMailMailboxIdBase + i; - iCenRep->Reset(key); - iCenRep->Reset(mailboxKey); + iCenRep->Reset( key ); + iCenRep->Reset( KCMailMailboxIdBase + i ); + iCenRep->Reset( KCMailPluginIdBase + i ); break; } } @@ -526,6 +498,30 @@ } // --------------------------------------------------------------------------- +// CMailCpsSettings::Associated +// --------------------------------------------------------------------------- +// +TBool CMailCpsSettings::Associated( const TDesC& aContentId ) + { + FUNC_LOG; + TBool ret(EFalse); + + for (TInt i = 0; i < KMaxMailboxCount; i++) + { + TBuf value; + TUint32 key(KCMailWidgetContentIdBase+i); + iCenRep->Get( key, value ); + TInt result = value.Compare(aContentId); + if (!result) + { + ret = ETrue; + break; + } + } + return ret; + } + +// --------------------------------------------------------------------------- // CMailCpsSettings::GetContentId // --------------------------------------------------------------------------- //