# HG changeset patch # User Pat Downey # Date 1277310138 -3600 # Node ID 2f67eb14d00307c1d9d477f0b4f38a77fbfcb75f # Parent 51d10d255e92a00a4de11fda8a18b7fcd82acff6# Parent 6396153a6cefdb870ba08633d7365749f8a9f71a Merge heads. diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/applications/src/applicationsplugin.cpp --- 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 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 uidResult; // if( iHiddenApplicationsRepository->Get( KMenuHideApplication, uidResult ) == KErrNone ) diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/applications/traces/OstTraceDefinitions.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/bookmarks/src/bookmarksplugin.cpp --- 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)); diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/bookmarks/traces/OstTraceDefinitions.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/calendar/src/ccalendarplugin.cpp --- 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()); diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/calendar/traces/OstTraceDefinitions.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/contacts/inc/ccontactsplugin.h --- 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 #include #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); diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/contacts/src/ccontactsplugin.cpp --- 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 // --------------------------------------------------------------------------- // diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/contacts/traces/OstTraceDefinitions.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/file/fastfindfileserverplugin/traces/OstTraceDefinitions.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/file/src/cfileplugin.cpp --- 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; diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/file/traces/OstTraceDefinitions.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/inc/s60performance.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/media/audio/src/cpixmediaaudiodoc.cpp --- 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 #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; diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/media/audio/traces/OstTraceDefinitions.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/media/image/src/cpixmediaimagedoc.cpp --- 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 #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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/media/image/traces/OstTraceDefinitions.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/media/mediautils/inc/cpixdocfetcher.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/media/mediautils/src/cpixdocfetcher.cpp --- 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() // ----------------------------------------------------------------------------- // diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/media/video/src/cpixmediavideodoc.cpp --- 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 #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; } diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/media/video/traces/OstTraceDefinitions.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/messaging/email/qtemailfetcher/bwins/qtemailfetcheru.def --- 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) - ?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) + ?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) + ?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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/messaging/email/qtemailfetcher/eabi/qtemailfetcheru.def --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/messaging/email/qtemailfetcher/qtemailfetcher.cpp --- 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 #include +#include +#include +#include +#include +#include //#include //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)), aThis, SLOT(handleMessageEvent(MessageEvent, quint64, quint64, QList)) ); + //Monitor for Mailbox changes + aThis->connect( aThis->iEmailEventNotifier, + SIGNAL(mailboxEvent(MailboxEvent, QList)), + aThis, + SLOT(handlemailboxEvent(MailboxEvent, QList))); + //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 const 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 toList; + +CSearchDocument* QEmailFetcher::getSearchDocument( const NmApiMessageEnvelope& aEnvelope ,quint64 aMailboxId, quint64 aFolderId ){ + QList toList; + qDebug() << "QEmailFetcher::getSearchDocument :START"; //Need to cast away const-ness since the get method is unfortunately not const. - const_cast(aEnvelope).getToRecipients( toList ); + const_cast(aEnvelope).getToRecipients( toList ); //We need ALL the recipients in a SINGLE field. QString recipients = ""; for( int i=0; i(aEnvelope).getPlainTextBody( body ); + const_cast(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 envelopes; + QList envelopes; if ( aCount > 0 && iEnvelopeListing->getEnvelopes(envelopes) ) { for( int i=0; i aMessageList){ - NmMessageEnvelope envelope; +void QEmailFetcher::handleMessageEvent( NmApiMessageEvent aEvent, quint64 aMailboxId, quint64 aFolderId, QList 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; igetEnvelope( 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; igetEnvelope( 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 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 const 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; +} diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/messaging/email/qtemailfetcher/qtemailfetcher.h --- 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 #include #include +#include #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 messageList ); + void handleMessageEvent( NmApiMessageEvent aEvent, quint64 mailboxId, quint64 folderId, QList messageList ); + //Connect to Mailbox event signal + void handlemailboxEvent(EmailClientApi::NmApiMailboxEvent event, QList 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 iMailBoxes; - QList iFolders; + QList iMailBoxes; + QList iFolders; }; #endif //_QEMAILFETCHER_H diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/messaging/email/src/cemailplugin.cpp --- 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"); } // --------------------------------------------------------------------------- diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/messaging/smsmms/src/cmessagedatahandler.cpp --- 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; } diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/messaging/smsmms/traces/OstTraceDefinitions.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/notes/src/notesplugin.cpp --- 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) diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/notes/traces/OstTraceDefinitions.h --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/tsrc/harvesterplugintester/conf/harvesterplugintester.cfg --- 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] diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/tsrc/harvesterplugintester/conf/square.jpg Binary file harvesterplugins/tsrc/harvesterplugintester/conf/square.jpg has changed diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/tsrc/harvesterplugintester/group/bld.inf --- 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 diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/tsrc/harvesterplugintester/inc/ccalendarobserver.h --- 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(); diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/tsrc/harvesterplugintester/inc/harvesterobserver.h --- 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: diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/tsrc/harvesterplugintester/inc/harvesterplugintester.h --- 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 ); diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/tsrc/harvesterplugintester/src/ccalanderobserver.cpp --- 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 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; diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/tsrc/harvesterplugintester/src/cmessagesessionobserver.cpp --- 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( 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( 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; diff -r 6396153a6cef -r 2f67eb14d003 harvesterplugins/tsrc/harvesterplugintester/src/harvesterplugintesterblocks.cpp --- 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(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 srcPath(_L("c:\\data\\Sounds\\")); + TBuf 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 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" ); diff -r 6396153a6cef -r 2f67eb14d003 searchui/indevicehandler/tsrc/t_indevicehandler/src/t_indevicehandler.cpp --- 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 @@ -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; diff -r 6396153a6cef -r 2f67eb14d003 searchui/rom/search.iby --- 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 diff -r 6396153a6cef -r 2f67eb14d003 searchui/stateproviders/searchstateprovider/inc/searchprogressivestate.h --- 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 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; diff -r 6396153a6cef -r 2f67eb14d003 searchui/stateproviders/searchstateprovider/resources/searchstateprovider.docml --- 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 @@ - + diff -r 6396153a6cef -r 2f67eb14d003 searchui/stateproviders/searchstateprovider/searchstateprovider.pro --- 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 diff -r 6396153a6cef -r 2f67eb14d003 searchui/stateproviders/searchstateprovider/src/searchprogressivestate.cpp --- 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 #include #include -#include +#include #include #include #include @@ -51,6 +51,8 @@ #include #include #include +#include +#include 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 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(""); - QString htmlTagPost = QString(""); - 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 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 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, diff -r 6396153a6cef -r 2f67eb14d003 searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/inc/t_searchstateprovider.h --- 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(); /** diff -r 6396153a6cef -r 2f67eb14d003 searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchinitstate.cpp --- 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" // --------------------------------------------------------------------------- diff -r 6396153a6cef -r 2f67eb14d003 searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchprogressivestate.cpp --- 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 @@ -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; } // --------------------------------------------------------------------------- diff -r 6396153a6cef -r 2f67eb14d003 searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_searchsettingsstate.cpp --- 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" diff -r 6396153a6cef -r 2f67eb14d003 searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/src/t_settingswidget.cpp --- 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 diff -r 6396153a6cef -r 2f67eb14d003 searchui/stateproviders/searchstateprovider/tsrc/t_searchstateprovider/t_searchstateprovider.pro --- 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 \ diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/applications/_1/_0.cfs Binary file searchui/tsrc/indexdb/data/applications/_1/_0.cfs has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/applications/_1/deletable Binary file searchui/tsrc/indexdb/data/applications/_1/deletable has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/applications/_1/segments Binary file searchui/tsrc/indexdb/data/applications/_1/segments has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/bookmark/_1/_0.cfs Binary file searchui/tsrc/indexdb/data/bookmark/_1/_0.cfs has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/bookmark/_1/deletable Binary file searchui/tsrc/indexdb/data/bookmark/_1/deletable has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/bookmark/_1/segments Binary file searchui/tsrc/indexdb/data/bookmark/_1/segments has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/calendar/_1/_0.cfs Binary file searchui/tsrc/indexdb/data/calendar/_1/_0.cfs has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/calendar/_1/deletable Binary file searchui/tsrc/indexdb/data/calendar/_1/deletable has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/calendar/_1/segments Binary file searchui/tsrc/indexdb/data/calendar/_1/segments has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/contact/_1/_0.cfs Binary file searchui/tsrc/indexdb/data/contact/_1/_0.cfs has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/contact/_1/deletable Binary file searchui/tsrc/indexdb/data/contact/_1/deletable has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/contact/_1/segments Binary file searchui/tsrc/indexdb/data/contact/_1/segments has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/cpixcontentinfo.sq Binary file searchui/tsrc/indexdb/data/cpixcontentinfo.sq has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/cpixreg.txt --- /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 diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/file/content/_0/_0.cfs Binary file searchui/tsrc/indexdb/data/file/content/_0/_0.cfs has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/file/content/_0/deletable Binary file searchui/tsrc/indexdb/data/file/content/_0/deletable has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/file/content/_0/segments Binary file searchui/tsrc/indexdb/data/file/content/_0/segments has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/file/folder/_1/_0.cfs Binary file searchui/tsrc/indexdb/data/file/folder/_1/_0.cfs has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/file/folder/_1/deletable Binary file searchui/tsrc/indexdb/data/file/folder/_1/deletable has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/file/folder/_1/segments Binary file searchui/tsrc/indexdb/data/file/folder/_1/segments has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/media/audio/_1/_0.cfs Binary file searchui/tsrc/indexdb/data/media/audio/_1/_0.cfs has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/media/audio/_1/deletable Binary file searchui/tsrc/indexdb/data/media/audio/_1/deletable has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/media/audio/_1/segments Binary file searchui/tsrc/indexdb/data/media/audio/_1/segments has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/media/image/_1/_0.cfs Binary file searchui/tsrc/indexdb/data/media/image/_1/_0.cfs has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/media/image/_1/deletable Binary file searchui/tsrc/indexdb/data/media/image/_1/deletable has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/media/image/_1/segments Binary file searchui/tsrc/indexdb/data/media/image/_1/segments has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/media/video/_0/_0.cfs Binary file searchui/tsrc/indexdb/data/media/video/_0/_0.cfs has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/media/video/_0/deletable Binary file searchui/tsrc/indexdb/data/media/video/_0/deletable has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/media/video/_0/segments Binary file searchui/tsrc/indexdb/data/media/video/_0/segments has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/msg/smsmms/_1/_0.cfs Binary file searchui/tsrc/indexdb/data/msg/smsmms/_1/_0.cfs has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/msg/smsmms/_1/deletable Binary file searchui/tsrc/indexdb/data/msg/smsmms/_1/deletable has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/msg/smsmms/_1/segments Binary file searchui/tsrc/indexdb/data/msg/smsmms/_1/segments has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/notes/_1/_0.cfs Binary file searchui/tsrc/indexdb/data/notes/_1/_0.cfs has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/notes/_1/deletable Binary file searchui/tsrc/indexdb/data/notes/_1/deletable has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/data/notes/_1/segments Binary file searchui/tsrc/indexdb/data/notes/_1/segments has changed diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/indexdb/indexdb.pro --- /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 diff -r 6396153a6cef -r 2f67eb14d003 searchui/tsrc/tsrc.pro --- /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 +} diff -r 6396153a6cef -r 2f67eb14d003 sis/cpixsearchapp_stub.pkg --- 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: -;