Merge heads.
authorPat Downey <patd@symbian.org>
Wed, 23 Jun 2010 17:22:18 +0100
changeset 8 2f67eb14d003
parent 7 51d10d255e92 (diff)
parent 4 6396153a6cef (current diff)
child 9 4a2987baf8f7
Merge heads.
searchui/stateproviders/searchstateprovider/resources/searchstateprovider.docml
--- a/harvesterplugins/applications/src/applicationsplugin.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/applications/src/applicationsplugin.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -137,8 +137,12 @@
     //GetWidgetPropertyValueL returns CWidgetPropertyValue* which in turn has an operator to convert to TDesC
     aDocument->AddFieldL(KApplicationFieldCaption, *(iWidgetRegistry.GetWidgetPropertyValueL( aUid, EBundleDisplayName )),  CDocumentField::EStoreYes | CDocumentField::EIndexTokenized );
 
-    iWidgetRegistry.GetWidgetBundleName( aUid, temp );
-    aDocument->AddExcerptL( temp );
+    //For applications, no content to go into exceprt field.
+    //For more info, check the appclass-hierarchy.txt
+    //iWidgetRegistry.GetWidgetBundleName( aUid, temp );
+    //aDocument->AddExcerptL( temp );
+    aDocument->AddExcerptL( KNullDesC );
+    
     OstTraceExt1( TRACE_NORMAL, DUP1_CAPPLICATIONSPLUGIN_ADDWIDGETINFOL, "CApplicationsPlugin::AddWidgetInfoL;DisplayName=%S", &temp );
     CPIXLOGSTRING2("AddApplicationInfo(): DisplayName = %S ", &temp );
     }
@@ -150,9 +154,26 @@
     TBuf<KMaxFileName> docidString = aAppInfo.iUid.Name(); //This returns stuff in the form "[UID]". So remove the brackets.
     docidString = docidString.Mid( KUidStartIndex, KUidEndIndex );
     
-    aDocument->AddFieldL(KApplicationFieldCaption, aAppInfo.iShortCaption, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized );
-    aDocument->AddFieldL(KApplicationFieldAbsolutePath, aAppInfo.iFullName, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized );
-    aDocument->AddExcerptL( aAppInfo.iCaption );
+    //We index the exe name (without extension), only if the title is not present.
+    if( aAppInfo.iShortCaption.Compare(KNullDesC) )
+        {
+        aDocument->AddFieldL(KApplicationFieldCaption, aAppInfo.iShortCaption, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized );
+        }
+    else
+        {
+        //Find the *last* location of '\' and remove the .exe to get just the filename.
+        TInt location = aAppInfo.iFullName.LocateReverse('\\');
+        if( location > 0 )
+            {
+            TInt lengthOfNameWithoutExtention = aAppInfo.iFullName.Length() -location -1; //-1 to increment one past '\'.
+            TPtrC appName = aAppInfo.iFullName.Right( lengthOfNameWithoutExtention );
+            aDocument->AddFieldL(KApplicationFieldAbsolutePath, appName.Left( appName.Length() -4 /*remove ".exe"*/), CDocumentField::EStoreYes | CDocumentField::EIndexTokenized );
+            }
+        }
+    //For applications, no content to go into exceprt field, for more info, check the appclass-hierarchy.txt
+    //aDocument->AddExcerptL( aAppInfo.iCaption );
+    aDocument->AddExcerptL( KNullDesC );
+    
     OstTraceExt2( TRACE_NORMAL, _ADDAPPLICATIONINFOL, "::AddApplicationInfoL;UID=%S;PATH=%S", &docidString, &aAppInfo.iFullName );
     OstTraceExt2( TRACE_NORMAL, DUP1__ADDAPPLICATIONINFOL, "::AddApplicationInfoL;Excerpt=%S;Caption=%S", &aAppInfo.iCaption, &aAppInfo.iShortCaption );
     
@@ -176,6 +197,9 @@
         ret = cap().iAppIsHidden;
         }
 
+    //This commented code is left here as the following functionality may need to be 
+    //returned if and when this or similar APIs are available for 10.1
+    
     //Application should not be listed hidden in application shell.
 //    TBuf<NCentralRepositoryConstants::KMaxUnicodeStringLength> uidResult;
 //    if( iHiddenApplicationsRepository->Get( KMenuHideApplication, uidResult ) == KErrNone )
--- a/harvesterplugins/applications/traces/OstTraceDefinitions.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/applications/traces/OstTraceDefinitions.h	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #ifndef __OSTTRACEDEFINITIONS_H__
 #define __OSTTRACEDEFINITIONS_H__
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
--- a/harvesterplugins/bookmarks/src/bookmarksplugin.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/bookmarks/src/bookmarksplugin.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -36,7 +36,7 @@
 const TInt KHarvestingDelay = 1000;
 /** Number of bookmarks to process in one active scheduler cycle */
 const TInt KBookmarksPerRunL = 1;
-_LIT(KExcerptDelimiter, " ");
+//_LIT(KExcerptDelimiter, " ");
 /** Bookmark list size for dynamic array*/
 const TInt KBookmarkListSize = 100;
 
@@ -270,14 +270,16 @@
             OstTraceExt1( TRACE_NORMAL, DUP1_CBOOKMARKSPLUGIN_DOINDEXINGL, "CBookmarksPlugin::DoIndexingL();domain=%S", domain );
             CPIXLOGSTRING2("CBookmarksPlugin::DoIndexingL(): domain = %S", &domain );
             }
+        
+        //For bookmarks, only URL should go into exceprt field.
+        //For more info, check the appclass-hierarchy.txt
+
         //Add Excerpt as it is must have field. What should be excerpt in bookmarks ?
-        HBufC* excerpt = HBufC::NewLC(aItem->Url().Length() + aItem->Name().Length() + 1);
+        HBufC* excerpt = HBufC::NewLC( aItem->Url().Length() + 1 );
         TPtr ptr = excerpt->Des();
-        ptr.Append(aItem->Name());
-        ptr.Append(KExcerptDelimiter);
-        ptr.Append(aItem->Url());
-        index_item->AddExcerptL(*excerpt);
-        CleanupStack::PopAndDestroy(excerpt);
+        ptr.Append( aItem->Url() );
+        index_item->AddExcerptL( *excerpt );
+        CleanupStack::PopAndDestroy( excerpt );
 
         // Send for indexing
         TRAPD(err, iIndexer->AddL(*index_item));
--- a/harvesterplugins/bookmarks/traces/OstTraceDefinitions.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/bookmarks/traces/OstTraceDefinitions.h	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #ifndef __OSTTRACEDEFINITIONS_H__
 #define __OSTTRACEDEFINITIONS_H__
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
--- a/harvesterplugins/calendar/src/ccalendarplugin.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/calendar/src/ccalendarplugin.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -41,7 +41,7 @@
 /** The delay between harvesting chunks. */
 const TInt KHarvestingDelay = 2000;
 
-_LIT(KCalendarTimeFormat,"%F%/0%Y%M%D%H%T"); // Locale independent YYYYMMDDHHSS
+_LIT(KCalendarTimeFormat,"%F%/0%Y %M %D %H%T"); // Locale independent YYYYMMDDHHSS
 
 // ---------------------------------------------------------------------------
 // CMessagePlugin::NewL
@@ -400,11 +400,9 @@
 
 		index_item->AddFieldL(KMimeTypeField, KMimeTypeCalendar, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized);
 
-    	TInt excerptLength = 3 + entry->SummaryL().Length() + entry->DescriptionL().Length() + entry->LocationL().Length();
+    	TInt excerptLength = 1 /*single 1-character delimiters*/ + entry->DescriptionL().Length() + entry->LocationL().Length();
 		HBufC* excerpt = HBufC::NewLC(excerptLength);
 		TPtr excerptDes = excerpt->Des();
-		excerptDes.Copy(entry->SummaryL());
-		excerptDes.Append(KExcerptDelimiter);
 		excerptDes.Append(entry->DescriptionL());
 		excerptDes.Append(KExcerptDelimiter);
 		excerptDes.Append(entry->LocationL());
--- a/harvesterplugins/calendar/traces/OstTraceDefinitions.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/calendar/traces/OstTraceDefinitions.h	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #ifndef __OSTTRACEDEFINITIONS_H__
 #define __OSTTRACEDEFINITIONS_H__
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
--- a/harvesterplugins/contacts/inc/ccontactsplugin.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/contacts/inc/ccontactsplugin.h	Wed Jun 23 17:22:18 2010 +0100
@@ -25,6 +25,7 @@
 #include <cindexingplugin.h>
 #include <common.h>
 #include "delayedcallback.h"
+#include "cdocumentfield.h"
 
 class CSearchDocument;
 class CContactItemFieldSet;
@@ -53,14 +54,23 @@
 _LIT(KContactsSIPIDField, "SIPID");
 _LIT(KContactsSpouseField, "Spouse");
 _LIT(KContactsChildrenField, "Children");
-_LIT(KContactsClassField, "Class");
+//_LIT(KContactsClassField, "Class");
 _LIT(KContactsPrefixField, "Prefix");
 _LIT(KContactsAdditionalNameField, "AdditionalName");
 _LIT(KContactsFaxField, "Fax");
-_LIT(KContactsGivenNamePronunciationField, "GivenNamePronunciation");
-_LIT(KContactsFamilyNamePronunciationField, "FamilyNamePronunciation");
-_LIT(KContactsCompanyNamePronunciationField, "CompanyNamePronunciation");
-
+_LIT(KContactsDepartmentName, "Departmant");
+_LIT(KContactIMAddress, "IMAddress");
+_LIT(KContactServiceProvider, "ServiceProvider");
+_LIT(KContactAssistant, "Assistant");
+_LIT(KContactAnniversary, "Anniversary");
+_LIT(KContactBirthday, "Birthday");
+_LIT(KDateSeparator, "-");
+const TInt KDateFieldLength = 10;
+const TInt KDayPosition = 8;
+const TInt KMonthPosition = 5;
+const TInt KYearPosition = 0;
+const TInt KDayLength = 2;
+const TInt KYearLength = 4;
 
 class CContactsPlugin : public CIndexingPlugin, public MContactDbObserver, public MDelayedCallbackObserver
 {
@@ -93,14 +103,23 @@
 	/**
 	 *  Adds information field (if available)
 	 */
-	void AddFieldL(CSearchDocument& aDocument, CContactItemFieldSet& aFieldSet, TUid aFieldId, const TDesC& aFieldName );
-
+	void AddFieldL(CSearchDocument& aDocument, CContactItemFieldSet& aFieldSet, TUid aFieldId, const TDesC& aFieldName, const TInt aConfig = CDocumentField::EStoreYes | CDocumentField::EIndexTokenized);
+	
+	/**
+     *  Gets the date from anniversary text field
+     */	
+	void GetDateL(const TDesC& aTime, TDes& aDateString);
 	/**
 	 *  Adds to excerpt
 	 */
 	void AddToExcerptL(CSearchDocument& aDocument, CContactItemFieldSet& aFieldSet, TUid aFieldId, const TDesC& aFieldName );
 
 	/**
+	 *  Helper function: adds information field to the document and to the excerpt field(if available)
+	 */
+	void AddFieldToDocumentAndExcerptL(CSearchDocument& aDocument, CContactItemFieldSet& aFieldSet, TUid aFieldId, const TDesC& aFieldName, const TInt aConfig = CDocumentField::EStoreYes | CDocumentField::EIndexTokenized );
+	
+	/**
 	 * Creates the actual contact book index item
 	 */
 	void CreateContactIndexItemL(TInt aContentId, TCPixActionType aActionType);
--- a/harvesterplugins/contacts/src/ccontactsplugin.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/contacts/src/ccontactsplugin.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -39,7 +39,8 @@
 const TInt KContactsPerRunL = 1;
 
 _LIT(KExcerptDelimiter, " ");
-
+_LIT(KTimeFormat, "%D%N%Y%1 %2 %3"); //Date, Month name and Year format
+ 
 // -----------------------------------------------------------------------------
 // CContactsPlugin::NewL()
 // -----------------------------------------------------------------------------
@@ -249,7 +250,7 @@
 // PhoneNumber values), then the FieldNames of non-first values are appended a 
 // number.
 // ---------------------------------------------------------------------------
-void CContactsPlugin::AddFieldL(CSearchDocument& aDocument, CContactItemFieldSet& aFieldSet, TUid aFieldId, const TDesC& aFieldName)
+void CContactsPlugin::AddFieldL(CSearchDocument& aDocument, CContactItemFieldSet& aFieldSet, TUid aFieldId, const TDesC& aFieldName, const TInt aConfig)
 	{
 	HBufC* fieldName = HBufC::NewLC(aFieldName.Length() + 3); // +3 so can append variable 'i'.
 	TPtr fieldNamePtr = fieldName->Des();
@@ -264,13 +265,34 @@
 			fieldNamePtr.AppendNum(i);
 			}
 		CContactItemField& additionalField = aFieldSet[findpos];
-		CContactTextField* fieldText = additionalField.TextStorage();
-		if (fieldText && fieldText->Text() != KNullDesC)
-	        aDocument.AddFieldL(fieldNamePtr, fieldText->Text(), CDocumentField::EStoreYes | CDocumentField::EIndexTokenized);
+		if( additionalField.StorageType() == KStorageTypeDateTime)
+		    {
+            CContactDateField* fieldDate = additionalField.DateTimeStorage();
+            if (fieldDate)
+                {
+                TBuf<30> dateString;
+                fieldDate->Time().FormatL(dateString, KTimeFormat);
+                aDocument.AddFieldL(fieldNamePtr, dateString, aConfig);
+                }
+            else
+                aDocument.AddFieldL(fieldNamePtr, KNullDesC, aConfig);
+		    }
 		else
-	        aDocument.AddFieldL(fieldNamePtr, KNullDesC, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized);
-		
-		findpos = aFieldSet.FindNext(aFieldId, findpos+1);
+		    {
+            CContactTextField* fieldText = additionalField.TextStorage();
+            if (fieldText && fieldText->Text() != KNullDesC && aFieldId != KUidContactFieldAnniversary)
+                aDocument.AddFieldL(fieldNamePtr, fieldText->Text(), aConfig);
+            else if (fieldText && aFieldId == KUidContactFieldAnniversary)
+                {
+                TBuf<30> dateString;
+                GetDateL(fieldText->Text(), dateString);
+                aDocument.AddFieldL(fieldNamePtr, dateString, aConfig);
+                }
+            else
+                aDocument.AddFieldL(fieldNamePtr, KNullDesC, aConfig);
+		    }
+            findpos = aFieldSet.FindNext(aFieldId, findpos+1);
+
 		}
 	CleanupStack::PopAndDestroy(fieldName);
 	}
@@ -280,7 +302,7 @@
 // CContactsPlugin::AddToExcerptL
 // Adds more text to excerpt
 // ---------------------------------------------------------------------------
-void CContactsPlugin::AddToExcerptL(CSearchDocument& /*aDocument*/, CContactItemFieldSet& aFieldSet, TUid aFieldId, const TDesC& /*aFieldName*/ )
+void CContactsPlugin::AddToExcerptL(CSearchDocument& /*aDocument*/, CContactItemFieldSet& aFieldSet, TUid aFieldId, const TDesC& /*aFieldName*/)
 	{
 	// Find field
 	TInt findpos = aFieldSet.Find( aFieldId );
@@ -300,6 +322,17 @@
 		}
 	}
 
+// ---------------------------------------------------------------------------
+// Helper: Adds the field to the document AND to the exceprt field.
+// This function helps avoid calling two functions explicitly for most fields.
+// This function needs to be a member function as it has to call member functions.
+// Improvement: AddFieldL need to be a member function - can be refactored.
+// ---------------------------------------------------------------------------
+void CContactsPlugin::AddFieldToDocumentAndExcerptL(CSearchDocument& aDocument, CContactItemFieldSet& aFieldSet, TUid aFieldId, const TDesC& aFieldName, const TInt aConfig )
+    {
+    AddFieldL( aDocument, aFieldSet, aFieldId, aFieldName, aConfig );
+    AddToExcerptL( aDocument, aFieldSet, aFieldId, aFieldName );
+    }
 
 // ---------------------------------------------------------------------------
 // CContactsPlugin::CreateMessageIndexItemL
@@ -333,52 +366,59 @@
 		    }
 		else//If the contact item is a regular contact.
 		    {
-            CContactItemFieldSet& fieldSet = contact->CardFields();
-            AddFieldL( *index_item, fieldSet, KUidContactFieldGivenName, KContactsGivenNameField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldFamilyName, KContactsFamilyNameField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldCompanyName, KContactsCompanyNameField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldPhoneNumber, KContactsPhoneNumberField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldAddress, KContactsAddressField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldNote, KContactsNoteField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldJobTitle, KContactsJobTitleField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldSecondName, KContactsSecondNameField ); 
-            
-            AddFieldL( *index_item, fieldSet, KUidContactFieldPrefixName, KContactsPrefixField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldSuffixName, KContactsSuffixField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldAdditionalName, KContactsAdditionalNameField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldEMail, KContactsEMailField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldUrl, KContactsUrlField );
-    
-            AddFieldL( *index_item, fieldSet, KUidContactFieldPostOffice, KContactsPostOfficeField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldExtendedAddress, KContactsExtendedAddressField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldLocality, KContactsLocalityField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldRegion, KContactsRegionField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldPostcode, KContactsPostcodeField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldCountry, KContactsCountryField );
-    
-            AddFieldL( *index_item, fieldSet, KUidContactFieldSIPID, KContactsSIPIDField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldSpouse, KContactsSpouseField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldChildren, KContactsChildrenField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldClass, KContactsClassField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldFax, KContactsFaxField );				
-            
-            AddFieldL( *index_item, fieldSet, KUidContactFieldGivenNamePronunciation, KContactsGivenNamePronunciationField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldFamilyNamePronunciation, KContactsFamilyNamePronunciationField );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldCompanyNamePronunciation, KContactsCompanyNamePronunciationField );
-            //left: Birthday; Anniversary (date kind of type), Picture, Logo..
-
             if (iExcerpt)
                 {
                 delete iExcerpt;
                 iExcerpt = NULL;
                 }
             iExcerpt = HBufC::NewL(2);
-            AddToExcerptL( *index_item, fieldSet, KUidContactFieldGivenName, KContactsGivenNameField );
-            AddToExcerptL( *index_item, fieldSet, KUidContactFieldFamilyName, KContactsFamilyNameField );
-            AddToExcerptL( *index_item, fieldSet, KUidContactFieldPhoneNumber, KContactsPhoneNumberField );
-            AddToExcerptL( *index_item, fieldSet, KUidContactFieldCompanyName, KContactsCompanyNameField );
-            AddToExcerptL( *index_item, fieldSet, KUidContactFieldLocality, KContactsLocalityField );
-            AddToExcerptL( *index_item, fieldSet, KUidContactFieldCountry, KContactsCountryField );
+            
+            CContactItemFieldSet& fieldSet = contact->CardFields();
+
+            //For contacts, all fields __except__ GivenName and FamilyName should be added to excerpt.
+            //See appclass-hierarchy.txt for details.
+            /* The order of fields in excerpt is as below. The order in this case
+             * is the order of fields shown when you 'Edit' the contact.
+             */
+            AddFieldL( *index_item, fieldSet, KUidContactFieldGivenName, KContactsGivenNameField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText );
+            AddFieldL( *index_item, fieldSet, KUidContactFieldFamilyName, KContactsFamilyNameField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField:: EIndexFreeText );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldPhoneNumber, KContactsPhoneNumberField );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldEMail, KContactsEMailField );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldSIPID, KContactsSIPIDField );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldCompanyName, KContactsCompanyNameField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldJobTitle, KContactsJobTitleField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldNote, KContactsNoteField );
+
+            /* The following fields are not displayed when 'Edit'-ing the contact.
+             * The order here is arbitrary.
+             */
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldAddress, KContactsAddressField );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldSecondName, KContactsSecondNameField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldPrefixName, KContactsPrefixField );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldSuffixName, KContactsSuffixField );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldAdditionalName, KContactsAdditionalNameField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText);
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldUrl, KContactsUrlField );
+    
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldPostOffice, KContactsPostOfficeField );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldExtendedAddress, KContactsExtendedAddressField );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldLocality, KContactsLocalityField );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldRegion, KContactsRegionField );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldPostcode, KContactsPostcodeField );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldCountry, KContactsCountryField );
+    
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldSpouse, KContactsSpouseField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText);
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldChildren, KContactsChildrenField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText);
+            //AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldClass, KContactsClassField ); //sync field
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldFax, KContactsFaxField );
+            
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldAssistant, KContactAssistant, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText);
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldDepartmentName, KContactsDepartmentName, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText);
+            
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldIMAddress, KContactIMAddress);
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldServiceProvider, KContactServiceProvider);
+            
+            AddFieldL( *index_item, fieldSet, KUidContactFieldBirthday, KContactBirthday);
+            AddFieldL( *index_item, fieldSet, KUidContactFieldAnniversary, KContactAnniversary);
             index_item->AddExcerptL(*iExcerpt);
             }
         
@@ -435,6 +475,29 @@
     }
 
 // ---------------------------------------------------------------------------
+// CContactsPlugin::GetDateL
+// ---------------------------------------------------------------------------
+//
+void CContactsPlugin::GetDateL(const TDesC& aTime, TDes& aDateString)
+    {
+    TTime time;
+    //sort the date string to the requried format dd/mm/yyyy from returned
+    //format yyyy/mm/dd as parse API is currently not supporting japanese date format
+    if( aTime.Length() >= KDateFieldLength)
+        {
+        aDateString.Copy(aTime.Mid( KDayPosition, KDayLength ));
+        aDateString.Append(KDateSeparator);
+        aDateString.Append(aTime.Mid( KMonthPosition, KDayLength ));
+        aDateString.Append(KDateSeparator);
+        aDateString.Append(aTime.Mid( KYearPosition, KYearLength ));
+        TInt err = time.Parse(aDateString);
+        if ( err >= KErrNone)
+            {
+            time.FormatL(aDateString, KTimeFormat);
+            }
+        }
+    }
+// ---------------------------------------------------------------------------
 // CContactsPlugin::UpdatePerformaceDataL
 // ---------------------------------------------------------------------------
 //	
--- a/harvesterplugins/contacts/traces/OstTraceDefinitions.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/contacts/traces/OstTraceDefinitions.h	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #ifndef __OSTTRACEDEFINITIONS_H__
 #define __OSTTRACEDEFINITIONS_H__
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
--- a/harvesterplugins/file/fastfindfileserverplugin/traces/OstTraceDefinitions.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/file/fastfindfileserverplugin/traces/OstTraceDefinitions.h	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #ifndef __OSTTRACEDEFINITIONS_H__
 #define __OSTTRACEDEFINITIONS_H__
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
--- a/harvesterplugins/file/src/cfileplugin.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/file/src/cfileplugin.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -116,7 +116,7 @@
                                 _S("awb"),_S("mid"), _S("midi"), _S("spmid"), _S("rng"), _S("mxmf"), _S("wav"),
                                 _S("au"), _S("nrt"), _S("mka"),_S("jp2"), _S("j2k"), _S("jpx"),
                                 _S("rm"), _S("rmvb"),_S("ota"), _S("wbmp"), _S("wmf"),_S("otb"),
-                                _S("rv"),  _S("mkv"), _S("ra"),_S("tif"), _S("tiff")};
+                                _S("rv"),  _S("mkv"), _S("asf"),_S("ra"),_S("tif"), _S("tiff")};
     
     const TInt count = sizeof( KMediaExt ) / sizeof( TText* );
     
@@ -650,8 +650,9 @@
         index_item->AddFieldL(KMimeTypeField, KMimeTypeFolder, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized);
         }   
     
+    //Only content to be added to exceprt field. See appclass-hierarchy.txt
     //Add excerpt field
-    index_item->AddExcerptL(aFilePath);
+    //index_item->AddExcerptL(aFilePath);
     
     CleanupStack::Pop(index_item);
     return index_item;
--- a/harvesterplugins/file/traces/OstTraceDefinitions.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/file/traces/OstTraceDefinitions.h	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #ifndef __OSTTRACEDEFINITIONS_H__
 #define __OSTTRACEDEFINITIONS_H__
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
--- a/harvesterplugins/inc/s60performance.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/inc/s60performance.h	Wed Jun 23 17:22:18 2010 +0100
@@ -1,20 +1,17 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+* ==============================================================================
+*  Name        : s60performance.h
+*  Part of     : SearchServer
+*  Interface   :
+*  Description :
+*  Version     :
 *
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
+*  Copyright (c) 2008 Nokia Corporation.
+*  This material, including documentation and any related
+*  computer programs, is protected by copyright controlled by
+*  Nokia Corporation.
+* ==============================================================================
 */
 
-
 // Uncomment to get harvester plugin performance logs
 //MACRO __PERFORMANCE_DATA
--- a/harvesterplugins/media/audio/src/cpixmediaaudiodoc.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/media/audio/src/cpixmediaaudiodoc.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -24,6 +24,7 @@
 #include <mdeobjectdef.h>
 #include "harvesterserverlogger.h"
 #include "OstTraceDefinitions.h"
+#include "csearchdocument.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "cpixmediaaudiodocTraces.h"
 #endif
@@ -92,8 +93,23 @@
     CPIXLOGSTRING("START CCPIXMediaAudioDoc::GetCpixDocumentL");
     //Get basic document
     CSearchDocument* index_item = CCPIXDocFetcher::GetCpixDocumentL(aObject,aAppClass,aObjectDef);
-    //URI and Excerpt is done add additional properties here 
+    //Reset Excerpt and append
+    ResetExcerpt();
+    TInt slashpos = GetUri().LocateReverse('\\');
+    TPtrC name = GetUri().Mid( (slashpos+1) );
+    AddToFieldExcerptL(name); //Add name to excerpt field
+    //additional properties here 
     CMdEProperty* property(NULL);
+    CMdEPropertyDef& artistPropDef1 = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KArtistProperty );
+        if(aObject.Property( artistPropDef1, property ) != KErrNotFound)
+           {
+           //Add field to document
+           CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
+           AddFiledtoDocumentL(*index_item,
+                                 MdeConstants::MediaObject::KArtistProperty,
+                                 textProperty->Value());
+           AddToFieldExcerptL(textProperty->Value());//Add artist to excerpt
+           }
     CMdEPropertyDef& albumPropDef = aObjectDef.GetPropertyDefL(MdeConstants::Audio::KAlbumProperty );
     if(aObject.Property( albumPropDef, property )!= KErrNotFound)
        {
@@ -102,6 +118,7 @@
        AddFiledtoDocumentL(*index_item,
                            MdeConstants::Audio::KAlbumProperty,
                            textProperty->Value());
+       AddToFieldExcerptL(textProperty->Value());//Add Album to excerpt
        }
     CMdEPropertyDef& artistPropDef = aObjectDef.GetPropertyDefL(MdeConstants::Audio::KAlbumArtistProperty );
     if(aObject.Property( artistPropDef, property ) != KErrNotFound)
@@ -111,6 +128,7 @@
       AddFiledtoDocumentL(*index_item,
                          MdeConstants::Audio::KAlbumArtistProperty,
                          textProperty->Value());
+      AddToFieldExcerptL(textProperty->Value());//Add Albumartist to excerpt
       }
     CMdEPropertyDef& origartistPropDef = aObjectDef.GetPropertyDefL(MdeConstants::Audio::KOriginalArtistProperty );
     if(aObject.Property( origartistPropDef, property ) != KErrNotFound)
@@ -120,6 +138,7 @@
      AddFiledtoDocumentL(*index_item,
                       MdeConstants::Audio::KOriginalArtistProperty,
                       textProperty->Value());
+     AddToFieldExcerptL(textProperty->Value());//Add Original to excerpt
      }   
     CMdEPropertyDef& composerPropDef = aObjectDef.GetPropertyDefL(MdeConstants::Audio::KComposerProperty );
     if(aObject.Property( composerPropDef, property ) != KErrNotFound)
@@ -129,16 +148,9 @@
     AddFiledtoDocumentL(*index_item,
                   MdeConstants::Audio::KComposerProperty,
                   textProperty->Value());
+    AddToFieldExcerptL(textProperty->Value());//Add composer to excerpt
     }
-    CMdEPropertyDef& artistPropDef1 = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KArtistProperty );
-    if(aObject.Property( artistPropDef1, property ) != KErrNotFound)
-       {
-       //Add field to document
-       CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
-       AddFiledtoDocumentL(*index_item,
-                             MdeConstants::MediaObject::KArtistProperty,
-                             textProperty->Value());
-       }   
+    index_item->AddExcerptL(*iExcerpt);   
     CPIXLOGSTRING("END CCPIXMediaAudioDoc::GetCpixDocumentL");
     OstTraceFunctionExit0( CCPIXMEDIAAUDIODOC_GETCPIXDOCUMENTL_EXIT );
     return index_item;
--- a/harvesterplugins/media/audio/traces/OstTraceDefinitions.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/media/audio/traces/OstTraceDefinitions.h	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #ifndef __OSTTRACEDEFINITIONS_H__
 #define __OSTTRACEDEFINITIONS_H__
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
--- a/harvesterplugins/media/image/src/cpixmediaimagedoc.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/media/image/src/cpixmediaimagedoc.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -24,12 +24,13 @@
 #include <mdeobjectdef.h>
 #include "harvesterserverlogger.h"
 #include "OstTraceDefinitions.h"
+#include "csearchdocument.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "cpixmediaimagedocTraces.h"
 #endif
 
 
-_LIT( KFormatDateTime, "%04d-%02d-%02dT%02d:%02d:%02dZ");    // yyyy-mm-ddThh:mm:ssZ
+_LIT( KFormatDateTime, "%04d %02d %02dT%02d:%02d:%02dZ");    // yyyy-mm-ddThh:mm:ssZ
 
 // -----------------------------------------------------------------------------
 // CCPIXDocFetcher::NewL()
@@ -94,8 +95,21 @@
     //Get basic document
     CPIXLOGSTRING("START CCPIXMediaImageDoc::GetCpixDocumentL");
     CSearchDocument* index_item = CCPIXDocFetcher::GetCpixDocumentL(aObject,aAppClass,aObjectDef);
+    ResetExcerpt(); //Reset excerpt initially
     //URI and Excerpt is done add additional properties here 
     CMdEProperty* property(NULL);
+    //Title property
+    CMdEPropertyDef& titlePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Object::KTitleProperty );
+    if(aObject.Property( titlePropDef, property ) != KErrNotFound)
+       {
+       //Add field to document
+       CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
+       AddFiledtoDocumentL(*index_item,
+                           MdeConstants::Object::KTitleProperty,
+                           textProperty->Value());
+       AddToFieldExcerptL(textProperty->Value());
+       }
+            
     //Get user comment field
     CMdEPropertyDef& commentPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KCommentProperty );
     if(aObject.Property( commentPropDef, property )!= KErrNotFound)
@@ -105,6 +119,7 @@
        AddFiledtoDocumentL(*index_item,
                            MdeConstants::MediaObject::KCommentProperty,
                            textProperty->Value());
+       AddToFieldExcerptL(textProperty->Value());
        }
     CMdEPropertyDef& dateTimePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Image::KDateTimeOriginalProperty);
     if(aObject.Property( dateTimePropDef, property ) != KErrNotFound)
@@ -127,6 +142,7 @@
                              CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized);
           }
       }
+    index_item->AddExcerptL(*iExcerpt);
     //Latitude error currently 
     /* TODO- Bhuvi Location is a seperate object for each image object if any such relation
      * exist it has to be searched from Relation table and from there we have to open 
--- a/harvesterplugins/media/image/traces/OstTraceDefinitions.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/media/image/traces/OstTraceDefinitions.h	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #ifndef __OSTTRACEDEFINITIONS_H__
 #define __OSTTRACEDEFINITIONS_H__
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
--- a/harvesterplugins/media/mediautils/inc/cpixdocfetcher.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/media/mediautils/inc/cpixdocfetcher.h	Wed Jun 23 17:22:18 2010 +0100
@@ -94,6 +94,12 @@
      * @param aExtension reference of descriptor buffer to be filled with file extension
      */
     void GetExtension(const TDesC& aUri, TDes& aExtension);
+    
+    /*
+     * Add the value to excerpt field
+     * @param TDesC& aExcerptValue excerpt value
+     */
+    void AddToFieldExcerptL(const TDesC& aExcerptValue);
 protected:
     /*
      * second phase constructor ConstructL
@@ -103,6 +109,13 @@
      * Default constructor
      */
     CCPIXDocFetcher(); //Default constructor
+    /*
+     * reset the excerpt
+     */
+    void ResetExcerpt();
+    
+    // Excerpt field
+    HBufC* iExcerpt;
 private:
     /*
      * Convert URI to Absolute URI
--- a/harvesterplugins/media/mediautils/src/cpixdocfetcher.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/media/mediautils/src/cpixdocfetcher.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -27,6 +27,7 @@
 
 #define CPIX_MIMETYPE_FIELD      L"_mimetype"
 #define LCPIX_MIMETYPE_FIELD     L"_mimetype"
+const TInt KInitialExcerptLength = 5;
 const TInt KStartPosition = 2; //Start position of absolute path
 const TInt KDrivePosition = 0; //Drive position in object Uri
 const TInt KMaxMediaLength = 14;
@@ -36,6 +37,7 @@
 _LIT(KNameField, "Name");
 _LIT(KMediaIdField, "MediaId");
 _LIT(KExtensionField, "Extension");
+_LIT(KExcerptDelimiter, " ");
 
 // -----------------------------------------------------------------------------
 // CCPIXDocFetcher::NewL()
@@ -67,6 +69,7 @@
 CCPIXDocFetcher::~CCPIXDocFetcher()
     {
     iFs.Close();
+    delete iExcerpt;
     }
 
 // -----------------------------------------------------------------------------
@@ -77,6 +80,7 @@
     {
     //Heap variables if any
     User::LeaveIfError(iFs.Connect());
+    iExcerpt = NULL;
     }
 
 // -----------------------------------------------------------------------------
@@ -89,6 +93,19 @@
     }
 
 // -----------------------------------------------------------------------------
+// CCPIXDocFetcher::ResetExcerpt() 
+// -----------------------------------------------------------------------------
+//
+void CCPIXDocFetcher::ResetExcerpt()
+    {
+    if(iExcerpt)
+        {
+        delete iExcerpt;
+        iExcerpt = NULL;
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CCPIXDocFetcher::GetCpixDocumentL() 
 // -----------------------------------------------------------------------------
 //
@@ -130,6 +147,9 @@
         
         CMdEProperty* property(NULL);
         CMdEPropertyDef& titlePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Object::KTitleProperty );
+        /*Requirement Excerpt should have all item specific field in priority order so has to be handled
+         *at plugin specific document handler
+         */
         if(aObject.Property( titlePropDef, property ) != KErrNotFound)
            {
            //Add field to document
@@ -139,17 +159,7 @@
                AddFiledtoDocumentL(*index_item,
                                      MdeConstants::Object::KTitleProperty,
                                      textProperty->Value());
-               index_item->AddExcerptL(textProperty->Value());
                }
-           else
-               {
-               index_item->AddExcerptL(aObject.Uri());
-               }
-           }
-        else
-           {
-           //No property title
-           index_item->AddExcerptL(aObject.Uri());
            }
         //Item type as MIME type
         CMdEPropertyDef& mimeTypePropDef = aObjectDef.GetPropertyDefL(MdeConstants::Object::KItemTypeProperty);
@@ -214,6 +224,30 @@
     }
 
 // -----------------------------------------------------------------------------
+// CCPIXDocFetcher::AddToFieldExcerptL() 
+// -----------------------------------------------------------------------------
+//
+void CCPIXDocFetcher::AddToFieldExcerptL(const TDesC& aExcerptValue)
+    {
+    if(!iExcerpt)
+        {
+        iExcerpt = HBufC::NewL(KInitialExcerptLength);
+        }
+    if(aExcerptValue.Compare(KNullDesC) != 0)//value is not Null
+        {
+        TInt currentSize = iExcerpt->Size();
+        TInt newSize = currentSize + aExcerptValue.Size() + 1;
+        if(newSize > currentSize) //New size is bigger so we have to reallocate
+            {
+            iExcerpt = iExcerpt->ReAllocL(newSize);
+            }
+        TPtr ptr = iExcerpt->Des();
+        ptr.Append(aExcerptValue);
+        ptr.Append(KExcerptDelimiter);
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CCPIXDocFetcher::SetAbsoluteURI() 
 // -----------------------------------------------------------------------------
 //
--- a/harvesterplugins/media/video/src/cpixmediavideodoc.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/media/video/src/cpixmediavideodoc.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -24,6 +24,7 @@
 #include <mdeobjectdef.h>
 #include "harvesterserverlogger.h"
 #include "OstTraceDefinitions.h"
+#include "csearchdocument.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "cpixmediavideodocTraces.h"
 #endif
@@ -92,8 +93,22 @@
     //Get basic document
     CPIXLOGSTRING("CCPIXMediaVideoDoc::GetCpixDocumentL()");
     CSearchDocument* index_item = CCPIXDocFetcher::GetCpixDocumentL(aObject,aAppClass,aObjectDef);
+    ResetExcerpt(); //Reset excerpt initially
+    TInt slashpos = GetUri().LocateReverse('\\');
+    TPtrC name = GetUri().Mid( (slashpos+1) );
+    AddToFieldExcerptL(name); //Add name to excerpt field
     //URI and Excerpt is done add additional properties here 
     CMdEProperty* property(NULL);
+    CMdEPropertyDef& descriptionPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KDescriptionProperty );
+    if(aObject.Property( descriptionPropDef, property ) != KErrNotFound)
+       {
+       //Add field to document
+       CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
+       AddFiledtoDocumentL(*index_item,
+                  MdeConstants::MediaObject::KDescriptionProperty,
+                  textProperty->Value());
+       AddToFieldExcerptL(textProperty->Value());
+       }
     CMdEPropertyDef& artistPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KArtistProperty );
     if(aObject.Property( artistPropDef, property )!= KErrNotFound)
        {
@@ -102,43 +117,40 @@
        AddFiledtoDocumentL(*index_item,
                            MdeConstants::MediaObject::KArtistProperty,
                            textProperty->Value());
+       AddToFieldExcerptL(textProperty->Value());
        }
     CMdEPropertyDef& authorPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KAuthorProperty );
     if(aObject.Property( authorPropDef, property ) != KErrNotFound)
        {
-      //Add field to document
-      CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
-      AddFiledtoDocumentL(*index_item,
+       //Add field to document
+       CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
+       AddFiledtoDocumentL(*index_item,
                          MdeConstants::MediaObject::KAuthorProperty,
                          textProperty->Value());
+       AddToFieldExcerptL(textProperty->Value());
        }
     CMdEPropertyDef& copyrightPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KCopyrightProperty );
     if(aObject.Property( copyrightPropDef, property ) != KErrNotFound)
        {
-     //Add field to document
-     CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
-     AddFiledtoDocumentL(*index_item,
+       //Add field to document
+       CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
+       AddFiledtoDocumentL(*index_item,
                       MdeConstants::MediaObject::KCopyrightProperty,
                       textProperty->Value());
+       AddToFieldExcerptL(textProperty->Value());
        }   
-    CMdEPropertyDef& descriptionPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KDescriptionProperty );
-    if(aObject.Property( descriptionPropDef, property ) != KErrNotFound)
-       {
-    //Add field to document
-    CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
-    AddFiledtoDocumentL(*index_item,
-                  MdeConstants::MediaObject::KDescriptionProperty,
-                  textProperty->Value());
-       }
+    
     CMdEPropertyDef& commentPropDef = aObjectDef.GetPropertyDefL(MdeConstants::MediaObject::KCommentProperty );
     if(aObject.Property( commentPropDef, property ) != KErrNotFound)
        {
-    //Add field to document
-    CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
-    AddFiledtoDocumentL(*index_item,
+       //Add field to document
+       CMdETextProperty* textProperty = ( CMdETextProperty* ) property;
+       AddFiledtoDocumentL(*index_item,
                    MdeConstants::MediaObject::KCommentProperty,
                    textProperty->Value());
+       AddToFieldExcerptL(textProperty->Value());
        }
+    index_item->AddExcerptL(*iExcerpt);
     OstTraceFunctionExit0( CCPIXMEDIAVIDEODOC_GETCPIXDOCUMENTL_EXIT );
     return index_item;
     }
--- a/harvesterplugins/media/video/traces/OstTraceDefinitions.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/media/video/traces/OstTraceDefinitions.h	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #ifndef __OSTTRACEDEFINITIONS_H__
 #define __OSTTRACEDEFINITIONS_H__
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
--- a/harvesterplugins/messaging/email/qtemailfetcher/bwins/qtemailfetcheru.def	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/messaging/email/qtemailfetcher/bwins/qtemailfetcheru.def	Wed Jun 23 17:22:18 2010 +0100
@@ -1,25 +1,27 @@
 EXPORTS
-	?processMessages@QEmailFetcher@@QAEXH@Z @ 1 NONAME ; void QEmailFetcher::processMessages(int)
-	?tr@QEmailFetcher@@SA?AVQString@@PBD0@Z @ 2 NONAME ; class QString QEmailFetcher::tr(char const *, char const *)
-	?StartHarvesting@QEmailFetcher@@QAEXXZ @ 3 NONAME ; void QEmailFetcher::StartHarvesting(void)
-	?getStaticMetaObject@QEmailFetcher@@SAABUQMetaObject@@XZ @ 4 NONAME ; struct QMetaObject const & QEmailFetcher::getStaticMetaObject(void)
-	??1QEmailFetcher@@UAE@XZ @ 5 NONAME ; QEmailFetcher::~QEmailFetcher(void)
-	?processNextMailbox@QEmailFetcher@@AAEXXZ @ 6 NONAME ; void QEmailFetcher::processNextMailbox(void)
-	?trUtf8@QEmailFetcher@@SA?AVQString@@PBD0H@Z @ 7 NONAME ; class QString QEmailFetcher::trUtf8(char const *, char const *, int)
-	??_EQEmailFetcher@@UAE@I@Z @ 8 NONAME ; QEmailFetcher::~QEmailFetcher(unsigned int)
-	?NotifyHarvestingComplete@QEmailFetcher@@AAEXXZ @ 9 NONAME ; void QEmailFetcher::NotifyHarvestingComplete(void)
-	?handleMessageEvent@QEmailFetcher@@QAEXW4MessageEvent@@_K1V?$QList@_K@@@Z @ 10 NONAME ; void QEmailFetcher::handleMessageEvent(enum MessageEvent, unsigned long long, unsigned long long, class QList<unsigned long long>)
-	?initialize@QEmailFetcher@@CAXPAV1@@Z @ 11 NONAME ; void QEmailFetcher::initialize(class QEmailFetcher *)
-	?trUtf8@QEmailFetcher@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString QEmailFetcher::trUtf8(char const *, char const *)
-	?qt_metacall@QEmailFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 13 NONAME ; int QEmailFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?tr@QEmailFetcher@@SA?AVQString@@PBD0H@Z @ 14 NONAME ; class QString QEmailFetcher::tr(char const *, char const *, int)
-	?staticMetaObject@QEmailFetcher@@2UQMetaObject@@B @ 15 NONAME ; struct QMetaObject const QEmailFetcher::staticMetaObject
-	?handleMailboxesListed@QEmailFetcher@@QAEXH@Z @ 16 NONAME ; void QEmailFetcher::handleMailboxesListed(int)
-	?emailServiceIntialized@QEmailFetcher@@QAEX_N@Z @ 17 NONAME ; void QEmailFetcher::emailServiceIntialized(bool)
-	?processNextFolder@QEmailFetcher@@AAEXXZ @ 18 NONAME ; void QEmailFetcher::processNextFolder(void)
-	?qt_metacast@QEmailFetcher@@UAEPAXPBD@Z @ 19 NONAME ; void * QEmailFetcher::qt_metacast(char const *)
-	?newInstance@QEmailFetcher@@SAPAV1@AAVMEmailItemObserver@@@Z @ 20 NONAME ; class QEmailFetcher * QEmailFetcher::newInstance(class MEmailItemObserver &)
-	?handleMailFoldersListed@QEmailFetcher@@QAEXH@Z @ 21 NONAME ; void QEmailFetcher::handleMailFoldersListed(int)
-	??0QEmailFetcher@@AAE@AAVMEmailItemObserver@@@Z @ 22 NONAME ; QEmailFetcher::QEmailFetcher(class MEmailItemObserver &)
-	?metaObject@QEmailFetcher@@UBEPBUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const * QEmailFetcher::metaObject(void) const
+	?handlemailboxEvent@QEmailFetcher@@QAEXW4NmApiMailboxEvent@EmailClientApi@@V?$QList@_K@@@Z @ 1 NONAME ; void QEmailFetcher::handlemailboxEvent(enum EmailClientApi::NmApiMailboxEvent, class QList<unsigned long long>)
+	?processMessages@QEmailFetcher@@QAEXH@Z @ 2 NONAME ; void QEmailFetcher::processMessages(int)
+	?tr@QEmailFetcher@@SA?AVQString@@PBD0@Z @ 3 NONAME ; class QString QEmailFetcher::tr(char const *, char const *)
+	?StartHarvesting@QEmailFetcher@@QAEXXZ @ 4 NONAME ; void QEmailFetcher::StartHarvesting(void)
+	?getStaticMetaObject@QEmailFetcher@@SAABUQMetaObject@@XZ @ 5 NONAME ; struct QMetaObject const & QEmailFetcher::getStaticMetaObject(void)
+	??1QEmailFetcher@@UAE@XZ @ 6 NONAME ; QEmailFetcher::~QEmailFetcher(void)
+	?processNextMailbox@QEmailFetcher@@AAEXXZ @ 7 NONAME ; void QEmailFetcher::processNextMailbox(void)
+	?trUtf8@QEmailFetcher@@SA?AVQString@@PBD0H@Z @ 8 NONAME ; class QString QEmailFetcher::trUtf8(char const *, char const *, int)
+	??_EQEmailFetcher@@UAE@I@Z @ 9 NONAME ; QEmailFetcher::~QEmailFetcher(unsigned int)
+	?NotifyHarvestingComplete@QEmailFetcher@@AAEXXZ @ 10 NONAME ; void QEmailFetcher::NotifyHarvestingComplete(void)
+	?handleMessageEvent@QEmailFetcher@@QAEXW4NmApiMessageEvent@EmailClientApi@@_K1V?$QList@_K@@@Z @ 11 NONAME ; void QEmailFetcher::handleMessageEvent(enum EmailClientApi::NmApiMessageEvent, unsigned long long, unsigned long long, class QList<unsigned long long>)
+	?initialize@QEmailFetcher@@CAXPAV1@@Z @ 12 NONAME ; void QEmailFetcher::initialize(class QEmailFetcher *)
+	?trUtf8@QEmailFetcher@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString QEmailFetcher::trUtf8(char const *, char const *)
+	?qt_metacall@QEmailFetcher@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 14 NONAME ; int QEmailFetcher::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?tr@QEmailFetcher@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString QEmailFetcher::tr(char const *, char const *, int)
+	?staticMetaObject@QEmailFetcher@@2UQMetaObject@@B @ 16 NONAME ; struct QMetaObject const QEmailFetcher::staticMetaObject
+	?getSearchDocument@QEmailFetcher@@AAEPAVCSearchDocument@@ABVNmApiMessageEnvelope@EmailClientApi@@_K1@Z @ 17 NONAME ; class CSearchDocument * QEmailFetcher::getSearchDocument(class EmailClientApi::NmApiMessageEnvelope const &, unsigned long long, unsigned long long)
+	?handleMailboxesListed@QEmailFetcher@@QAEXH@Z @ 18 NONAME ; void QEmailFetcher::handleMailboxesListed(int)
+	?processNextFolder@QEmailFetcher@@AAEXXZ @ 19 NONAME ; void QEmailFetcher::processNextFolder(void)
+	?emailServiceIntialized@QEmailFetcher@@QAEX_N@Z @ 20 NONAME ; void QEmailFetcher::emailServiceIntialized(bool)
+	?qt_metacast@QEmailFetcher@@UAEPAXPBD@Z @ 21 NONAME ; void * QEmailFetcher::qt_metacast(char const *)
+	?newInstance@QEmailFetcher@@SAPAV1@AAVMEmailItemObserver@@@Z @ 22 NONAME ; class QEmailFetcher * QEmailFetcher::newInstance(class MEmailItemObserver &)
+	?handleMailFoldersListed@QEmailFetcher@@QAEXH@Z @ 23 NONAME ; void QEmailFetcher::handleMailFoldersListed(int)
+	??0QEmailFetcher@@AAE@AAVMEmailItemObserver@@@Z @ 24 NONAME ; QEmailFetcher::QEmailFetcher(class MEmailItemObserver &)
+	?metaObject@QEmailFetcher@@UBEPBUQMetaObject@@XZ @ 25 NONAME ; struct QMetaObject const * QEmailFetcher::metaObject(void) const
 
--- a/harvesterplugins/messaging/email/qtemailfetcher/eabi/qtemailfetcheru.def	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/messaging/email/qtemailfetcher/eabi/qtemailfetcheru.def	Wed Jun 23 17:22:18 2010 +0100
@@ -6,20 +6,22 @@
 	_ZN13QEmailFetcher15StartHarvestingEv @ 5 NONAME
 	_ZN13QEmailFetcher15processMessagesEi @ 6 NONAME
 	_ZN13QEmailFetcher16staticMetaObjectE @ 7 NONAME DATA 16
-	_ZN13QEmailFetcher17processNextFolderEv @ 8 NONAME
-	_ZN13QEmailFetcher18handleMessageEventE12MessageEventyy5QListIyE @ 9 NONAME
-	_ZN13QEmailFetcher18processNextMailboxEv @ 10 NONAME
-	_ZN13QEmailFetcher19getStaticMetaObjectEv @ 11 NONAME
-	_ZN13QEmailFetcher21handleMailboxesListedEi @ 12 NONAME
-	_ZN13QEmailFetcher22emailServiceIntializedEb @ 13 NONAME
-	_ZN13QEmailFetcher23handleMailFoldersListedEi @ 14 NONAME
-	_ZN13QEmailFetcher24NotifyHarvestingCompleteEv @ 15 NONAME
-	_ZN13QEmailFetcherC1ER18MEmailItemObserver @ 16 NONAME
-	_ZN13QEmailFetcherC2ER18MEmailItemObserver @ 17 NONAME
-	_ZN13QEmailFetcherD0Ev @ 18 NONAME
-	_ZN13QEmailFetcherD1Ev @ 19 NONAME
-	_ZN13QEmailFetcherD2Ev @ 20 NONAME
-	_ZNK13QEmailFetcher10metaObjectEv @ 21 NONAME
-	_ZTI13QEmailFetcher @ 22 NONAME
-	_ZTV13QEmailFetcher @ 23 NONAME
+	_ZN13QEmailFetcher17getSearchDocumentERKN14EmailClientApi20NmApiMessageEnvelopeEyy @ 8 NONAME
+	_ZN13QEmailFetcher17processNextFolderEv @ 9 NONAME
+	_ZN13QEmailFetcher18handleMessageEventEN14EmailClientApi17NmApiMessageEventEyy5QListIyE @ 10 NONAME
+	_ZN13QEmailFetcher18handlemailboxEventEN14EmailClientApi17NmApiMailboxEventE5QListIyE @ 11 NONAME
+	_ZN13QEmailFetcher18processNextMailboxEv @ 12 NONAME
+	_ZN13QEmailFetcher19getStaticMetaObjectEv @ 13 NONAME
+	_ZN13QEmailFetcher21handleMailboxesListedEi @ 14 NONAME
+	_ZN13QEmailFetcher22emailServiceIntializedEb @ 15 NONAME
+	_ZN13QEmailFetcher23handleMailFoldersListedEi @ 16 NONAME
+	_ZN13QEmailFetcher24NotifyHarvestingCompleteEv @ 17 NONAME
+	_ZN13QEmailFetcherC1ER18MEmailItemObserver @ 18 NONAME
+	_ZN13QEmailFetcherC2ER18MEmailItemObserver @ 19 NONAME
+	_ZN13QEmailFetcherD0Ev @ 20 NONAME
+	_ZN13QEmailFetcherD1Ev @ 21 NONAME
+	_ZN13QEmailFetcherD2Ev @ 22 NONAME
+	_ZNK13QEmailFetcher10metaObjectEv @ 23 NONAME
+	_ZTI13QEmailFetcher @ 24 NONAME
+	_ZTV13QEmailFetcher @ 25 NONAME
 
--- a/harvesterplugins/messaging/email/qtemailfetcher/qtemailfetcher.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/messaging/email/qtemailfetcher/qtemailfetcher.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -18,6 +18,11 @@
 #include "qtemailfetcher.h"
 #include <csearchdocument.h>
 #include <cpixmaindefs.h>
+#include <nmapiemailaddress.h>
+#include <nmapimessagebody.h>
+#include <nmapimailbox.h>
+#include <QTimer>
+#include <QDebug>
 //#include <QThread> //If we happen to use QThread::yieldCurrentThread()
 
 //Symbian specific details; picked up from cemailplugin.cpp. 
@@ -27,9 +32,15 @@
 _LIT(KMsgSubject, "Subject");
 _LIT(KMsgRecipients, "Recipients");
 _LIT(KMsgBody, "Body");
+_LIT(KMailBoxId, "MailBoxId");
+_LIT(KFolderId, "FolderId");
+_LIT(KMailBoxName, "MailBoxName");
+_LIT(KFolderName, "FolderName");
 _LIT(KMimeTypeField, CPIX_MIMETYPE_FIELD);
 _LIT(KMimeTypeMsg, "Messages");
 
+
+
 //------------------------------------------------------------------------------
 QEmailFetcher::QEmailFetcher( MEmailItemObserver& aObserver )
     :iEmailObserver( aObserver ), 
@@ -41,11 +52,13 @@
      iCurrentMailboxIndex( 0 ), 
      iCurrentFolderIndex( 0 )
     {
+    qDebug() << "QEmailFetcher::QEmailFetcher";
     }
 
 //------------------------------------------------------------------------------
 QEmailFetcher::~QEmailFetcher()
     {
+    iEmailEventNotifier->cancel();
     delete iEmailEventNotifier;
     delete iEmailService;
     delete iMailBoxListings;
@@ -55,14 +68,16 @@
 //------------------------------------------------------------------------------
 QEmailFetcher* QEmailFetcher::newInstance( MEmailItemObserver& aObserver ){
     QEmailFetcher* emailFetcher = NULL;
-    
+    qDebug() << "QEmailFetcher::newInstance :START";
     //Leak free init.
     try{
-        QEmailFetcher* emailFetcher = new QEmailFetcher( aObserver );
-        emailFetcher->iEmailService = new NmEmailService( emailFetcher );
-        emailFetcher->iEmailEventNotifier =  new NmEventNotifier( emailFetcher );
-        emailFetcher->iMailBoxListings = new NmMailboxListing( emailFetcher );
+        emailFetcher = new QEmailFetcher( aObserver );
+        emailFetcher->iEmailService = new NmApiEmailService( emailFetcher );
+        emailFetcher->iEmailEventNotifier =  new NmApiEventNotifier( emailFetcher );
+        emailFetcher->iMailBoxListings = new NmApiMailboxListing( emailFetcher );
+        initialize( emailFetcher ); //Do the rest of the init.
     }catch(...){ //cleanup.
+    qDebug() << "QEmailFetcher::newInstance ( Catch Block)";
         delete emailFetcher; 
         delete emailFetcher->iEmailService;
         delete emailFetcher->iEmailEventNotifier;
@@ -71,33 +86,47 @@
         emailFetcher->iEmailEventNotifier = NULL;
         emailFetcher->iMailBoxListings = NULL;
         throw; //rethrow the exception to caller.
-    }
-    initialize( emailFetcher ); //Do the rest of the init.
+    }    
+    qDebug() << "QEmailFetcher::newInstance :END";
     return emailFetcher; //returns only if not null.
 }
 
 //------------------------------------------------------------------------------
 void QEmailFetcher::initialize( QEmailFetcher* aThis ){
     //The use of 'aThis' is because the current function is static.
+    qDebug() << "QEmailFetcher::initialize :START";
     connect( aThis->iEmailService, SIGNAL(initialized(bool)), 
              aThis, SLOT(emailServiceIntialized(bool)) );
     aThis->iEmailService->initialise();
+    //Monitor for Message changes
     aThis->connect( aThis->iEmailEventNotifier, 
                     SIGNAL(messageEvent(MessageEvent, quint64, quint64, QList<quint64>)),
                     aThis, 
                     SLOT(handleMessageEvent(MessageEvent, quint64, quint64, QList<quint64>)) );
+    //Monitor for Mailbox changes
+    aThis->connect( aThis->iEmailEventNotifier, 
+                    SIGNAL(mailboxEvent(MailboxEvent, QList<quint64>)),
+                    aThis, 
+                    SLOT(handlemailboxEvent(MailboxEvent, QList<quint64>)));
+    //Start the monitoring
+    aThis->iEmailEventNotifier->start();
+    qDebug() << "QEmailFetcher::initialize :END";
 }
 
 //------------------------------------------------------------------------------
 void QEmailFetcher::emailServiceIntialized(bool aAllOk){
+    qDebug() << "QEmailFetcher::emailServiceIntialized :START  aAllOk = " << aAllOk;
     if( aAllOk ){
-        connect( iMailBoxListings, SIGNAL(mailboxesListed(int)), this, SLOT(handleMailboxesListed(int)) );
+        connect( iMailBoxListings, SIGNAL(mailboxesListed(qint32)), this, SLOT(handleMailboxesListed(qint32)) );
     }
+    qDebug() << "QEmailFetcher::emailServiceIntialized :END";
 }
 
 //------------------------------------------------------------------------------
 void QEmailFetcher::StartHarvesting(){
-    iMailBoxListings->start();
+    qDebug() << "QEmailFetcher::StartHarvesting :START";
+    bool ret = iMailBoxListings->start();
+    qDebug() << "QEmailFetcher::StartHarvesting :END return = " << ret;
 }
 
 //------------------------------------------------------------------------------
@@ -130,22 +159,35 @@
 //    return buffer;
 //}
 
+CSearchDocument* getPartialSearchDocument( const NmApiMessageEnvelope& aEnvelope ) {
+    qDebug() << "getPartialSearchDocument :START";
+    CSearchDocument* doc = 0;
+    QT_TRAP_THROWING(
+        //Use qt_Qstring2TPtrC since we are working with <b>const</b> EmailMessageEnvelope.
+        doc = CSearchDocument::NewL( qt_QString2TPtrC( QString().setNum( aEnvelope.id() ) ), 
+                                     KMsgBaseAppClassGeneric );        
+        );
+    qDebug() << "getPartialSearchDocument :END";
+    return doc;
+    }
+} //anonymous namespace
 //------------------------------------------------------------------------------
-//Private free function creates CSearchDocument from EMailMessageEnvelope.
-CSearchDocument* getSearchDocument( const NmMessageEnvelope& aEnvelope ){
-    QList<NmEmailAddress> toList;
+
+CSearchDocument* QEmailFetcher::getSearchDocument( const NmApiMessageEnvelope& aEnvelope ,quint64 aMailboxId, quint64 aFolderId ){
+    QList<NmApiEmailAddress> toList;
+    qDebug() << "QEmailFetcher::getSearchDocument :START";
     //Need to cast away const-ness since the get method is unfortunately not const.
-    const_cast<NmMessageEnvelope&>(aEnvelope).getToRecipients( toList );
+    const_cast<NmApiMessageEnvelope&>(aEnvelope).getToRecipients( toList );
 
     //We need ALL the recipients in a SINGLE field.
     QString recipients = "";
     for( int i=0; i<toList.length(); i++ )
         recipients += toList.at( i ).displayName() + " "; //or should we get address?
 
-    NmMessageBody body;
+    NmApiMessageBody body;
     //Cast away const-ness since the get method is unfortunately not const.
     //Returns void. Cannot check for success/failure.
-    const_cast<NmMessageEnvelope&>(aEnvelope).getPlainTextBody( body ); 
+    const_cast<NmApiMessageEnvelope&>(aEnvelope).getPlainTextBody( body ); 
     QString msgBody = body.content();
 
     CSearchDocument* doc = 0;
@@ -157,32 +199,50 @@
     doc->AddFieldL( KMsgSubject, qt_QString2TPtrC( aEnvelope.subject() ), CDocumentField::EStoreYes | CDocumentField::EIndexTokenized );
     doc->AddFieldL( KMsgRecipients, qt_QString2TPtrC( recipients ), CDocumentField::EStoreYes | CDocumentField::EIndexTokenized );
     doc->AddFieldL( KMsgBody, qt_QString2TPtrC( msgBody ), CDocumentField::EStoreYes | CDocumentField::EIndexTokenized );
-    //TODO: What should go in here?
-    doc->AddExcerptL( KNullDesC );
+    doc->AddFieldL( KMailBoxId, qt_QString2TPtrC( QString().setNum( aMailboxId ) ), CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized );
+    doc->AddFieldL( KFolderId, qt_QString2TPtrC( QString().setNum( aFolderId ) ), CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized );
+    
+//    NmApiMailbox aMailBox;
+//    iEmailService->getMailbox( aMailboxId, aMailBox );
+//    doc->AddFieldL( KMailBoxName, qt_QString2TPtrC(aMailBox.name()) , CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized );
+    //TODO : Add folder name field
+    //_LIT(KFolderName, "FolderName");
+    //Adding subject and body to the excerpt. 
+    QString excerpt ;
+    excerpt = aEnvelope.subject();
+    excerpt += msgBody ;
+    doc->AddExcerptL( qt_QString2TPtrC(excerpt) );
     );
+    qDebug() << "QEmailFetcher::getSearchDocument :END";
     return doc;
 }
-} //anonymous namespace
+
 
 //------------------------------------------------------------------------------
 //Just to avoid duplication of the following two lines.
 void QEmailFetcher::NotifyHarvestingComplete(){
+    qDebug() << "QEmailFetcher::NotifyHarvestingComplete :START";
     iCurrentMailboxIndex = iCurrentFolderIndex = 0;
     QT_TRAP_THROWING( iEmailObserver.HarvestingCompleted() );
+    qDebug() << "QEmailFetcher::NotifyHarvestingComplete :END";
     return;
 }
 
 //------------------------------------------------------------------------------
-void QEmailFetcher::handleMailboxesListed(int aCount){
+void QEmailFetcher::handleMailboxesListed(qint32 aCount){
+    qDebug() << "QEmailFetcher::handleMailboxesListed :START";
     iCurrentMailboxIndex = 0;
-    if( aCount == NmMailboxListing::MailboxListingFailed ) {
+    if( aCount == NmApiMailboxListing::MailboxListingFailed ) {
         NotifyHarvestingComplete();
+        qDebug() << "QEmailFetcher::handleMailboxesListed :MailboxListingFailed";
         return;
     }
     if( aCount>0 && iMailBoxListings->getMailboxes( iMailBoxes ) ){
         //Already set to NULL in constructor, so safe to call delete first time.
+        qDebug() << "QEmailFetcher::handleMailboxesListed :processNextMailbox";
         processNextMailbox();
     }else{
+        qDebug() << "QEmailFetcher::handleMailboxesListed :Harvesting Completed";
         NotifyHarvestingComplete();
         return;
     }
@@ -204,30 +264,37 @@
 //Recommendation: Use option 4.
 
 void QEmailFetcher::processNextMailbox(){
+    qDebug() << "QEmailFetcher::processNextMailbox :START";
     //No more mailboxes, notify completion.
     if( iCurrentMailboxIndex >= iMailBoxes.count() ) {
         NotifyHarvestingComplete();
+        qDebug() << "QEmailFetcher::processNextMailbox :END (harvesting completed)";
         return;
     }
     
     //More mailboxes available.
     delete iMailFolderList; iMailFolderList = NULL;
-    iMailFolderList = new NmFolderListing( this, iMailBoxes.at( iCurrentMailboxIndex++ ).id() );
-    connect( iMailFolderList, SIGNAL(foldersListed()), this, SLOT(handleMailFoldersListed()) );
+    iMailFolderList = new NmApiFolderListing( this, iMailBoxes.at( iCurrentMailboxIndex++ ).id() );
+    connect( iMailFolderList, SIGNAL(foldersListed( qint32 )), this, SLOT(handleMailFoldersListed( qint32)) );
     const int waitForSeconds = 30; //TODO Move this constant out of here if needed elsewhere
     QTimer::singleShot( waitForSeconds, iMailFolderList, SLOT( start()) );
+    qDebug() << "QEmailFetcher::processNextMailbox :END (goto next mailbox)";
 }
 
 //------------------------------------------------------------------------------
 void QEmailFetcher::handleMailFoldersListed(int aCount){
-    iCurrentFolderIndex = 0;
-    if( aCount == NmFolderListing::FolderListingFailed ){
+    qDebug() << "QEmailFetcher::handleMailFoldersListed :START";
+    iCurrentFolderIndex = 0;    
+    if( aCount == NmApiFolderListing::FolderListingFailed ){
+        qDebug() << "QEmailFetcher::handleMailFoldersListed :FolderListingFailed";
         processNextMailbox();
         return;//Don't proceed futher.
     }
     if( aCount && iMailFolderList->getFolders( iFolders ) ){ 
+       qDebug() << "QEmailFetcher::handleMailFoldersListed :processNextFolder";
         processNextFolder();
     }else{
+        qDebug() << "QEmailFetcher::handleMailFoldersListed :processNextMailbox";
         processNextMailbox();
         return;
     }
@@ -235,8 +302,10 @@
 
 //------------------------------------------------------------------------------
 void QEmailFetcher::processNextFolder(){
+    qDebug() << "QEmailFetcher::processNextFolder :START";
     //No more folders in current mailbox.
     if( iCurrentFolderIndex >= iFolders.count() ) {
+        qDebug() << "QEmailFetcher::processNextFolder :processNextMailbox";
         processNextMailbox();
         return;//Don't proceed futher.
     }
@@ -244,55 +313,106 @@
     //More folders to process.
     //Already set to NULL in constructor, so safe to call delete first time.
     delete iEnvelopeListing; iEnvelopeListing = NULL; 
-    iEnvelopeListing= new NmEnvelopeListing( 
+    iEnvelopeListing= new NmApiEnvelopeListing( 
             this, 
             iFolders.at( iCurrentFolderIndex++ ).id(),
             iMailBoxes.at( iCurrentMailboxIndex-1 ).id() ); //we have already incremented iMailboxIndex.
 
-    connect(iEnvelopeListing, SIGNAL(envelopesListed(int)),this,SLOT(processMessages(int)));
+    connect(iEnvelopeListing, SIGNAL(envelopesListed(qint32)),this,SLOT(processMessages(qint32)));
     iEnvelopeListing->start();
+    qDebug() << "QEmailFetcher::processNextFolder :processNextFolder";
 }
 
 //------------------------------------------------------------------------------
-void QEmailFetcher::processMessages(int aCount){
-    if( aCount == NmEnvelopeListing::EnvelopeListingFailed ) {
+void QEmailFetcher::processMessages(qint32 aCount){
+    qDebug() << "QEmailFetcher::processMessages :START";
+    if( aCount == NmApiEnvelopeListing::EnvelopeListingFailed ) {
+        qDebug() << "QEmailFetcher::processMessages :EnvelopeListingFailed";
         processNextFolder();
         return;//Don't proceed futher.
     }
-    QList<NmMessageEnvelope> envelopes;
+    QList<NmApiMessageEnvelope> envelopes;
     if ( aCount > 0 && iEnvelopeListing->getEnvelopes(envelopes) ) {
         for( int i=0; i<envelopes.count(); i++ ) {
-            const NmMessageEnvelope &envelope = envelopes.at( i );
+            const NmApiMessageEnvelope &envelope = envelopes.at( i );
             //Create document and call back observer.
-            QT_TRAP_THROWING( iEmailObserver.HandleDocumentL( getSearchDocument( envelope ), ECPixAddAction ) );
+            QT_TRAP_THROWING( iEmailObserver.HandleDocumentL( getSearchDocument( envelope, iFolders.at( iCurrentFolderIndex -1 ).id(), iMailBoxes.at( iCurrentMailboxIndex-1 ).id() ), 
+                                                              ECPixAddAction ) );
         }
     }
+    qDebug() << "QEmailFetcher::processMessages :END";
 }
 
 //------------------------------------------------------------------------------
-void QEmailFetcher::handleMessageEvent( const MessageEvent aEvent, quint64 aMailboxId, quint64 aFolderId, QList<quint64> aMessageList){
-    NmMessageEnvelope envelope;
+void QEmailFetcher::handleMessageEvent( NmApiMessageEvent aEvent, quint64 aMailboxId, quint64 aFolderId, QList<quint64> aMessageList){
+    NmApiMessageEnvelope envelope;
+    qDebug() << "QEmailFetcher::handleMessageEvent :START";
     const int messageCount = aMessageList.count();
     if( messageCount>0 ){
     if( aEvent == MessageCreated || aEvent == MessageChanged ){
+        qDebug() << "QEmailFetcher::handleMessageEvent :MessageCreated || MessageChanged";
         for( int i=0; i<messageCount; i++ ){
             if( iEmailService->getEnvelope( aMailboxId, aFolderId, aMessageList.at( i ), envelope ) ){
+               qDebug() << "QEmailFetcher::handleMessageEvent :HandleDocumentL";
                 QT_TRAP_THROWING( 
-                   iEmailObserver.HandleDocumentL( getSearchDocument( envelope ), 
+                   iEmailObserver.HandleDocumentL( getSearchDocument( envelope, aMailboxId, aFolderId ), 
                            //Doing this simply avoids *duplicate* code for update action.
                            aEvent == MessageCreated ? ECPixAddAction : ECPixUpdateAction ) );
             }
         }
     }
     else if( aEvent == MessageDeleted ) {
+        qDebug() << "QEmailFetcher::handleMessageEvent :MessageDeleted";
         //TODO We can do better. For delete, we dont have to create full document. Just the ID should be enough.
         //We can have another function called getPartialSearchDocument so deletes will be faster.
         for( int i=0; i<messageCount; i++ ){
             if( iEmailService->getEnvelope( aMailboxId, aFolderId, aMessageList.at( i ), envelope ) ){
+                qDebug() << "QEmailFetcher::handleMessageEvent :MessageDeleted : HandleDocumentL";
                 QT_TRAP_THROWING( 
-                iEmailObserver.HandleDocumentL( getSearchDocument( envelope ), ECPixRemoveAction ) );
+                iEmailObserver.HandleDocumentL( getPartialSearchDocument( envelope ), ECPixRemoveAction ) );
             }
         }
     }
     }
 }
+
+//--------------------------------------------------------------------------------------
+void QEmailFetcher::handlemailboxEvent( EmailClientApi::NmApiMailboxEvent event, QList<quint64> idlist ){
+    const int mailboxCount = idlist.count();    
+    if( event == MailboxCreated )
+        {
+        //New mailbox is created.Harvest the Mailbox name and all the folder names
+        }
+    else
+        {
+        //MailBox is deleted so delete the document related to all the mailbox and folders in the mailbox
+        }
+}
+
+CSearchDocument* QEmailFetcher::getMailboxorfolderSearchDocument( quint64 aMailboxId, quint64 aFolderId, TEmailDocType aDocType, QString aFoldername ){
+    
+    CSearchDocument* doc = 0;
+    QT_TRAP_THROWING(
+    //Use qt_Qstring2TPtrC since we are working with <b>const</b> EmailMessageEnvelope.
+            if ( aDocType == EEmailTypeFolder)
+                {
+                doc = CSearchDocument::NewL( qt_QString2TPtrC( QString().setNum( aFolderId ) ), 
+                                 KMsgBaseAppClassGeneric );
+                doc->AddFieldL( KFolderName, qt_QString2TPtrC(aFoldername) , CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized );
+                doc->AddFieldL( KFolderId, qt_QString2TPtrC( QString().setNum( aFolderId ) ), CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized );
+                }
+            else if ( aDocType == EEmailTypeMailBox )
+                {
+                doc = CSearchDocument::NewL( qt_QString2TPtrC( QString().setNum( aMailboxId ) ), 
+                                             KMsgBaseAppClassGeneric );
+                NmApiMailbox aMailBox;
+                iEmailService->getMailbox( aMailboxId, aMailBox );
+                doc->AddFieldL( KMailBoxName, qt_QString2TPtrC(aMailBox.name()) , CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized );
+                }
+            doc->AddFieldL( KMimeTypeField, KMimeTypeMsg, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized);
+            doc->AddFieldL( KMailBoxId, qt_QString2TPtrC( QString().setNum( aMailboxId ) ), CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized );
+
+    );
+    qDebug() << "QEmailFetcher::getSearchDocument :END";
+    return doc;
+}
--- a/harvesterplugins/messaging/email/qtemailfetcher/qtemailfetcher.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/messaging/email/qtemailfetcher/qtemailfetcher.h	Wed Jun 23 17:22:18 2010 +0100
@@ -32,10 +32,18 @@
 #include <nmapimessageenvelope.h>
 #include <nmapifolderlisting.h>
 #include <QObject>
+#include <nmapifolder.h>
 #include "memailitemobserver.h"
 
 using namespace EmailClientApi;
 
+enum TEmailDocType
+        {
+        EEmailTypeMail = 0,
+        EEmailTypeFolder,
+        EEmailTypeMailBox
+        };
+
 //How this works:
 //1. List all mail boxes.
 //2. In each mail box, list the folders
@@ -61,29 +69,32 @@
     void processNextFolder();
     void processNextEnvelope();
     void NotifyHarvestingComplete();
-    
+    CSearchDocument* getSearchDocument( const NmApiMessageEnvelope& aEnvelope ,quint64 aMailboxId, quint64 aFolderId );
+    CSearchDocument* getMailboxorfolderSearchDocument( quint64 aMailboxId, quint64 aFolderId, TEmailDocType aDocType, QString aFoldername );
 public slots: //public since they need to be called by *other* objects.
     void emailServiceIntialized( bool );
-    void handleMailboxesListed( int );
-    void handleMailFoldersListed( int );
-    void processMessages( int );
+    void handleMailboxesListed( qint32 );
+    void handleMailFoldersListed( qint32 );
+    void processMessages( qint32 );
     //Connect to messageEvent signal
-    void handleMessageEvent( MessageEvent aEvent, quint64 mailboxId, quint64 folderId, QList<quint64> messageList );
+    void handleMessageEvent( NmApiMessageEvent aEvent, quint64 mailboxId, quint64 folderId, QList<quint64> messageList ); 
+    //Connect to Mailbox event signal
+    void handlemailboxEvent(EmailClientApi::NmApiMailboxEvent event, QList<quint64> id);
     
 private:
     MEmailItemObserver& iEmailObserver;     //The parent/creator. Not owned.
-    NmEventNotifier* iEmailEventNotifier;   //owned; triggers handleMessageEvent.
-    NmEmailService* iEmailService;          //owned. 
-    NmMailboxListing* iMailBoxListings;     //owned.
-    NmFolderListing* iMailFolderList;       //owned.
-    NmEnvelopeListing* iEnvelopeListing;    //owned.
-    NmMessageEnvelope* iMessageListing;     //owned.
+    NmApiEventNotifier* iEmailEventNotifier;   //owned; triggers handleMessageEvent.
+    NmApiEmailService* iEmailService;          //owned. 
+    NmApiMailboxListing* iMailBoxListings;     //owned.
+    NmApiFolderListing* iMailFolderList;       //owned.
+    NmApiEnvelopeListing* iEnvelopeListing;    //owned.
+    NmApiMessageEnvelope* iMessageListing;     //owned.
     
     //These are needed to asynchronously process *all* mailboxes/folders.
     int iCurrentMailboxIndex;
     int iCurrentFolderIndex;
-    QList<NmMailbox> iMailBoxes;
-    QList<NmFolder> iFolders;
+    QList<NmApiMailbox> iMailBoxes;
+    QList<NmApiFolder> iFolders;
     };
 
 #endif //_QEMAILFETCHER_H
--- a/harvesterplugins/messaging/email/src/cemailplugin.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/messaging/email/src/cemailplugin.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -74,8 +74,10 @@
 //  
 CEmailPlugin* CEmailPlugin::NewL()
 {
+    CPIXLOGSTRING("CEmailPlugin::NewL : Start");
 	  CEmailPlugin* instance = CEmailPlugin::NewLC();
     CleanupStack::Pop(instance);
+    CPIXLOGSTRING("CEmailPlugin::NewL : End");
     return instance;
 }
 
@@ -85,9 +87,11 @@
 //  
 CEmailPlugin* CEmailPlugin::NewLC()
 {
-	  CEmailPlugin* instance = new (ELeave)CEmailPlugin();
+    CPIXLOGSTRING("CEmailPlugin::NewLC : Start");
+	CEmailPlugin* instance = new (ELeave)CEmailPlugin();
     CleanupStack::PushL(instance);
     instance->ConstructL();
+    CPIXLOGSTRING("CEmailPlugin::NewLC : End");
     return instance;
 }
 
@@ -135,11 +139,13 @@
 //  
 void CEmailPlugin::StartPluginL()
 	{
+    CPIXLOGSTRING("CEmailPlugin::StartPluginL : Start");
 	CPIXLOGSTRING2("currentDrive used is : %d", iCurrentDrive );
 	MountL(TDriveNumber(iCurrentDrive)); //Mount current drive
 	//create instance of QEmailFetcher
 	QT_TRYCATCH_LEAVING(iQEmailFetcher = QEmailFetcher::newInstance(*this));
 	// Define this base application class, use default location
+	CPIXLOGSTRING("CEmailPlugin::StartPluginL : End");
 	}
 
 // ---------------------------------------------------------------------------
--- a/harvesterplugins/messaging/smsmms/src/cmessagedatahandler.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/messaging/smsmms/src/cmessagedatahandler.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Harvester message plugin
- *
+*
 */
 
 
@@ -42,7 +42,7 @@
 
 
 /** Number of symbols from MsgBody taken to excerpt */
-const TInt KMsgBodyExcerptSymbols = 90;
+const TInt KMsgBodyExcerptSymbols = 160;
 
 // For Ucs2 detection
 const TInt KUtf8BomLength = 3;
@@ -626,65 +626,69 @@
 //
 HBufC* CMessageDataHandler::CreateExcerptLC(const TDesC& aFromAddress,
 											const CDesCArray& aRecipientArray,
-											const TDesC& aSubject,
+											const TDesC& /*aSubject*/,
 											const TDesC& aBodyText,
 											const TMsvId& aFolderId)
 	{
+    //Note:Only From/To (as appropriate): and Body: fields to be added to excerpt for now. 
+    //See appclass-hierarchy.txt for details.  
+    
 	_LIT(KEllipsis, "...");
 	_LIT(KSpace, " ");
 	TInt excerptLength = KMsgBodyExcerptSymbols + KEllipsis().Length(); 
 
-	TMsvEntry entry;
-	TMsvId service = 0;
-	iMsvSession.GetEntry(aFolderId, service, entry);
-	HBufC *folder_str = entry.iDetails.AllocLC();
-
-	excerptLength += folder_str->Length();
-	excerptLength += KSpace().Length();
+	//Not removing commented out code as this may come back into use in near future.
+//	TMsvEntry entry;
+//	TMsvId service = 0;
+//	iMsvSession.GetEntry(aFolderId, service, entry);
+//	HBufC *folder_str = entry.iDetails.AllocLC();
+//
+//	excerptLength += folder_str->Length();
+//	excerptLength += KSpace().Length();
 
-	if ((aFromAddress.Length() > 0) && (aFolderId == KMsvGlobalInBoxIndexEntryIdValue))
-		{
-		excerptLength += aFromAddress.Length();
-		excerptLength += KSpace().Length();
-		}
-	if ((aRecipientArray.MdcaCount() > 0) && (aFolderId != KMsvGlobalInBoxIndexEntryIdValue))
-		{
-		excerptLength += aRecipientArray.MdcaPoint(0).Length();
-		excerptLength += KSpace().Length(); 
-		}
-	if (aSubject.Length() > 0)
-		{
-		excerptLength += aSubject.Length();
-		excerptLength += KSpace().Length();
-		}
+	if( aFolderId == KMsvGlobalInBoxIndexEntryIdValue && aFromAddress.Length() > 0 )
+	    {
+        excerptLength += aFromAddress.Length();
+        excerptLength += KSpace().Length();
+	    }
+	else if( aFolderId != KMsvGlobalInBoxIndexEntryIdValue && aRecipientArray.MdcaCount() > 0 )
+	    {
+        excerptLength += aRecipientArray.MdcaPoint(0).Length();
+        excerptLength += KSpace().Length(); 
+	    }
 
 	HBufC* excerpt = HBufC::NewL(excerptLength);
 	TPtr excerptPtr = excerpt->Des();
 
-	excerptPtr.Copy(*folder_str);
-	excerptPtr.Append(KSpace);
+	//Not removing commented out code as this may come back into use in near future.
+//	excerptPtr.Copy(*folder_str);
+//	excerptPtr.Append(KSpace);
 	
-	if ((aFromAddress.Length() > 0) && (aFolderId == KMsvGlobalInBoxIndexEntryIdValue))
-		{
-		excerptPtr.Append(aFromAddress);
-		excerptPtr.Append(KSpace);
-		}
-	if ((aRecipientArray.MdcaCount() > 0) && (aFolderId != KMsvGlobalInBoxIndexEntryIdValue))
-		{
-		excerptPtr.Append(aRecipientArray.MdcaPoint(0));
-		excerptPtr.Append(KSpace);
-		}
-	if (aSubject.Length() > 0)
-		{
-		excerptPtr.Append(aSubject);
-		excerptPtr.Append(KSpace);
-		}
+	//For inbox items, From: is present while for sent items To: is present.
+    if ((aFromAddress.Length() > 0) && (aFolderId == KMsvGlobalInBoxIndexEntryIdValue))
+        {
+        excerptPtr.Append(aFromAddress);
+        excerptPtr.Append(KSpace);
+        }
+    else if ((aRecipientArray.MdcaCount() > 0) && (aFolderId != KMsvGlobalInBoxIndexEntryIdValue))
+        {
+        excerptPtr.Append(aRecipientArray.MdcaPoint(0));
+        excerptPtr.Append(KSpace);
+        }
+
+	//Not deleting this code as it might have to be brought back into use
+	//in (possibly near) future.
+//	if (aSubject.Length() > 0)
+//		{
+//		excerptPtr.Append(aSubject);
+//		excerptPtr.Append(KSpace);
+//		}
 
 	excerptPtr.Append(aBodyText.Left(KMsgBodyExcerptSymbols));
 	if (aBodyText.Length() > KMsgBodyExcerptSymbols)
 		excerptPtr.Append(KEllipsis);
 
-	CleanupStack::PopAndDestroy(folder_str);
+//	CleanupStack::PopAndDestroy(folder_str);
 	CleanupStack::PushL(excerpt);
 	return excerpt;
 	}
--- a/harvesterplugins/messaging/smsmms/traces/OstTraceDefinitions.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/messaging/smsmms/traces/OstTraceDefinitions.h	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #ifndef __OSTTRACEDEFINITIONS_H__
 #define __OSTTRACEDEFINITIONS_H__
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
--- a/harvesterplugins/notes/src/notesplugin.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/notes/src/notesplugin.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -53,7 +53,7 @@
 _LIT(KNpdUpdateTime , "Date");
 
 //Reference from CPix calender harvester plugin.
-_LIT(KNotesTimeFormat , "%F%/0%Y%M%D%H%T"); // Locale independent YYYYMMDDHHMM
+_LIT(KNotesTimeFormat , "%F%/0%Y %M %D %H%T"); // Locale independent YYYYMMDDHHMM
 
 // ---------------------------------------------------------------------------
 // CNotesPlugin::NewL
@@ -352,13 +352,14 @@
 
 		index_item->AddFieldL(KMimeTypeField, KMimeTypeNotes, CDocumentField::EStoreYes | CDocumentField::EIndexUnTokenized);
 
-    	TInt excerptLength = entry->DescriptionL().Length();
-		HBufC* excerpt = HBufC::NewLC(excerptLength);
-		TPtr excerptDes = excerpt->Des();		
-		excerptDes.Append(entry->DescriptionL());
-		
-        index_item->AddExcerptL(*excerpt);
-        CleanupStack::PopAndDestroy(excerpt);      
+		//For notes, no content is expected in excerpt for now.
+		//See appclass-hierarchy.txt for details.
+//    	TInt excerptLength = entry->DescriptionL().Length();
+//		HBufC* excerpt = HBufC::NewLC(excerptLength);
+//		TPtr excerptDes = excerpt->Des();		
+//		excerptDes.Append(entry->DescriptionL());
+//      index_item->AddExcerptL(*excerpt);
+//      CleanupStack::PopAndDestroy(excerpt);      
 		
 		// Send for indexing
 		if (aActionType == ECPixAddAction)
--- a/harvesterplugins/notes/traces/OstTraceDefinitions.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/notes/traces/OstTraceDefinitions.h	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #ifndef __OSTTRACEDEFINITIONS_H__
 #define __OSTTRACEDEFINITIONS_H__
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
--- a/harvesterplugins/tsrc/harvesterplugintester/conf/harvesterplugintester.cfg	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/tsrc/harvesterplugintester/conf/harvesterplugintester.cfg	Wed Jun 23 17:22:18 2010 +0100
@@ -249,6 +249,20 @@
 [Endtest]
 
 [Test]
+title TestAudioHarvestingUpdateIndex
+create HarvesterPluginTester foobar 
+foobar TestAudiooHarvestingUpdateIndex c:\data\eagle_landed.mp3 eagle_landed.mp3 testaudio.wmv
+delete foobar
+[Endtest]
+
+[Test]
+title TestAudioHarvestingDeleteIndex
+create HarvesterPluginTester foobar 
+foobar TestAudioHarvestingDeleteIndex c:\data\eagle_landed.mp3 eagle_landed.mp3
+delete foobar
+[Endtest]
+
+[Test]
 title TestMdsSyncController
 create HarvesterPluginTester foobar
 foobar TestMdsSyncController
@@ -261,6 +275,7 @@
 foobar TestVideoHarvestingIndex c:\data\Niagara.wmv Niagara.wmv
 delete foobar
 [Endtest]
+
 [Test]
 title TestVideoHarvestingUpdateIndex
 create HarvesterPluginTester foobar 
@@ -278,21 +293,21 @@
 [Test]
 title TestImageHarvestingAddIndex
 create HarvesterPluginTester foobar 
-foobar TestImageHarvestingAddIndex c:\data\Square.jpg Square.jpg
+foobar TestImageHarvestingAddIndex c:\data\square.jpg square.jpg
 delete foobar
 [Endtest]
 
 [Test]
 title TestImageHarvestingUpdateIndex
 create HarvesterPluginTester foobar 
-foobar TestImageHarvestingUpdateIndex c:\data\Square.jpg Square.jpg Portrait.jpg
+foobar TestImageHarvestingUpdateIndex c:\data\square.jpg square.jpg portrait.jpg
 delete foobar
 [Endtest]
 
 [Test]
 title TestImageHarvestingDeleteIndex
 create HarvesterPluginTester foobar 
-foobar TestImageHarvestingDeleteIndex c:\data\Square.jpg Square.jpg
+foobar TestImageHarvestingDeleteIndex c:\data\square.jpg square.jpg
 delete foobar
 [Endtest]
 
Binary file harvesterplugins/tsrc/harvesterplugintester/conf/square.jpg has changed
--- a/harvesterplugins/tsrc/harvesterplugintester/group/bld.inf	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/tsrc/harvesterplugintester/group/bld.inf	Wed Jun 23 17:22:18 2010 +0100
@@ -33,6 +33,7 @@
 ../conf/testfile.txt				/epoc32/winscw/c/data/testfile.txt
 ../conf/eagle_landed.mp3           /epoc32/winscw/c/data/eagle_landed.mp3
 ../conf/niagara.wmv           	  /epoc32/winscw/c/data/niagara.wmv
+../conf/square.jpg           	  /epoc32/winscw/c/data/square.jpg
 
 //Note: Export for ROM build 
 ../conf/testframework.ini         z:/system/data/testframework.ini
--- a/harvesterplugins/tsrc/harvesterplugintester/inc/ccalendarobserver.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/tsrc/harvesterplugintester/inc/ccalendarobserver.h	Wed Jun 23 17:22:18 2010 +0100
@@ -41,6 +41,7 @@
     TBool NotifyProgress();
     
     void AddEntryL();
+    void UpdateCalenderEntryL();
     void DeleteEntryL();
     void AddNoteL( TPtr8 aMemo);
     void DeleteNoteEntryL();
--- a/harvesterplugins/tsrc/harvesterplugintester/inc/harvesterobserver.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/tsrc/harvesterplugintester/inc/harvesterobserver.h	Wed Jun 23 17:22:18 2010 +0100
@@ -40,7 +40,7 @@
     
 //from MIndexingService
     void AddHarvestingQueue(CIndexingPlugin* aPlugin, const TDesC& aQualifiedBaseAppClass, TBool aForceReharvest = EFalse);
-    void RemoveHarvestingQueue(CIndexingPlugin* /*aPlugin*/, const TDesC& /*aQualifiedBaseAppClass*/) {};
+    void RemoveHarvestingQueue(CIndexingPlugin* /*aPlugin*/, const TDesC& /*aQualifiedBaseAppClass*/, TBool /*aRemovePersist = EFalse*/){};
     void HarvestingCompleted(CIndexingPlugin* aPlugin, const TDesC& aQualifiedBaseAppClass, TInt aError);
 
 private:
--- a/harvesterplugins/tsrc/harvesterplugintester/inc/harvesterplugintester.h	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/tsrc/harvesterplugintester/inc/harvesterplugintester.h	Wed Jun 23 17:22:18 2010 +0100
@@ -227,6 +227,10 @@
 		
 		virtual TInt TestAudioHarvestingL( CStifItemParser& aItem );
 		
+		virtual TInt TestAudioHarvestingUpdateIndexL( CStifItemParser& aItem );
+		        
+        virtual TInt TestAudioHarvestingDeleteIndexL( CStifItemParser& aItem );
+		
 		virtual TInt TestMdsSyncControllerL( CStifItemParser& aItem );
 		
 		virtual TInt TestBlacklistPluginL( CStifItemParser& aItem );
--- a/harvesterplugins/tsrc/harvesterplugintester/src/ccalanderobserver.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/tsrc/harvesterplugintester/src/ccalanderobserver.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -65,7 +65,7 @@
 
 void CCalendarObserver::AddEntryL()
     {
-    _LIT(KDescription,"Meeting is scheduled in 1st week of January");
+    _LIT(KDescription,"Meeting");
     const TDesC8& guidDes = KGuid;
     iUid = guidDes.AllocL();        
     CCalEntry* entry = CCalEntry::NewL(CCalEntry::EAppt, iUid, CCalEntry::EMethodNone, 0);    
@@ -94,6 +94,32 @@
     CleanupStack::PopAndDestroy(entry);    
     }
 
+void CCalendarObserver::UpdateCalenderEntryL()
+    {
+    _LIT(KOldEntry,"Meeting");
+    _LIT(KNewEntry,"Updated Meeting");
+    
+    RPointerArray<CCalEntry> entryarray; 
+    CleanupStack::PushL(TCleanupItem(DestroyRPointerArray, &entryarray));
+    
+    iCalEntryView->FetchL(KGuid,entryarray);    
+        for( int i = 0; i < entryarray.Count(); i++)
+            {
+            CCalEntry* entry = entryarray[i];
+            if ( entry->EntryTypeL() == CCalEntry::EAppt )
+                {
+                if ( entry->DescriptionL().Compare ( KOldEntry ) == 0)            
+                    {                    
+                    entry->SetDescriptionL(KNewEntry);
+                    break;
+                    }
+                }
+            }
+    TInt numEntriesAdded = 0;
+    iCalEntryView->StoreL(entryarray, numEntriesAdded);    
+    CleanupStack::PopAndDestroy(&entryarray);   
+    }
+
 void CCalendarObserver::AddNoteL( TPtr8 aMemo)
     {	
     const TDesC8& guidDes = KGuid;
--- a/harvesterplugins/tsrc/harvesterplugintester/src/cmessagesessionobserver.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/tsrc/harvesterplugintester/src/cmessagesessionobserver.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -109,30 +109,35 @@
 TInt MessagingUtils::CreateMessageL(CMsvSession* aMsgSession, const TDesC& aMsgFrom,
                                     const TDesC& aMsgTo,const TDesC& aMsgBody)
     {
+    CSmsClientMtm* smsMtm = NULL;
+    TMsvId newMsgId = NULL;
     CClientMtmRegistry* mtmReg = CClientMtmRegistry::NewL( *aMsgSession );
-    CSmsClientMtm* smsMtm = static_cast<CSmsClientMtm*>( mtmReg->NewMtmL( KUidMsgTypeSMS )); 
-    smsMtm->SwitchCurrentEntryL( KMsvGlobalInBoxIndexEntryId );
-    smsMtm->CreateMessageL( KUidMsgTypeSMS.iUid );
-    TMsvId newMsgId = smsMtm->Entry().EntryId();
-    smsMtm->AddAddresseeL( aMsgTo ); //to address if need
-    CMsvStore* messageStore = smsMtm->Entry().EditStoreL();
-    CleanupStack::PushL( messageStore );
-    CSmsHeader& header = smsMtm->SmsHeader();
-    header.SetFromAddressL(aMsgFrom);
-    header.StoreL( *messageStore );
-    CleanupStack::PopAndDestroy( messageStore );
-    CRichText& body = smsMtm->Body();
-    body.Reset();
-    // Put 16bits stream stored in 8bits buffer back to 16bits buffer.
-    body.InsertL( 0, aMsgBody);
-    TMsvEntry entry = smsMtm->Entry().Entry();
-    entry.SetInPreparation( EFalse );
-    entry.SetVisible( ETrue );
-    entry.iDate.HomeTime();
-    entry.iDetails.Set(aMsgFrom);
-    entry.SetUnread( EFalse );
-    smsMtm->Entry().ChangeL( entry );
-    smsMtm->SaveMessageL(); 
+    TRAPD(err,smsMtm = static_cast<CSmsClientMtm*>( mtmReg->NewMtmL( KUidMsgTypeSMS )));
+    if( err == KErrNone)
+        {
+        smsMtm->SwitchCurrentEntryL( KMsvGlobalInBoxIndexEntryId );
+        smsMtm->CreateMessageL( KUidMsgTypeSMS.iUid );
+        newMsgId = smsMtm->Entry().EntryId();
+        smsMtm->AddAddresseeL( aMsgTo ); //to address if need
+        CMsvStore* messageStore = smsMtm->Entry().EditStoreL();
+        CleanupStack::PushL( messageStore );
+        CSmsHeader& header = smsMtm->SmsHeader();
+        header.SetFromAddressL(aMsgFrom);
+        header.StoreL( *messageStore );
+        CleanupStack::PopAndDestroy( messageStore );
+        CRichText& body = smsMtm->Body();
+        body.Reset();
+        // Put 16bits stream stored in 8bits buffer back to 16bits buffer.
+        body.InsertL( 0, aMsgBody);
+        TMsvEntry entry = smsMtm->Entry().Entry();
+        entry.SetInPreparation( EFalse );
+        entry.SetVisible( ETrue );
+        entry.iDate.HomeTime();
+        entry.iDetails.Set(aMsgFrom);
+        entry.SetUnread( EFalse );
+        smsMtm->Entry().ChangeL( entry );
+        smsMtm->SaveMessageL();
+        }
     delete smsMtm;
     delete mtmReg;
     return newMsgId;
--- a/harvesterplugins/tsrc/harvesterplugintester/src/harvesterplugintesterblocks.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/harvesterplugins/tsrc/harvesterplugintester/src/harvesterplugintesterblocks.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -121,6 +121,8 @@
         ENTRY( "TestCreateMMS",CHarvesterPluginTester::TestCreateMmsL ),
         ENTRY( "TestCreateEmail",CHarvesterPluginTester::TestCreateEmailL ),
 		ENTRY( "TestAudioHarvesting",CHarvesterPluginTester::TestAudioHarvestingL ),
+        ENTRY( "TestAudioHarvestingUpdateIndex",CHarvesterPluginTester::TestAudioHarvestingUpdateIndexL ),
+        ENTRY( "TestAudioHarvestingDeleteIndex",CHarvesterPluginTester::TestAudioHarvestingDeleteIndexL ),
 		ENTRY( "TestMdsSyncController",CHarvesterPluginTester::TestMdsSyncControllerL ),
 		//ENTRY( "TestBlacklistPlugin",CHarvesterPluginTester::TestBlacklistPluginL ),
 		//ENTRY( "TestBlacklistPluginVersion",CHarvesterPluginTester::TestBlacklistPluginVersionL ),
@@ -925,9 +927,35 @@
                  {
                   TInt aContactId;
                   //Add a contact first and later edit the contact
+                  plugin->StartHarvestingL( _L(CONTACT_QBASEAPPCLASS) );                                    
                   aContactId = CreateNewContactL( *db, ContactName, _L("123") );
-                  
-                  CContactItem* contactItem = db->OpenContactL( aContactId );
+                  iPluginTester->iWaitForHarvester->Start();
+                  if( aItem.GetNextString ( NewContactName ) == KErrNone )
+                      {
+                      CContactCard* newCard = CContactCard::NewLC();                      
+                      // Create the firstName field and add the data to it
+                      CContactItemField* firstName = CContactItemField::NewLC( KStorageTypeText, KUidContactFieldGivenName );
+                      firstName->TextStorage()->SetTextL(NewContactName);    
+                      newCard->AddFieldL(*firstName);
+                      CleanupStack::Pop(firstName);
+                        
+                      // Create the phoneNo field and add the data to it
+                      CContactItemField* phoneNumber = CContactItemField::NewLC( KStorageTypeText, KUidContactFieldPhoneNumber );
+                      phoneNumber->SetMapping(KUidContactFieldVCardMapTEL);
+                      phoneNumber ->TextStorage()->SetTextL(_L("567"));
+                      newCard->AddFieldL(*phoneNumber);
+                      CleanupStack::Pop(phoneNumber);
+                      
+                      plugin->StartHarvestingL( _L(CONTACT_QBASEAPPCLASS) );
+                      CContactItem* contactItem = db->UpdateContactLC(aContactId, newCard);
+                      iPluginTester->iWaitForHarvester->Start();
+                      
+                      CleanupStack::PopAndDestroy(contactItem);
+                      CleanupStack::PopAndDestroy(newCard);
+                      
+                      error = doSearch( NewContactName, _L( CONTACT_QBASEAPPCLASS ), ESearchTypeResultsExpected );
+                      }
+                  /*CContactItem* contactItem = db->OpenContactL( aContactId );
                   CleanupStack::PushL( contactItem );                           
                   // First get the item's field set
                   CContactItemFieldSet& fieldSet=contactItem->CardFields();                              
@@ -940,12 +968,12 @@
                       // Commit the change back to database and clean up
                       db->CommitContactL( *contactItem );
                       }
-                  CleanupStack::PopAndDestroy(contactItem);                
+                  CleanupStack::PopAndDestroy(contactItem)*/;                
                   
-                  plugin->StartHarvestingL( _L(CONTACT_QBASEAPPCLASS) );
+                  /*plugin->StartHarvestingL( _L(CONTACT_QBASEAPPCLASS) );
                   iPluginTester->iWaitForHarvester->Start();
                   error = doSearch( NewContactName, _L( CONTACT_QBASEAPPCLASS ), ESearchTypeResultsExpected );
-                  db->DeleteContactL( aContactId );
+                  db->DeleteContactL( aContactId );*/
                   }                 
              }
          if( IndexAction.Compare( KActionDelete ) == 0 )
@@ -955,13 +983,16 @@
                  TInt aContactId;
                  plugin->StartHarvestingL( _L(CONTACT_QBASEAPPCLASS));
                  //Add a contact to contactdatabase and later delete it
-                 aContactId = CreateNewContactL( *db, ContactName, _L("123455"));
-                 db->DeleteContactL(aContactId);
-                 iPluginTester->iWaitForHarvester->Start();                 
+                 aContactId = CreateNewContactL( *db, ContactName, _L("123455"));                 
+                 iPluginTester->iWaitForHarvester->Start();
                  error = doSearch( ContactName, _L( CONTACT_QBASEAPPCLASS ), ESearchTypeResultsExpected );
-                 //If the contact is succesfully deleted, make error to KErrNone.To show testcase success
-                 if(error == KErrNotFound)
-                     error = KErrNone;                 
+                 if(error == KErrNone)
+                     {
+                     plugin->StartHarvestingL( _L(CONTACT_QBASEAPPCLASS));
+                     db->DeleteContactL(aContactId);
+                     iPluginTester->iWaitForHarvester->Start();
+                     error = doSearch( ContactName, _L( CONTACT_QBASEAPPCLASS ), ESearchTypeNoResultsExpected );
+                     }                                 
                  }             
              }
         }
@@ -990,9 +1021,24 @@
         CContactItem* newitem = db->CreateContactGroupL( _L("TestGroup") );
         db->AddContactToGroupL( aContactId, newitem->Id() );       
         iPluginTester->iWaitForHarvester->Start();    
-        error = doSearch( GroupName, _L( CONTACT_QBASEAPPCLASS ), ESearchTypeResultsExpected );    
+        error = doSearch( GroupName, _L( CONTACT_QBASEAPPCLASS ), ESearchTypeResultsExpected );
+        
+        //update the group by adding a new contact, to get update event
+        CContactGroup* group = static_cast<CContactGroup*>(db->OpenContactLX(newitem->Id()));        
+        CleanupStack::PushL(group);
+        plugin->StartHarvestingL( _L(CONTACT_QBASEAPPCLASS) );
+        TInt aId = CreateNewContactL( *db, _L("Contact1"), _L("455") );        
+        db->AddContactToGroupL( aId, group->Id());
+        db->CommitContactL(*group);
+        iPluginTester->iWaitForHarvester->Start();    
+        CleanupStack::PopAndDestroy(2);
+        
+        //Delete the group and its contacts
+        plugin->StartHarvestingL( _L(CONTACT_QBASEAPPCLASS) );
         db->DeleteContactL(aContactId);
+        db->RemoveContactFromGroupL(aId, newitem->Id());
         db->DeleteContactL( newitem->Id() );
+        iPluginTester->iWaitForHarvester->Start();
         }
     
     delete plugin;
@@ -1029,9 +1075,14 @@
     session->AddEntryL();
     iPluginTester->iWaitForHarvester->Start();
     User::After((TTimeIntervalMicroSeconds32)30000000);
-    error = doSearch( _L("scheduled"), _L( CALENDAR_QBASEAPPCLASS ), ESearchTypeResultsExpected );
+    error = doSearch( _L("Meeting"), _L( CALENDAR_QBASEAPPCLASS ), ESearchTypeResultsExpected );
     doLog( iLog, error, KSearchError );
     
+    // For update event
+    session->UpdateCalenderEntryL();
+    plugin->StartHarvestingL( _L(CALENDAR_QBASEAPPCLASS) );
+    iPluginTester->iWaitForHarvester->Start();
+    
     plugin->StartHarvestingL( _L(CALENDAR_QBASEAPPCLASS) );
     session->DeleteEntryL();
     iPluginTester->iWaitForHarvester->Start();
@@ -1161,7 +1212,107 @@
     //End search
     return error;
     }
+TInt CHarvesterPluginTester::TestAudioHarvestingUpdateIndexL( CStifItemParser& aItem )
+    {
+    TInt error = KErrNone;
+    TPtrC filepath;
+    TPtrC filename;
+    TPtrC newFile;
+    TBuf<KMaxFileName> srcPath(_L("c:\\data\\Sounds\\"));
+    TBuf<KMaxFileName> desPath;
+    desPath.Copy( srcPath );
+    CAudioPlugin* plugin = CAudioPlugin::NewL();
+    CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin );
+    plugin->StartPluginL();
+    RFs fSession;
+    fSession.Connect();
+    CleanupClosePushL( fSession );
+    if((aItem.GetNextString(filepath)==KErrNone) && (aItem.GetNextString(filename) == KErrNone))
+        {
+        srcPath.Append( filename );
+        if( aItem.GetNextString(newFile) == KErrNone )
+            {
+            desPath.Append( newFile );
+            RHarvesterClient harvester;
+            User::LeaveIfError(harvester.Connect());
+            harvester.Pause();
+            TBool fileExist = BaflUtils::FileExists( fSession, srcPath );        
+            if(!fileExist)
+            {
+            BaflUtils::EnsurePathExistsL( fSession, srcPath );//Create folder
+            BaflUtils::CopyFile( fSession, filepath, srcPath );                    
+            }            
+            BaflUtils::RenameFile( fSession, srcPath, desPath );
+            harvester.Resume();
+            harvester.Close();
+            plugin->StartHarvestingL( _L(MEDIA_QBASEAPPCLASS) );
+            //wait for index to flush
+            iPluginTester->SetWaitTime( (TTimeIntervalMicroSeconds32)60000000 );
+            //wait till video harvesting completes
+            iPluginTester->iWaitForHarvester->Start();
+            TInt count = SearchForTextL(_L("testaudio"), _L(MEDIA_QBASEAPPCLASS), KNullDesC );
+            if(count <= 0)
+               {
+               error = KErrNotFound;
+               }
+            doLog( iLog, error, _L("Error in TestAudioHarvestingUpdateIndexL") );
+            }        
+        }
+        else
+            doLog( iLog, KErrNotFound, _L("Error in TestAudioHarvestingUpdateIndexL") );           
+        CleanupStack::PopAndDestroy();
+        delete plugin;
+        delete iPluginTester;
+        return error;
+        }
 
+TInt CHarvesterPluginTester::TestAudioHarvestingDeleteIndexL( CStifItemParser& aItem )
+    {
+    TInt error = KErrNone;
+    TPtrC filepath;
+    TPtrC filename;    
+    TBuf<KMaxFileName> srcPath(_L("c:\\data\\Sounds\\"));
+    CAudioPlugin* plugin = CAudioPlugin::NewL();
+    CHarvesterObserver* iPluginTester = CHarvesterObserver::NewL( plugin );
+    plugin->StartPluginL();
+    RFs fSession;
+    fSession.Connect();
+    CleanupClosePushL( fSession );
+    if((aItem.GetNextString(filepath)==KErrNone) && (aItem.GetNextString(filename) == KErrNone))
+        {
+        srcPath.Append( filename );        
+        RHarvesterClient harvester;
+        User::LeaveIfError(harvester.Connect());
+        harvester.Pause();
+        TBool fileExist = BaflUtils::FileExists( fSession, srcPath );        
+        if(!fileExist)
+        {
+        BaflUtils::EnsurePathExistsL( fSession, srcPath );//Create folder
+        BaflUtils::CopyFile( fSession, filepath, srcPath );                    
+        }            
+        BaflUtils::DeleteFile( fSession, srcPath );        
+        harvester.Resume();
+        harvester.Close();
+        plugin->StartHarvestingL( _L(MEDIA_QBASEAPPCLASS) );
+        //wait for index to flush
+        iPluginTester->SetWaitTime( (TTimeIntervalMicroSeconds32)60000000 );
+        //wait till video harvesting completes
+        iPluginTester->iWaitForHarvester->Start();
+        TInt count = SearchForTextL(_L("eagle"), _L(MEDIA_QBASEAPPCLASS), KNullDesC );
+        if(count <= 0)
+           {
+           // If the search is not found,then testcase is success
+           doLog( iLog, error, _L("Error in TestAudioHarvestingDeleteIndexL") );
+           }
+        }
+    else
+        doLog( iLog, KErrNotFound, _L("Error in TestAudioHarvestingDeleteIndexL") );           
+    CleanupStack::PopAndDestroy();
+    delete plugin;
+    delete iPluginTester;
+    return error;
+    }
+        
 TInt CHarvesterPluginTester::TestMdsSyncControllerL( CStifItemParser& /*aItem*/ )
     {
     _LIT( KHarvesterPluginTester, "HarvesterPluginTester" );
--- a/searchui/indevicehandler/tsrc/t_indevicehandler/src/t_indevicehandler.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/searchui/indevicehandler/tsrc/t_indevicehandler/src/t_indevicehandler.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #include "t_indevicehandler.h"
 #include "indevicehandler.h"
 #include <qsignalspy.h>
@@ -46,11 +30,11 @@
 void SearchInDeviceHandlerTest::testhandleAsyncSearchResult()
     {
     InDeviceHandler* indevicehandler = new InDeviceHandler();
-    indevicehandler->setCategory("file");
+    indevicehandler->setCategory("media");
     QSignalSpy
             spy(indevicehandler, SIGNAL(handleAsyncSearchResult(int, int)));
-    indevicehandler->searchAsync("txt");
-    QTest::qWait(200);
+    indevicehandler->searchAsync("jpg*");
+    QTest::qWait(2000);
     QCOMPARE(spy.count(), 1);
     delete indevicehandler;
 
@@ -58,15 +42,15 @@
 void SearchInDeviceHandlerTest::testhandleDocument()
     {
     InDeviceHandler* indevicehandler = new InDeviceHandler();
-    indevicehandler->setCategory("file");
+    indevicehandler->setCategory("media");
 
-    indevicehandler->searchAsync("txt");
-    QTest::qWait(200);
+    indevicehandler->searchAsync("jpg*");
+    QTest::qWait(2000);
 
     QSignalSpy spy(indevicehandler,
             SIGNAL(handleDocument(int, QCPixDocument*)));
     indevicehandler->getDocumentAsyncAtIndex(0);
-    QTest::qWait(200);
+    QTest::qWait(2000);
     QCOMPARE(spy.count(), 1);
     delete indevicehandler;
 
@@ -83,14 +67,14 @@
 void SearchInDeviceHandlerTest::testgetDocumentAsyncAtIndex()
     {
     InDeviceHandler* indevicehandler = new InDeviceHandler();
-    indevicehandler->setCategory("file");
+    indevicehandler->setCategory("media");
 
-    indevicehandler->searchAsync("txt");
-    QTest::qWait(200);
+    indevicehandler->searchAsync("jpg*");
+    QTest::qWait(2000);
     QSignalSpy spy(indevicehandler,
             SIGNAL(handleDocument(int, QCPixDocument*)));
     indevicehandler->getDocumentAsyncAtIndex(0);
-    QTest::qWait(200);
+    QTest::qWait(2000);
     QCOMPARE(spy.count(), 1);
     delete indevicehandler;
     }
@@ -98,21 +82,21 @@
 void SearchInDeviceHandlerTest::testsearchAsync()
     {
     InDeviceHandler* indevicehandler = new InDeviceHandler();
-    indevicehandler->setCategory("file");
+    indevicehandler->setCategory("media");
     QSignalSpy spy(indevicehandler, SIGNAL(handleAsyncSearchResult(int,int)));
     indevicehandler->searchAsync(NULL);
-    QTest::qWait(200);
+    QTest::qWait(2000);
     QCOMPARE(spy.count(), 0);
-    indevicehandler->searchAsync("txt");
-    QTest::qWait(200);
+    indevicehandler->searchAsync("jpg*");
+    QTest::qWait(2000);
     QCOMPARE(spy.count(), 1);
     delete indevicehandler;
     }
 void SearchInDeviceHandlerTest::testcancelLastSearch()
     {
     InDeviceHandler* indevicehandler = new InDeviceHandler();
-    indevicehandler->setCategory("file");
-    indevicehandler->searchAsync("txt");
+    indevicehandler->setCategory("media");
+    indevicehandler->searchAsync("jpg*");
     indevicehandler->cancelLastSearch();
     delete indevicehandler;
     }
@@ -120,9 +104,9 @@
     {
     InDeviceHandler* indevicehandler = new InDeviceHandler();
     QCOMPARE(indevicehandler->getSearchResultCount(),0);
-    indevicehandler->setCategory("file");
-    indevicehandler->searchAsync("txt");
-    QTest::qWait(200);
+    indevicehandler->setCategory("media");
+    indevicehandler->searchAsync("jpg*");
+    QTest::qWait(2000);
     QVERIFY(indevicehandler->getSearchResultCount());
     delete indevicehandler;
 
--- a/searchui/rom/search.iby	Tue May 18 12:26:30 2010 +0100
+++ b/searchui/rom/search.iby	Wed Jun 23 17:22:18 2010 +0100
@@ -27,7 +27,7 @@
 // Application registration file.
 data=DATAZ_/private/10003a3f/import/apps/Searchapplication_reg.rsc	/private/10003a3f/import/apps/Searchapplication_reg.rsc
 
-data=DATAZ_/resource/apps/Searchapplication.mif    /resource/apps/Searchapplication.mif
+
 
 //SearchIndevice handler
 file=/epoc32/release/armv5/urel/searchindevicehandler.dll SHARED_LIB_DIR/searchindevicehandler.dll
--- a/searchui/stateproviders/searchstateprovider/inc/searchprogressivestate.h	Tue May 18 12:26:30 2010 +0100
+++ b/searchui/stateproviders/searchstateprovider/inc/searchprogressivestate.h	Wed Jun 23 17:22:18 2010 +0100
@@ -130,7 +130,7 @@
      * get the application icon  .
      * @since S60 ?S60_version.
      */
-    HbIcon getAppIconFromAppId(TUid auid);
+    HbIcon getAppIconFromAppIdL(TUid auid);
 
     /**
      * resizing the symbain icon  .
@@ -211,23 +211,7 @@
     /**
      * slot connects to search state  for internet search
      * @since S60 ?S60_version.
-     */
-    void cancelSearch();
-    /**
-     * slot connects to model  for rows insert completion
-     * @since S60 ?S60_version.
-     */
-    void getrowsInserted();
-
-    /**
-     * slot connects to model  for rows delete completion
-     * @since S60 ?S60_version.
-     */
-    void getrowsRemoved();
-    /**
-     * slot added for Application manager
-     * @since S60 ?S60_version.
-     */
+     */  
 
     void handleOk(const QVariant& var);
 
@@ -308,6 +292,18 @@
     QStringList filterDoc(const QCPixDocument* aDoc, const QString& filter1,
             const QString& filter2, const QString& filter3 = QString());
 
+    /**
+     * Function to convert bitmap to pixmap       
+     */
+    void fromBitmapAndMaskToPixmapL(CFbsBitmap* fbsBitmap,
+            CFbsBitmap* fbsMask, QPixmap& pixmap);
+
+    /**
+     * Function to get pixmap       
+     */
+    void GetPixmapByFilenameL(TDesC& fileName, const QSize &size,
+            QPixmap& pixmap);
+
 signals:
 
     /**
@@ -412,15 +408,54 @@
      * 
      */
     bool loadSettings;
+
+    /**
+     * 
+     * Icon List to be created in boot up for all categories
+     */
     QList<HbIcon> mIconArray;
+
+    /**
+     * Hbicon to be created 
+     * 
+     */
     HbIcon mIcon;
+
+    /**
+     * to get drive info
+     * 
+     */
     RFs iFs;
 
+    /**
+     * Calendar plugin info
+     * 
+     */
     EventViewerPluginInterface *calAgandaViewerPluginInstance;
+
+    /**
+     * to create Notes editor 
+     * 
+     */
     NotesEditor *notesEditor;
+
 private:
+    /**
+     * Application manager handler to perform resultitem opening.
+     * 
+     */
     XQApplicationManager* mAiwMgr;
+
+    /**
+     * Request handler to to open resultItems
+     * 
+     */
     XQAiwRequest* mRequest;
+
+    /**
+     * ListView icon Size.
+     * 
+     */
     QSize mListViewIconSize;
 #ifdef OST_TRACE_COMPILER_IN_USE
     QTime m_totalSearchUiTime;
--- a/searchui/stateproviders/searchstateprovider/resources/searchstateprovider.docml	Tue May 18 12:26:30 2010 +0100
+++ b/searchui/stateproviders/searchstateprovider/resources/searchstateprovider.docml	Wed Jun 23 17:22:18 2010 +0100
@@ -10,7 +10,7 @@
                 <sizehint height="47.7612un" type="PREFERRED" width="35.8209un"/>
             </widget>
             <widget name="searchPanel" type="HbSearchPanel">
-                <sizepolicy horizontalPolicy="MinimumExpanding" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
+                <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Preferred" verticalStretch="0"/>
             </widget>
             <layout orientation="Vertical" type="linear">
                 <linearitem itemname="listView"/>
--- a/searchui/stateproviders/searchstateprovider/searchstateprovider.pro	Tue May 18 12:26:30 2010 +0100
+++ b/searchui/stateproviders/searchstateprovider/searchstateprovider.pro	Wed Jun 23 17:22:18 2010 +0100
@@ -47,6 +47,7 @@
 LIBS += -lapgrfx
 LIBS += -lbitgdi
 LIBS += -lnoteseditor
+LIBS += -lxqutils
 
 
 coverage:DEFINES += COVERAGE_MEASUREMENT
--- a/searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -42,7 +42,7 @@
 #include <fbs.h>
 #include <AknInternalIconUtils.h>
 #include <AknIconUtils.h> 
-#include <apgcli.h>
+#include <apaidpartner.h>
 #include <qpluginloader.h>
 #include <eventviewerplugininterface.h>
 #include <noteseditor.h>
@@ -51,6 +51,8 @@
 #include <apgcli.h>
 #include <AknTaskList.h>
 #include <apacmdln.h>
+#include <xqconversions.h>
+#include <apparc.h>
 const char *SEARCHSTATEPROVIDER_DOCML = ":/xml/searchstateprovider.docml";
 const char *TOC_VIEW = "tocView";
 const char *TUT_SEARCHPANEL_WIDGET = "searchPanel";
@@ -120,6 +122,10 @@
     if (mSearchPanel)
         {
         mSearchPanel->setSearchOptionsEnabled(true);
+        
+        mSearchPanel->setPlaceholderText("Search device");
+
+        mSearchPanel->setCancelEnabled(false);
         }
 
     constructHandlers();
@@ -138,20 +144,20 @@
     //Icon creation in array
     RArray<TUid> appUid;
     appUid.Append(TUid::Uid(0x20022EF9));//contact
-    appUid.Append(TUid::Uid(0x10207C62));//media(audio)
-    appUid.Append(TUid::Uid(0x200211FE));//video not assigned 
+    appUid.Append(TUid::Uid(0x10207C62));//audio
+    appUid.Append(TUid::Uid(0x200211FE));//video 
     appUid.Append(TUid::Uid(0x20000A14));//image 
     appUid.Append(TUid::Uid(0x2001FE79));//msg
-    appUid.Append(TUid::Uid(0x20022F35));//email not assigned 
+    appUid.Append(TUid::Uid(0x200255BA));//email 
     appUid.Append(TUid::Uid(0x10005901));//calender
     appUid.Append(TUid::Uid(0x20029F80));//notes
     //appUid.Append(TUid::Uid(0x20022F35));//application
-    appUid.Append(TUid::Uid(0x20022F35));//bookmark not assigned
+    appUid.Append(TUid::Uid(0x10008D39));//bookmark
     appUid.Append(TUid::Uid(0x2002BCC0));//files
 
     for (int i = 0; i < appUid.Count(); i++)
         {
-        mIconArray.append(getAppIconFromAppId(appUid[i]));
+        TRAP_IGNORE(mIconArray.append(getAppIconFromAppIdL(appUid[i])));
         }
 #ifdef OST_TRACE_COMPILER_IN_USE 
     //start() the timers to avoid worrying abt having to start()/restart() later
@@ -311,16 +317,8 @@
                 SLOT(startNewSearch(QString)));
         connect(mSearchPanel, SIGNAL(searchOptionsClicked()), this,
                 SLOT(setSettings()));
-        connect(mSearchPanel, SIGNAL(exitClicked()), this,
-                SLOT(cancelSearch()));
         }
-    if (mModel)
-        {
-        connect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this,
-                SLOT(getrowsInserted()));
-        connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this,
-                SLOT(getrowsRemoved()));
-        }
+
     }
 // ---------------------------------------------------------------------------
 // SearchProgressiveState::deActivateSignals
@@ -347,15 +345,6 @@
                 SLOT(startNewSearch(QString)));
         disconnect(mSearchPanel, SIGNAL(searchOptionsClicked()), this,
                 SLOT(setSettings()));
-        disconnect(mSearchPanel, SIGNAL(exitClicked()), this,
-                SLOT(cancelSearch()));
-        }
-    if (mModel)
-        {
-        disconnect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this,
-                SLOT(getrowsInserted()));
-        disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this,
-                SLOT(getrowsRemoved()));
         }
     }
 // ---------------------------------------------------------------------------
@@ -397,18 +386,6 @@
     QStringList liststr;
     QString secondrow = aDoc->excerpt();
     QString firstrow;
-    //-------------- html tag creation-------------------
-   /* QString htmlTagPre = QString("<u>");
-    QString htmlTagPost = QString("</u>");
-    int insertpt = secondrow.indexOf(mOriginalString, 0, Qt::CaseInsensitive);
-    if (insertpt >= 0)
-        {
-        secondrow.insert(insertpt, htmlTagPre);
-
-        secondrow.insert(insertpt + mOriginalString.length()
-                + htmlTagPre.length(), htmlTagPost);
-        }
-*/    //--------------------Html Tag Creation completed------------
     QStandardItem* listitem = new QStandardItem();
 
     if (aDoc->baseAppClass().contains("contact"))
@@ -504,6 +481,7 @@
         {
         firstrow.append(filterDoc(aDoc, "Subject"));
         liststr << firstrow << secondrow;
+        listitem->setData(mIconArray.at(5), Qt::DecorationRole);
         }
     else if (aDoc->baseAppClass().contains("calendar"))
         {
@@ -531,8 +509,8 @@
         firstrow.append(filterDoc(aDoc, "Name"));
         liststr << firstrow;
         bool ok;
-        listitem->setData(getAppIconFromAppId(TUid::Uid(aDoc->docId().toInt(
-                &ok, 16))), Qt::DecorationRole);
+        TRAP_IGNORE(listitem->setData(getAppIconFromAppIdL(TUid::Uid(aDoc->docId().toInt(
+                                                &ok, 16))), Qt::DecorationRole));
         }
     else if (aDoc->baseAppClass().contains("bookmark"))
         {
@@ -542,6 +520,7 @@
             firstrow = "UnKnown";
             }
         liststr << firstrow << secondrow;
+        listitem->setData(mIconArray.at(8), Qt::DecorationRole);
         }
     else if (aDoc->baseAppClass().contains("file"))
         {
@@ -555,20 +534,7 @@
     listitem->setData(aDoc->docId(), Qt::UserRole);
     listitem->setData(aDoc->baseAppClass(), Qt::UserRole + 1);
     mModel->appendRow(listitem);
-    delete aDoc;
-    }
-// ---------------------------------------------------------------------------
-// SearchProgressiveState::getSettingCategory
-// ---------------------------------------------------------------------------
-void SearchProgressiveState::getSettingCategory(int item, bool avalue)
-    {
-    mSelectedCategory.insert(item, avalue);
-    }
-// ---------------------------------------------------------------------------
-// SearchProgressiveState::getrowsInserted
-// ---------------------------------------------------------------------------
-void SearchProgressiveState::getrowsInserted()
-    {
+
     mResultparser++;
     if (mResultparser < mResultcount)
         {
@@ -580,30 +546,14 @@
         PERF_CAT_GETDOC_ACCUMULATOR_ENDLOG
         searchOnCategory(mSearchString);
         }
+    delete aDoc;
     }
 // ---------------------------------------------------------------------------
-// SearchProgressiveState::getrowsRemoved
+// SearchProgressiveState::getSettingCategory
 // ---------------------------------------------------------------------------
-void SearchProgressiveState::getrowsRemoved()
+void SearchProgressiveState::getSettingCategory(int item, bool avalue)
     {
-    if (mModel->rowCount() != 0)
-        {
-        mModel->removeRow(0);
-        }
-    else
-        {
-        mListView->reset();
-        if (mOriginalString.length())
-            {
-            mDatabasecount = 0;
-            /*mSearchString = "$prefix(\"";
-            mSearchString += mOriginalString;
-            mSearchString += "\")";*/
-            mSearchString = mOriginalString;
-            mSearchString.append('*');
-            searchOnCategory(mSearchString);
-            }
-        }
+    mSelectedCategory.insert(item, avalue);
     }
 // ---------------------------------------------------------------------------
 // SearchProgressiveState::openResultitem
@@ -611,6 +561,8 @@
 void SearchProgressiveState::openResultitem(QModelIndex index)
     {
     QStandardItem* item = mModel->itemFromIndex(index);
+    if (item == NULL)
+        return;
     QList<QVariant> args;
     bool t;
     mRequest = NULL;
@@ -646,46 +598,28 @@
         }
     else if (item->data(Qt::UserRole + 1).toString().contains("applications"))
         {
-        TRAPD(err,
-                    {LaunchApplicationL(TUid::Uid((item->data(Qt::UserRole)).toString().toInt(&t, 16)));})
-        if (err == KErrNone)
-            {
-            }
+        TRAP_IGNORE(LaunchApplicationL(TUid::Uid((item->data(Qt::UserRole)).toString().toInt(&t, 16))));
         }
     else if (item->data(Qt::UserRole + 1).toString().contains("file"))
         {
+        QString uid = item->data(Qt::UserRole).toString();
+        QFile file(uid);
+        mRequest = mAiwMgr->create(file, false);
+        args << file.fileName();
         }
-    else if (item->data(Qt::UserRole + 1).toString().contains("video"))
-        {
-        mRequest = mAiwMgr->create("com.nokia.videos", "IVideoView",
-                "playMedia(QString)", false);
-
-        QString uid = getDrivefromMediaId(
-                item->data(Qt::UserRole + 2).toString());
-        uid.append(':');
-        uid.append(item->data(Qt::UserRole).toString());
-        args << uid;
-        }
-    else if (item->data(Qt::UserRole + 1).toString().contains("audio"))
+    else if ((item->data(Qt::UserRole + 1).toString().contains("video"))
+            || (item->data(Qt::UserRole + 1).toString().contains("audio"))
+            || (item->data(Qt::UserRole + 1).toString().contains("image")))
         {
         QString uid = getDrivefromMediaId(
                 item->data(Qt::UserRole + 2).toString());
         uid.append(':');
         uid.append(item->data(Qt::UserRole).toString());
-        mRequest = mAiwMgr->create("musicplayer",
-                "com.nokia.symbian.IFileView", "view(QString)", false);
-        args << uid;
+        QFile file(uid);
+        mRequest = mAiwMgr->create(file, false);
+        args << file.fileName();
         }
-    else if (item->data(Qt::UserRole + 1).toString().contains("image"))
-        {
-        QString uid = getDrivefromMediaId(
-                item->data(Qt::UserRole + 2).toString());
-        uid.append(':');
-        uid.append(item->data(Qt::UserRole).toString());
-        mRequest = mAiwMgr->create("com.nokia.services.media",
-                "com.nokia.symbian.IFileView", "view(QString)", false);
-        args << uid;
-        }
+
     else if (item->data(Qt::UserRole + 1).toString().contains("notes"))
         {
         if (!notesEditor)
@@ -775,7 +709,7 @@
     {
     if (mModel)
         {
-        mModel->removeRows(0, mModel->rowCount());
+        mModel->clear();
         }
     }
 // ---------------------------------------------------------------------------
@@ -840,6 +774,11 @@
             {
             PERF_CAT_API_TIME_RESTART
             mSearchHandler->searchAsync(aKeyword, "_aggregate");
+            
+            }
+        else
+            {
+            searchOnCategory(mSearchString);
             }
         }
     else if (mDatabasecount >= mTemplist.count())
@@ -868,16 +807,16 @@
         {
         clear();
         }
-    else if (mOriginalString.length())
+    if (mOriginalString.length())
         {
         mDatabasecount = 0;
         mLinkindex = 0;
         //Prefix query
-        /*mSearchString = "$prefix(\"";
+        mSearchString = "$prefix(\"";
         mSearchString += mOriginalString;
-        mSearchString += "\")";*/
-        mSearchString = mOriginalString;
-        mSearchString.append('*');
+        mSearchString += "\")";
+        /*mSearchString = mOriginalString;
+         mSearchString.append('*');*/
         searchOnCategory(mSearchString);
         }
     }
@@ -997,84 +936,108 @@
         }
     }
 // ---------------------------------------------------------------------------
-// SearchProgressiveState::cancelSearch
-// ---------------------------------------------------------------------------
-void SearchProgressiveState::cancelSearch()
-    {
-    for (int i = 0; i < mSearchHandlerList.count(); i++)
-        {
-        mSearchHandlerList.at(i)->cancelLastSearch();
-        }
-    }
-// ---------------------------------------------------------------------------
 // SearchProgressiveState::getAppIconFromAppId
 // ---------------------------------------------------------------------------
-HbIcon SearchProgressiveState::getAppIconFromAppId(TUid auid)
+HbIcon SearchProgressiveState::getAppIconFromAppIdL(TUid auid)
     {
     HbIcon icon;
-    CAknIcon* aknIcon = NULL;
-    CFbsBitmap* bitmap = NULL;
-    CFbsBitmap* mask = NULL;
-    QPixmap pixmap;
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    if (skin)
+    RApaLsSession apaLsSession;
+    CleanupClosePushL(apaLsSession);
+    User::LeaveIfError(apaLsSession.Connect());
+    CApaAppServiceInfoArray* skinArray(NULL);
+    TRAPD( err, skinArray = apaLsSession.GetAppServiceOpaqueDataLC(auid, TUid::Uid(0x2002DCF3));
+            if (err == KErrNone && skinArray )
+                {
+                TArray<TApaAppServiceInfo> tmpArray( skinArray->Array() );
+                if ( tmpArray.Count() )
+                    {
+                    TPtrC8 opaque(tmpArray[0].OpaqueData());
+                    const TPtrC16 iconName((TText16*) opaque.Ptr(),(opaque.Length()+1)>>1);
+                    icon = HbIcon( XQConversions:: s60DescToQString( iconName ) );
+                    }
+                }
+            CleanupStack::PopAndDestroy(skinArray);
+    );
+    if (icon.isNull() || !(icon.size().isValid()))
         {
-        TRAPD( err,
-                    {
-                    AknsUtils::CreateAppIconLC( skin, auid,
-                            EAknsAppIconTypeList, bitmap, mask );
-                    CleanupStack::Pop(2); //for trap
-                    }
-        );
-        if (err == KErrNone)
+        TSize iconSize(mListViewIconSize.width(), mListViewIconSize.height());
+        CApaMaskedBitmap* apaMaskedBitmap = CApaMaskedBitmap::NewLC();
+        TInt err = apaLsSession.GetAppIcon(auid, iconSize, *apaMaskedBitmap);
+        TInt iconsCount(0);
+        apaLsSession.NumberOfOwnDefinedIcons(auid, iconsCount);
+        QPixmap pixmap;
+        if ((err == KErrNone) && (iconsCount > 0))
             {
-            TRAPD( err1,
-                        {aknIcon = CAknIcon::NewL();
-                        aknIcon->SetBitmap(bitmap);
-                        aknIcon->SetMask(mask);});
-            if (err1 == KErrNone)
-                {
-                }
-            }
-        }
-    if (aknIcon)
-        {
-        //need to disable compression to properly convert the bitmap
-        AknIconUtils::DisableCompression(aknIcon->Bitmap());
-        AknIconUtils::SetSize(aknIcon->Bitmap(), TSize(mListViewIconSize.width(),
-                mListViewIconSize.height()),
-                EAspectRatioPreservedAndUnusedSpaceRemoved);
-        if (aknIcon->Bitmap()->Header().iCompression == ENoBitmapCompression)
-            {
-            pixmap = fromSymbianCFbsBitmap(aknIcon->Bitmap());
-            QPixmap mask = fromSymbianCFbsBitmap(aknIcon->Mask());
-            pixmap.setAlphaChannel(mask);
+            fromBitmapAndMaskToPixmapL(apaMaskedBitmap,
+                    apaMaskedBitmap->Mask(), pixmap);
+            pixmap = pixmap.scaled(mListViewIconSize,
+                    Qt::KeepAspectRatioByExpanding);
+            icon = HbIcon(QIcon(pixmap));
             }
         else
             {
-            CFbsBitmap *temp(NULL);
-            TRAPD( err,
-                        {temp = copyBitmapLC(aknIcon->Bitmap());
-                        pixmap = fromSymbianCFbsBitmap(temp);
-                        CleanupStack::PopAndDestroy();});
-            if (err == KErrNone)
+            HBufC* fileNameFromApparc;
+            TInt err2 = apaLsSession.GetAppIcon(auid, fileNameFromApparc);
+            CleanupStack::PushL(fileNameFromApparc);
+            if (err2 == KErrNone)
                 {
-                TRAPD( err1,
-                            {temp = copyBitmapLC(aknIcon->Mask());
-                            QPixmap mask = fromSymbianCFbsBitmap(temp);
-                            CleanupStack::PopAndDestroy();
-                            pixmap.setAlphaChannel(mask);});
-                if (err1 == KErrNone)
+                QString fileName = XQConversions::s60DescToQString(
+                        fileNameFromApparc->Des());
+                if (fileName.contains(QString(".mif")))
                     {
+                    TPtr ptr(fileNameFromApparc->Des());
+                    GetPixmapByFilenameL(ptr, mListViewIconSize, pixmap);
+                    pixmap = pixmap.scaled(mListViewIconSize,
+                            Qt::KeepAspectRatioByExpanding);
+                    icon = HbIcon(QIcon(pixmap));
                     }
                 }
+            CleanupStack::Pop(fileNameFromApparc);
             }
-        pixmap = pixmap.scaled(mListViewIconSize, Qt::KeepAspectRatioByExpanding);
-        icon = HbIcon(QIcon(pixmap));
+        CleanupStack::PopAndDestroy(apaMaskedBitmap);
         }
+    CleanupStack::PopAndDestroy(&apaLsSession);
+    
+    if (icon.isNull() || !(icon.size().isValid())) 
+            icon = HbIcon("qtg_large_application");
     return icon;
     }
 // ---------------------------------------------------------------------------
+// SearchProgressiveState::GetPixmapByFilenameL
+// ---------------------------------------------------------------------------
+void SearchProgressiveState::GetPixmapByFilenameL(TDesC& fileName,
+        const QSize &size, QPixmap& pixmap)
+    {
+    CFbsBitmap *bitamp(0);
+    CFbsBitmap *mask(0);
+
+    if (AknIconUtils::IsMifFile(fileName))
+        {
+        // SVG icon
+        // SVG always has only one icon
+        TInt bitmapIndex = 0;
+        TInt maskIndex = 1;
+        AknIconUtils::ValidateLogicalAppIconId(fileName, bitmapIndex,
+                maskIndex);
+
+        AknIconUtils::CreateIconLC(bitamp, mask, fileName, bitmapIndex,
+                maskIndex);
+        }
+
+    AknIconUtils::DisableCompression(bitamp);
+    AknIconUtils::SetSize(bitamp, TSize(size.width(), size.height()),
+            EAspectRatioPreservedAndUnusedSpaceRemoved);
+
+    AknIconUtils::DisableCompression(mask);
+    AknIconUtils::SetSize(mask, TSize(size.width(), size.height()),
+            EAspectRatioPreservedAndUnusedSpaceRemoved);
+
+    fromBitmapAndMaskToPixmapL(bitamp, mask, pixmap);
+
+    // bitmap and icon, AknsUtils::CreateIconLC doesn't specify the order
+    CleanupStack::Pop(2);
+    }
+// ---------------------------------------------------------------------------
 // SearchProgressiveState::TDisplayMode2Format
 // ---------------------------------------------------------------------------
 QImage::Format SearchProgressiveState::TDisplayMode2Format(TDisplayMode mode)
@@ -1147,6 +1110,31 @@
     return bmp;
     }
 // ---------------------------------------------------------------------------
+// SearchProgressiveState::fromBitmapAndMaskToPixmapL
+// ---------------------------------------------------------------------------
+void SearchProgressiveState::fromBitmapAndMaskToPixmapL(
+        CFbsBitmap* fbsBitmap, CFbsBitmap* fbsMask, QPixmap& pixmap)
+    {
+    if (fbsBitmap->Header().iCompression == ENoBitmapCompression)
+        {
+        pixmap = fromSymbianCFbsBitmap(fbsBitmap);
+        QPixmap mask = fromSymbianCFbsBitmap(fbsMask);
+        pixmap.setAlphaChannel(mask);
+        }
+    else
+        { // we need special handling for icons in 9.2 (NGA)
+        // let's hope that in future it will be in QT code
+        CFbsBitmap *temp(NULL);
+        temp = copyBitmapLC(fbsBitmap);
+        pixmap = fromSymbianCFbsBitmap(temp);
+        CleanupStack::PopAndDestroy();
+        temp = copyBitmapLC(fbsMask);
+        QPixmap mask = fromSymbianCFbsBitmap(temp);
+        CleanupStack::PopAndDestroy();
+        pixmap.setAlphaChannel(mask);
+        }
+    }
+// ---------------------------------------------------------------------------
 // SearchProgressiveState::filterDoc
 // ---------------------------------------------------------------------------
 QString SearchProgressiveState::filterDoc(const QCPixDocument* aDoc,
--- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/inc/t_searchstateprovider.h	Tue May 18 12:26:30 2010 +0100
+++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/inc/t_searchstateprovider.h	Wed Jun 23 17:22:18 2010 +0100
@@ -62,18 +62,13 @@
     void test_customizeGoButton();
     void testsettingsaction();
     void testcancelSearch();
-    void testgetrowsInserted();
-    void testgetrowsRemoved();
     void testhandleOkError();
-    void test_viewingCompleted();
-    void testsearchOnCategory();
     void testclear();
     void testnoResultsFound();
     void testcreateSuggestionLink();
     void testTDisplayMode2Format();
-    void testfromSymbianCFbsBitmap();
     void testgetDrivefromMediaId();
-    void testLaunchApplicationL();
+    void testLaunchApplication();
     void testfilterDoc();
 
     /**
--- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchinitstate.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchinitstate.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #include "t_searchstateprovider.h"
 #include "searchinitstate.h"
 // ---------------------------------------------------------------------------
--- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchprogressivestate.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchprogressivestate.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #include "t_searchstateprovider.h"
 #include "searchprogressivestate.h"
 #include <qsignalspy.h>
@@ -85,6 +69,7 @@
     progressiveState->getSettingCategory(6, true);
     progressiveState->getSettingCategory(7, true);
     progressiveState->setSelectedCategories();
+    QVERIFY(progressiveState->mTemplist.count());
     delete progressiveState;
     }
 void SearchStateProviderTest::testgetAppIconFromAppId()
@@ -112,16 +97,22 @@
     SearchProgressiveState* progressiveState = new SearchProgressiveState();
     QEvent *event = new QEvent(QEvent::None);
     progressiveState->onEntry(event);
-    progressiveState->mSearchHandler
-            = progressiveState->mSearchHandlerList.at(1);
-    progressiveState->onAsyncSearchComplete(-1, 10);
-    QCOMPARE(progressiveState->mResultcount,0);
+    progressiveState->getSettingCategory(0, true);
+    progressiveState->getSettingCategory(1, true);
+    progressiveState->getSettingCategory(2, true);
+    progressiveState->getSettingCategory(3, true);
+    progressiveState->getSettingCategory(4, true);
+    progressiveState->getSettingCategory(5, true);
+    progressiveState->getSettingCategory(6, true);
+    progressiveState->getSettingCategory(7, true);
 
-    progressiveState->onAsyncSearchComplete(0, -1);
-    QCOMPARE(progressiveState->mResultcount,0);
-    progressiveState->mSearchHandler->searchAsync("txt", "_aggregate");
-    QTest::qWait(100);
-    //QCOMPARE(progressiveState->mResultcount,10);
+    progressiveState->mSearchHandler
+            = progressiveState->mSearchHandlerList.at(2);
+   
+    
+    progressiveState->mSearchHandler->searchAsync("jpg*", "_aggregate");
+    QTest::qWait(2000);
+    QVERIFY(progressiveState->mResultcount);
 
     delete progressiveState;
     //  delete wind;
@@ -143,7 +134,7 @@
 
     progressiveState->onGetDocumentComplete(-1, NULL);
     QCOMPARE(progressiveState->mModel->rowCount(),0);
-    progressiveState->startNewSearch("d");
+    progressiveState->startNewSearch("contact");
     QTest::qWait(2000);
     int i = progressiveState->mModel->rowCount();
     QVERIFY(progressiveState->mModel->rowCount());
@@ -159,14 +150,37 @@
     SearchProgressiveState* progressiveState = new SearchProgressiveState();
     QEvent *event = new QEvent(QEvent::None);
 
-    progressiveState->mSelectedCategory.insert(1, true);
+    progressiveState->getSettingCategory(0, true);
+    progressiveState->getSettingCategory(1, true);
+    progressiveState->getSettingCategory(2, true);
+    progressiveState->getSettingCategory(3, true);
+    progressiveState->getSettingCategory(4, true);
+    progressiveState->getSettingCategory(5, true);
+    progressiveState->getSettingCategory(6, true);
+    progressiveState->getSettingCategory(7, true);
+
     progressiveState->onEntry(event);
-    progressiveState->startNewSearch("a");
-    QTest::qWait(100);
-    progressiveState->cancelSearch();
+    progressiveState->startNewSearch("Creat");
+    QTest::qWait(2000);
+
     //code for getting the model index from model
-    QModelIndex index = progressiveState->mModel->index(0, 0);
-    progressiveState->openResultitem(index);
+    /*QModelIndex index = progressiveState->mModel->index(0, 0);
+     progressiveState->openResultitem(index);
+     QTest::qWait(200);
+     progressiveState->startNewSearch("jpg");
+     QTest::qWait(200);
+     progressiveState->cancelSearch();
+     //code for getting the model index from model
+     index = progressiveState->mModel->index(0, 0);
+     progressiveState->openResultitem(index);
+     
+     QTest::qWait(200);
+     progressiveState->startNewSearch("note");
+     QTest::qWait(200);
+     progressiveState->cancelSearch();
+     //code for getting the model index from model
+     index = progressiveState->mModel->index(3, 0);
+     progressiveState->openResultitem(index);*/
     delete progressiveState;
     //   delete wind;    
     }
@@ -181,8 +195,15 @@
     QEvent *event = new QEvent(QEvent::None);
     progressiveState->onEntry(event);
 
+    progressiveState->getSettingCategory(0, false);
+    progressiveState->getSettingCategory(1, false);
+    progressiveState->getSettingCategory(2, false);
+    progressiveState->getSettingCategory(4, false);
+    progressiveState->getSettingCategory(5, false);
+    progressiveState->getSettingCategory(6, false);
+    progressiveState->getSettingCategory(7, false);
     progressiveState->getSettingCategory(3, true);
-    QCOMPARE(progressiveState->mSelectedCategory.count(),1);
+    QCOMPARE(progressiveState->mSelectedCategory.count(),8);
     delete progressiveState;
     //   delete wind;
     }
@@ -204,9 +225,19 @@
     {
     SearchProgressiveState* progressiveState = new SearchProgressiveState();
     QEvent *event = new QEvent(QEvent::None);
-    progressiveState->mSelectedCategory.insert(5, true);
+
+    progressiveState->getSettingCategory(0, true);
+    progressiveState->getSettingCategory(1, true);
+    progressiveState->getSettingCategory(2, true);
+    progressiveState->getSettingCategory(3, true);
+    progressiveState->getSettingCategory(4, true);
+    progressiveState->getSettingCategory(5, true);
+    progressiveState->getSettingCategory(6, true);
+    progressiveState->getSettingCategory(7, true);
     progressiveState->onEntry(event);
-    progressiveState->startNewSearch("d");
+    progressiveState->startNewSearch("jpg");
+    QTest::qWait(2000);
+    QVERIFY(progressiveState->mModel->rowCount());
     delete progressiveState;
     }
 void SearchStateProviderTest::test_customizeGoButton()
@@ -234,7 +265,6 @@
     QCOMPARE(progressiveState->mResultcount, 0);
     progressiveState->settingsaction(true);
     QTest::qWait(50);
-    progressiveState->cancelSearch();
     QCOMPARE(progressiveState->mResultcount, 0);
     delete progressiveState;
     }
@@ -249,18 +279,10 @@
     progressiveState->onEntry(event);
     progressiveState->getSettingCategory(5, true);
     progressiveState->startNewSearch("d");
-    progressiveState->cancelSearch();
     delete progressiveState;
 
     }
-void SearchStateProviderTest::testgetrowsInserted()
-    {
 
-    }
-void SearchStateProviderTest::testgetrowsRemoved()
-    {
-
-    }
 void SearchStateProviderTest::testhandleOkError()
     {
     SearchProgressiveState* progressiveState = new SearchProgressiveState();
@@ -272,17 +294,7 @@
     progressiveState->handleError(ret, QString());
     delete progressiveState;
     }
-void SearchStateProviderTest::test_viewingCompleted()
-    {
 
-    }
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-void SearchStateProviderTest::testsearchOnCategory()
-    {
-
-    }
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
 //
@@ -361,10 +373,10 @@
 
     delete progressiveState;
     }
-void SearchStateProviderTest::testfromSymbianCFbsBitmap()
-    {
 
-    }
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+//
 void SearchStateProviderTest::testgetDrivefromMediaId()
     {
     SearchProgressiveState* progressiveState = new SearchProgressiveState();
@@ -387,12 +399,12 @@
     //QVERIFY(uid.length());
     delete progressiveState;
     }
-void SearchStateProviderTest::testLaunchApplicationL()
+void SearchStateProviderTest::testLaunchApplication()
     {
     SearchProgressiveState* progressiveState = new SearchProgressiveState();
     QEvent *event = new QEvent(QEvent::None);
     progressiveState->onEntry(event);
-    progressiveState->LaunchApplicationL(TUid::Uid(0x20011383));
+    // progressiveState->LaunchApplicationL(TUid::Uid(0x20011383));
     delete progressiveState;
     }
 // ---------------------------------------------------------------------------
--- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchsettingsstate.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchsettingsstate.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #include "t_searchstateprovider.h"
 #include "searchsettingsstate.h"
 
--- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_settingswidget.cpp	Tue May 18 12:26:30 2010 +0100
+++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_settingswidget.cpp	Wed Jun 23 17:22:18 2010 +0100
@@ -1,19 +1,3 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
 #include "t_searchstateprovider.h"
 #include "settingswidget.h"
 #include <qlist.h>
--- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/t_searchstateprovider.pro	Tue May 18 12:26:30 2010 +0100
+++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/t_searchstateprovider.pro	Wed Jun 23 17:22:18 2010 +0100
@@ -46,7 +46,7 @@
 LIBS += -lapgrfx
 LIBS += -lbitgdi
 LIBS += -lnoteseditor
-    
+LIBS += -lxqutils    
 CONFIG += qtestlib \
           symbian_test \
           debug_and_release \
Binary file searchui/tsrc/indexdb/data/applications/_1/_0.cfs has changed
Binary file searchui/tsrc/indexdb/data/applications/_1/deletable has changed
Binary file searchui/tsrc/indexdb/data/applications/_1/segments has changed
Binary file searchui/tsrc/indexdb/data/bookmark/_1/_0.cfs has changed
Binary file searchui/tsrc/indexdb/data/bookmark/_1/deletable has changed
Binary file searchui/tsrc/indexdb/data/bookmark/_1/segments has changed
Binary file searchui/tsrc/indexdb/data/calendar/_1/_0.cfs has changed
Binary file searchui/tsrc/indexdb/data/calendar/_1/deletable has changed
Binary file searchui/tsrc/indexdb/data/calendar/_1/segments has changed
Binary file searchui/tsrc/indexdb/data/contact/_1/_0.cfs has changed
Binary file searchui/tsrc/indexdb/data/contact/_1/deletable has changed
Binary file searchui/tsrc/indexdb/data/contact/_1/segments has changed
Binary file searchui/tsrc/indexdb/data/cpixcontentinfo.sq has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/searchui/tsrc/indexdb/data/cpixreg.txt	Wed Jun 23 17:22:18 2010 +0100
@@ -0,0 +1,31 @@
+@0:root applications=C:\Private\2001f6f7\indexing\indexdb\root\applications
+@0:root bookmark=C:\Private\2001f6f7\indexing\indexdb\root\bookmark
+@0:root calendar=C:\Private\2001f6f7\indexing\indexdb\root\calendar
+@0:root contact=C:\Private\2001f6f7\indexing\indexdb\root\contact
+@0:root notes=C:\Private\2001f6f7\indexing\indexdb\root\notes
+@c:root file content=C:\Private\2001f6f7\indexing\indexdb\root\file\content
+@c:root file folder=C:\Private\2001f6f7\indexing\indexdb\root\file\folder
+@c:root media audio=C:\Private\2001f6f7\indexing\indexdb\root\media\audio
+@c:root media image=C:\Private\2001f6f7\indexing\indexdb\root\media\image
+@c:root media video=C:\Private\2001f6f7\indexing\indexdb\root\media\video
+@c:root msg smsmms=C:\Private\2001f6f7\indexing\indexdb\root\msg\smsmms
+@t:root file content=T:\Private\2001f6f7\indexing\indexdb\root\file\content
+@t:root file folder=T:\Private\2001f6f7\indexing\indexdb\root\file\folder
+@t:root media audio=T:\Private\2001f6f7\indexing\indexdb\root\media\audio
+@t:root media image=T:\Private\2001f6f7\indexing\indexdb\root\media\image
+@t:root media video=T:\Private\2001f6f7\indexing\indexdb\root\media\video
+@u:root file content=U:\Private\2001f6f7\indexing\indexdb\root\file\content
+@u:root file folder=U:\Private\2001f6f7\indexing\indexdb\root\file\folder
+@u:root media audio=U:\Private\2001f6f7\indexing\indexdb\root\media\audio
+@u:root media image=U:\Private\2001f6f7\indexing\indexdb\root\media\image
+@u:root media video=U:\Private\2001f6f7\indexing\indexdb\root\media\video
+@x:root file content=X:\Private\2001f6f7\indexing\indexdb\root\file\content
+@x:root file folder=X:\Private\2001f6f7\indexing\indexdb\root\file\folder
+@x:root media audio=X:\Private\2001f6f7\indexing\indexdb\root\media\audio
+@x:root media image=X:\Private\2001f6f7\indexing\indexdb\root\media\image
+@x:root media video=X:\Private\2001f6f7\indexing\indexdb\root\media\video
+@y:root file content=Y:\Private\2001f6f7\indexing\indexdb\root\file\content
+@y:root file folder=Y:\Private\2001f6f7\indexing\indexdb\root\file\folder
+@y:root media audio=Y:\Private\2001f6f7\indexing\indexdb\root\media\audio
+@y:root media image=Y:\Private\2001f6f7\indexing\indexdb\root\media\image
+@y:root media video=Y:\Private\2001f6f7\indexing\indexdb\root\media\video
Binary file searchui/tsrc/indexdb/data/file/content/_0/_0.cfs has changed
Binary file searchui/tsrc/indexdb/data/file/content/_0/deletable has changed
Binary file searchui/tsrc/indexdb/data/file/content/_0/segments has changed
Binary file searchui/tsrc/indexdb/data/file/folder/_1/_0.cfs has changed
Binary file searchui/tsrc/indexdb/data/file/folder/_1/deletable has changed
Binary file searchui/tsrc/indexdb/data/file/folder/_1/segments has changed
Binary file searchui/tsrc/indexdb/data/media/audio/_1/_0.cfs has changed
Binary file searchui/tsrc/indexdb/data/media/audio/_1/deletable has changed
Binary file searchui/tsrc/indexdb/data/media/audio/_1/segments has changed
Binary file searchui/tsrc/indexdb/data/media/image/_1/_0.cfs has changed
Binary file searchui/tsrc/indexdb/data/media/image/_1/deletable has changed
Binary file searchui/tsrc/indexdb/data/media/image/_1/segments has changed
Binary file searchui/tsrc/indexdb/data/media/video/_0/_0.cfs has changed
Binary file searchui/tsrc/indexdb/data/media/video/_0/deletable has changed
Binary file searchui/tsrc/indexdb/data/media/video/_0/segments has changed
Binary file searchui/tsrc/indexdb/data/msg/smsmms/_1/_0.cfs has changed
Binary file searchui/tsrc/indexdb/data/msg/smsmms/_1/deletable has changed
Binary file searchui/tsrc/indexdb/data/msg/smsmms/_1/segments has changed
Binary file searchui/tsrc/indexdb/data/notes/_1/_0.cfs has changed
Binary file searchui/tsrc/indexdb/data/notes/_1/deletable has changed
Binary file searchui/tsrc/indexdb/data/notes/_1/segments has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/searchui/tsrc/indexdb/indexdb.pro	Wed Jun 23 17:22:18 2010 +0100
@@ -0,0 +1,43 @@
+TEMPLATE = subdirs
+symbian{
+    BLD_INF_RULES.prj_exports += "data/applications/_1/_0.cfs      \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\applications\_1\_0.cfs" \
+                                 "data/applications/_1/deletable   \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\applications\_1\deletable" \
+                                 "data/applications/_1/segments    \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\applications\_1\segments" \
+                                 "data/bookmark/_1/_0.cfs      \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\bookmark\_1\_0.cfs" \
+                                 "data/bookmark/_1/deletable   \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\bookmark\_1\deletable" \
+                                 "data/bookmark/_1/segments    \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\bookmark\_1\segments" \
+                                 "data/calendar/_1/_0.cfs      \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\calendar\_1\_0.cfs" \
+                                 "data/calendar/_1/deletable   \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\calendar\_1\deletable" \
+                                 "data/calendar/_1/segments    \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\calendar\_1\segments" \
+                                 "data/contact/_1/_0.cfs      \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\contact\_1\_0.cfs" \
+                                 "data/contact/_1/deletable   \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\contact\_1\deletable" \
+                                 "data/contact/_1/segments    \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\contact\_1\segments" \
+                                 "data/file/content/_0/_0.cfs      \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\file\content\_0\_0.cfs" \
+                                 "data/file/content/_0/deletable   \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\file\content\_0\deletable" \
+                                 "data/file/content/_0/segments    \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\file\content\_0\segments" \
+                                 "data/file/folder/_1/_0.cfs      \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\file\folder\_1\_0.cfs" \
+                                 "data/file/folder/_1/deletable   \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\file\folder\_1\deletable" \
+                                 "data/file/folder/_1/segments    \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\file\folder\_1\segments" \
+                                 "data/media/audio/_1/_0.cfs      \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\media\audio\_1\_0.cfs" \
+                                 "data/media/audio/_1/deletable   \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\media\audio\_1\deletable" \
+                                 "data/media/audio/_1/segments    \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\media\audio\_1\segments" \
+                                 "data/media/image/_1/_0.cfs      \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\media\image\_1\_0.cfs" \
+                                 "data/media/image/_1/deletable   \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\media\image\_1\deletable" \
+                                 "data/media/image/_1/segments    \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\media\image\_1\segments" \
+                                 "data/media/video/_0/_0.cfs      \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\media\video\_0\_0.cfs" \
+                                 "data/media/video/_0/deletable   \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\media\video\_0\deletable" \
+                                 "data/media/video/_0/segments    \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\media\video\_0\segments" \
+                                 "data/msg/smsmms/_1/_0.cfs      \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\msg\smsmms\_1\_0.cfs" \
+                                 "data/msg/smsmms/_1/deletable   \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\msg\smsmms\_1\deletable" \
+                                 "data/msg/smsmms/_1/segments    \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\msg\smsmms\_1\segments" \
+                                 "data/notes/_1/_0.cfs      \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\notes\_1\_0.cfs" \
+                                 "data/notes/_1/deletable   \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\notes\_1\deletable" \
+                                 "data/notes/_1/segments    \epoc32\winscw\c\private\2001f6f7\indexing\indexdb\root\notes\_1\segments" \
+                                 "data/cpixreg.txt \epoc32\winscw\c\private\2001f6f7\cpixreg.txt" \
+                                 "data/cpixreg.txt \epoc32\winscw\c\private\2001f6f7\clucenelockdir\1.txt" \
+                                 "data/cpixcontentinfo.sq \epoc32\winscw\c\private\2001f6fb\cpixcontentinfo.sq"
+                                
+                                 
+                                 
+                                 
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/searchui/tsrc/tsrc.pro	Wed Jun 23 17:22:18 2010 +0100
@@ -0,0 +1,31 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+TEMPLATE = subdirs
+
+SUBDIRS  += indexdb \ 
+../indevicehandler/tsrc/t_indevicehandler \
+	   ../stateproviders/searchstateprovider/tsrc/t_searchstateprovider
+	   
+           
+CONFIG  += ordered
+
+
+
+
+symbian: {
+    CONFIG += symbian_test
+}
--- a/sis/cpixsearchapp_stub.pkg	Tue May 18 12:26:30 2010 +0100
+++ b/sis/cpixsearchapp_stub.pkg	Wed Jun 23 17:22:18 2010 +0100
@@ -1,18 +1,3 @@
-;
-; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description: 
-;