--- a/ipsservices/ipssosplugin/src/ipsplgsearch.cpp Thu Dec 17 08:39:21 2009 +0200
+++ b/ipsservices/ipssosplugin/src/ipsplgsearch.cpp Thu Jan 07 12:38:38 2010 +0200
@@ -960,18 +960,36 @@
void CIpsPlgSearch::CollectMessagesL()
{
FUNC_LOG;
+ TMsvId mailboxId = iCurrentSearch.iMailbox.Id();
+ TMsvId serviceId;
+ TMsvEntry tEntry;
+ TMsvEntry mailboxServiceEntry;
+
// Lets make a huge list of message id's.
iEmailMessages.Reset();
const TInt folders = iCurrentSearch.iFolderIds.Count();
for ( TInt folder = 0; folder < folders; folder++ )
{
- iActiveEntry->SetEntryL( iCurrentSearch.iFolderIds[folder].Id() );
+ iActiveEntry->SetEntryL( iCurrentSearch.iFolderIds[folder].Id() );
+ if( iActiveEntry->Entry().Parent() == KMsvLocalServiceIndexEntryIdValue )
+ {
+ User::LeaveIfError(
+ iMsvSession.GetEntry( mailboxId, serviceId, tEntry ) );
+ User::LeaveIfError(
+ iMsvSession.GetEntry( tEntry.iRelatedId, serviceId, mailboxServiceEntry ) );
+ }
+ else
+ {
+ serviceId = mailboxId;
+ }
+
const TInt msgs = iActiveEntry->Count();
for ( TInt msg = 0; msg < msgs; msg++ )
{
const TMsvEntry& entry = ( *iActiveEntry )[msg];
if ( entry.iType == KUidMsvMessageEntry &&
+ entry.iServiceId == serviceId &&
( entry.iMtm.iUid == KSenduiMtmSmtpUidValue ||
entry.iMtm.iUid == iPlugin.MtmId().iUid ) )
{