Revision: 201021
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 11 Jun 2010 13:39:26 +0300
changeset 7 51d10d255e92
parent 5 3bc31ad99ee7
child 8 2f67eb14d003
child 11 773be20e0a25
Revision: 201021 Kit: 2010123
harvesterplugins/applications/traces/OstTraceDefinitions.h
harvesterplugins/bookmarks/traces/OstTraceDefinitions.h
harvesterplugins/calendar/src/ccalendarplugin.cpp
harvesterplugins/calendar/traces/OstTraceDefinitions.h
harvesterplugins/contacts/inc/ccontactsplugin.h
harvesterplugins/contacts/src/ccontactsplugin.cpp
harvesterplugins/contacts/traces/OstTraceDefinitions.h
harvesterplugins/file/fastfindfileserverplugin/traces/OstTraceDefinitions.h
harvesterplugins/file/src/cfileplugin.cpp
harvesterplugins/file/traces/OstTraceDefinitions.h
harvesterplugins/inc/s60performance.h
harvesterplugins/media/audio/traces/OstTraceDefinitions.h
harvesterplugins/media/image/src/cpixmediaimagedoc.cpp
harvesterplugins/media/image/traces/OstTraceDefinitions.h
harvesterplugins/media/video/traces/OstTraceDefinitions.h
harvesterplugins/messaging/email/qtemailfetcher/bwins/qtemailfetcheru.def
harvesterplugins/messaging/email/qtemailfetcher/eabi/qtemailfetcheru.def
harvesterplugins/messaging/email/qtemailfetcher/qtemailfetcher.cpp
harvesterplugins/messaging/email/qtemailfetcher/qtemailfetcher.h
harvesterplugins/messaging/email/src/cemailplugin.cpp
harvesterplugins/messaging/smsmms/src/cmessagedatahandler.cpp
harvesterplugins/messaging/smsmms/traces/OstTraceDefinitions.h
harvesterplugins/notes/src/notesplugin.cpp
harvesterplugins/notes/traces/OstTraceDefinitions.h
harvesterplugins/tsrc/harvesterplugintester/conf/harvesterplugintester.cfg
harvesterplugins/tsrc/harvesterplugintester/conf/square.jpg
harvesterplugins/tsrc/harvesterplugintester/group/bld.inf
harvesterplugins/tsrc/harvesterplugintester/inc/ccalendarobserver.h
harvesterplugins/tsrc/harvesterplugintester/inc/harvesterplugintester.h
harvesterplugins/tsrc/harvesterplugintester/src/ccalanderobserver.cpp
harvesterplugins/tsrc/harvesterplugintester/src/cmessagesessionobserver.cpp
harvesterplugins/tsrc/harvesterplugintester/src/harvesterplugintesterblocks.cpp
searchui/indevicehandler/tsrc/t_indevicehandler/src/t_indevicehandler.cpp
searchui/stateproviders/searchstateprovider/resources/searchstateprovider.docml
searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp
searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchinitstate.cpp
searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchprogressivestate.cpp
searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchsettingsstate.cpp
searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_settingswidget.cpp
searchui/tsrc/indexdb/indexdb.pro
sis/cpixsearchapp_stub.pkg
--- a/harvesterplugins/applications/traces/OstTraceDefinitions.h	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/applications/traces/OstTraceDefinitions.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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/traces/OstTraceDefinitions.h	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/bookmarks/traces/OstTraceDefinitions.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/calendar/src/ccalendarplugin.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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
--- a/harvesterplugins/calendar/traces/OstTraceDefinitions.h	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/calendar/traces/OstTraceDefinitions.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/contacts/inc/ccontactsplugin.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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,8 +103,12 @@
 	/**
 	 *  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
 	 */
@@ -103,7 +117,7 @@
 	/**
 	 *  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 );
+	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
--- a/harvesterplugins/contacts/src/ccontactsplugin.cpp	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/contacts/src/ccontactsplugin.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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 );
@@ -306,9 +328,9 @@
 // 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 )
+void CContactsPlugin::AddFieldToDocumentAndExcerptL(CSearchDocument& aDocument, CContactItemFieldSet& aFieldSet, TUid aFieldId, const TDesC& aFieldName, const TInt aConfig )
     {
-    AddFieldL( aDocument, aFieldSet, aFieldId, aFieldName );
+    AddFieldL( aDocument, aFieldSet, aFieldId, aFieldName, aConfig );
     AddToExcerptL( aDocument, aFieldSet, aFieldId, aFieldName );
     }
 
@@ -358,23 +380,23 @@
             /* 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 );
-            AddFieldL( *index_item, fieldSet, KUidContactFieldFamilyName, KContactsFamilyNameField );
+            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 );
-            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldJobTitle, KContactsJobTitleField );
+            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 ); 
+            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 );
+            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldAdditionalName, KContactsAdditionalNameField, CDocumentField::EStoreYes | CDocumentField::EIndexTokenized | CDocumentField::EIndexFreeText);
             AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldUrl, KContactsUrlField );
     
             AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldPostOffice, KContactsPostOfficeField );
@@ -384,16 +406,19 @@
             AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldPostcode, KContactsPostcodeField );
             AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldCountry, KContactsCountryField );
     
-            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldSpouse, KContactsSpouseField );
-            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldChildren, KContactsChildrenField );
-            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldClass, KContactsClassField );
-            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldFax, KContactsFaxField );				
+            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, KUidContactFieldGivenNamePronunciation, KContactsGivenNamePronunciationField );
-            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldFamilyNamePronunciation, KContactsFamilyNamePronunciationField );
-            AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldCompanyNamePronunciation, KContactsCompanyNamePronunciationField );
-            //left: Birthday; Anniversary (date kind of type), Picture, Logo..
-
+            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);
             }
         
@@ -450,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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/contacts/traces/OstTraceDefinitions.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/file/fastfindfileserverplugin/traces/OstTraceDefinitions.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/file/src/cfileplugin.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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* );
     
--- a/harvesterplugins/file/traces/OstTraceDefinitions.h	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/file/traces/OstTraceDefinitions.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/inc/s60performance.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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/traces/OstTraceDefinitions.h	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/media/audio/traces/OstTraceDefinitions.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/media/image/src/cpixmediaimagedoc.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -30,7 +30,7 @@
 #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()
--- a/harvesterplugins/media/image/traces/OstTraceDefinitions.h	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/media/image/traces/OstTraceDefinitions.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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/video/traces/OstTraceDefinitions.h	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/media/video/traces/OstTraceDefinitions.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/messaging/email/qtemailfetcher/bwins/qtemailfetcheru.def	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/messaging/email/qtemailfetcher/eabi/qtemailfetcheru.def	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/messaging/email/qtemailfetcher/qtemailfetcher.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/messaging/email/qtemailfetcher/qtemailfetcher.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/messaging/email/src/cemailplugin.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/messaging/smsmms/src/cmessagedatahandler.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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,7 +626,7 @@
 //
 HBufC* CMessageDataHandler::CreateExcerptLC(const TDesC& aFromAddress,
 											const CDesCArray& aRecipientArray,
-											const TDesC& aSubject,
+											const TDesC& /*aSubject*/,
 											const TDesC& aBodyText,
 											const TMsvId& aFolderId)
 	{
--- a/harvesterplugins/messaging/smsmms/traces/OstTraceDefinitions.h	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/messaging/smsmms/traces/OstTraceDefinitions.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/notes/src/notesplugin.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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
--- a/harvesterplugins/notes/traces/OstTraceDefinitions.h	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/notes/traces/OstTraceDefinitions.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/tsrc/harvesterplugintester/conf/harvesterplugintester.cfg	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/tsrc/harvesterplugintester/group/bld.inf	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/tsrc/harvesterplugintester/inc/ccalendarobserver.h	Fri Jun 11 13:39:26 2010 +0300
@@ -41,6 +41,7 @@
     TBool NotifyProgress();
     
     void AddEntryL();
+    void UpdateCalenderEntryL();
     void DeleteEntryL();
     void AddNoteL( TPtr8 aMemo);
     void DeleteNoteEntryL();
--- a/harvesterplugins/tsrc/harvesterplugintester/inc/harvesterplugintester.h	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/tsrc/harvesterplugintester/inc/harvesterplugintester.h	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/tsrc/harvesterplugintester/src/ccalanderobserver.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/tsrc/harvesterplugintester/src/cmessagesessionobserver.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/harvesterplugins/tsrc/harvesterplugintester/src/harvesterplugintesterblocks.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/searchui/indevicehandler/tsrc/t_indevicehandler/src/t_indevicehandler.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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>
--- a/searchui/stateproviders/searchstateprovider/resources/searchstateprovider.docml	Thu May 27 12:52:35 2010 +0300
+++ b/searchui/stateproviders/searchstateprovider/resources/searchstateprovider.docml	Fri Jun 11 13:39:26 2010 +0300
@@ -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/src/searchprogressivestate.cpp	Thu May 27 12:52:35 2010 +0300
+++ b/searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -598,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)
@@ -830,11 +812,11 @@
         mDatabasecount = 0;
         mLinkindex = 0;
         //Prefix query
-        /*mSearchString = "$prefix(\"";
+        mSearchString = "$prefix(\"";
         mSearchString += mOriginalString;
-        mSearchString += "\")";*/
-        mSearchString = mOriginalString;
-        mSearchString.append('*');
+        mSearchString += "\")";
+        /*mSearchString = mOriginalString;
+         mSearchString.append('*');*/
         searchOnCategory(mSearchString);
         }
     }
--- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchinitstate.cpp	Thu May 27 12:52:35 2010 +0300
+++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchinitstate.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchprogressivestate.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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>
--- a/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchsettingsstate.cpp	Thu May 27 12:52:35 2010 +0300
+++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchsettingsstate.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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	Thu May 27 12:52:35 2010 +0300
+++ b/searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_settingswidget.cpp	Fri Jun 11 13:39:26 2010 +0300
@@ -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/tsrc/indexdb/indexdb.pro	Thu May 27 12:52:35 2010 +0300
+++ b/searchui/tsrc/indexdb/indexdb.pro	Fri Jun 11 13:39:26 2010 +0300
@@ -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: 
-#
-
 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" \
--- a/sis/cpixsearchapp_stub.pkg	Thu May 27 12:52:35 2010 +0300
+++ b/sis/cpixsearchapp_stub.pkg	Fri Jun 11 13:39:26 2010 +0300
@@ -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: 
-;