diff -r e1b6206813b4 -r 72d484772ca6 emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp --- a/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp Fri Feb 19 22:37:30 2010 +0200 +++ b/emailservices/emailserver/cmailhandlerplugin/src/cmailcpssettings.cpp Fri Mar 12 15:41:14 2010 +0200 @@ -443,18 +443,20 @@ // CMailCpsSettings::AssociateWidgetToSetting // --------------------------------------------------------------------------- // -TBool CMailCpsSettings::AssociateWidgetToSetting( const TDesC& aContentId ) +void CMailCpsSettings::AssociateWidgetToSetting( const TDesC& aContentId, + const TFSMailMsgId aMailbox ) { FUNC_LOG; - TBool alreadyAssociated(ETrue); - - if (!IsAlreadyAssociated(aContentId)) + TInt setId (GetSettingToAssociate(aContentId)); + if (setId>=0) { - TUint32 key (GetSettingToAssociate()); - iCenRep->Set( key, aContentId ); - alreadyAssociated = EFalse; + TInt id = aMailbox.Id(); + TUid pluginId = aMailbox.PluginId(); + TInt pId(pluginId.iUid); + iCenRep->Set( KCMailMailboxIdBase+setId, id ); + iCenRep->Set( KCMailPluginIdBase+setId, pId ); + iCenRep->Set( KCMailWidgetContentIdBase+setId, aContentId ); } - return alreadyAssociated; } // --------------------------------------------------------------------------- @@ -467,8 +469,6 @@ TUint32 key(0); TUint32 mailboxKey(0); - RemoveFromContentIdListL( aContentId ); - for (TInt i = 0; i < KMaxMailboxCount; i++) { TBuf value; @@ -487,6 +487,45 @@ } // --------------------------------------------------------------------------- +// CMailCpsSettings::GetSettingToAssociate +// --------------------------------------------------------------------------- +// +TInt CMailCpsSettings::GetSettingToAssociate( const TDesC& aContentId ) + { + FUNC_LOG; + TInt ret(KErrNotFound); + + 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 = i; + break; + } + } + if (ret < 0 ) + { + for (TInt i = 0; i < KMaxMailboxCount; i++) + { + TBuf value; + TUint32 key(KCMailWidgetContentIdBase+i); + iCenRep->Get( key, value ); + TInt result = value.Compare(KDissociated); + if (!result) + { + ret = i; + break; + } + } + } + return ret; + } + +// --------------------------------------------------------------------------- // CMailCpsSettings::GetContentId // --------------------------------------------------------------------------- // @@ -582,52 +621,6 @@ } // --------------------------------------------------------------------------- -// CMailCpsSettings::IsAlreadyAssociated -// --------------------------------------------------------------------------- -// -TBool CMailCpsSettings::IsAlreadyAssociated( 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::GetSettingToAssociate -// --------------------------------------------------------------------------- -// -TUint32 CMailCpsSettings::GetSettingToAssociate() - { - FUNC_LOG; - TUint32 ret(KErrNone); - for (TInt i = 0; i < KMaxMailboxCount; i++) - { - TBuf value; - TUint32 key(KCMailWidgetContentIdBase+i); - iCenRep->Get( key, value ); - TInt result = value.Compare(KDissociated); - if (!result) - { - ret = KCMailWidgetContentIdBase + i; - break; - } - } - return ret; - } - -// --------------------------------------------------------------------------- // CMailCpsSettings::Configuration // --------------------------------------------------------------------------- // @@ -650,77 +643,6 @@ return ret; } -// --------------------------------------------------------------------------- -// CMailCpsSettings::FindFromContentIdListL -// --------------------------------------------------------------------------- -// -TBool CMailCpsSettings::FindFromContentIdListL( const TDesC& aContentId ) - { - FUNC_LOG; - TBool ret(EFalse); - - TBuf cid; - cid.Copy(KStartSeparator); - cid.Append(aContentId); - cid.Append(KEndSeparator); - - TBuf value; - TUint32 key(KCMailContentIdList); - iCenRep->Get( key, value ); - - TInt result = value.Find(cid); - - if (result >= 0) - { - ret = ETrue; - } - - return ret; - } - -// --------------------------------------------------------------------------- -// CMailCpsSettings::AddToContentIdListL -// --------------------------------------------------------------------------- -// -void CMailCpsSettings::AddToContentIdListL( const TDesC& aContentId ) - { - FUNC_LOG; - TBuf value; - - TUint32 key(KCMailContentIdList); - iCenRep->Get( key, value ); - - value.Append(KStartSeparator); - value.Append(aContentId); - value.Append(KEndSeparator); - - iCenRep->Set( key, value ); - } - -// --------------------------------------------------------------------------- -// CMailCpsSettings::RemoveFromContentIdListL -// --------------------------------------------------------------------------- -// -void CMailCpsSettings::RemoveFromContentIdListL( const TDesC& aContentId ) - { - FUNC_LOG; - TBuf cid; - cid.Copy(KStartSeparator); - cid.Append(aContentId); - cid.Append(KEndSeparator); - - TBuf value; - TUint32 key(KCMailContentIdList); - iCenRep->Get( key, value ); - - TInt result = value.Find(cid); - if (result >= 0) - { - value.Delete(result, cid.Length()); - iCenRep->Set( key, value ); - } - } - // ----------------------------------------------------------------------------- // CMailCpsSettings::ToggleWidgetNewMailIconL // -----------------------------------------------------------------------------