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