diff -r 6832643895f7 -r 3bc31ad99ee7 harvesterplugins/contacts/src/ccontactsplugin.cpp --- a/harvesterplugins/contacts/src/ccontactsplugin.cpp Fri May 14 15:53:17 2010 +0300 +++ b/harvesterplugins/contacts/src/ccontactsplugin.cpp Thu May 27 12:52:35 2010 +0300 @@ -300,6 +300,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 ) + { + AddFieldL( aDocument, aFieldSet, aFieldId, aFieldName ); + AddToExcerptL( aDocument, aFieldSet, aFieldId, aFieldName ); + } // --------------------------------------------------------------------------- // CContactsPlugin::CreateMessageIndexItemL @@ -333,52 +344,56 @@ } 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 ); + AddFieldL( *index_item, fieldSet, KUidContactFieldFamilyName, KContactsFamilyNameField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldPhoneNumber, KContactsPhoneNumberField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldEMail, KContactsEMailField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldSIPID, KContactsSIPIDField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldCompanyName, KContactsCompanyNameField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldJobTitle, KContactsJobTitleField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldNote, KContactsNoteField ); + + /* The following fields are not displayed when 'Edit'-ing the contact. + * The order here is arbitrary. + */ + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldAddress, KContactsAddressField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldSecondName, KContactsSecondNameField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldPrefixName, KContactsPrefixField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldSuffixName, KContactsSuffixField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldAdditionalName, KContactsAdditionalNameField ); + 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 ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldChildren, KContactsChildrenField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldClass, KContactsClassField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldFax, KContactsFaxField ); + + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldGivenNamePronunciation, KContactsGivenNamePronunciationField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldFamilyNamePronunciation, KContactsFamilyNamePronunciationField ); + AddFieldToDocumentAndExcerptL( *index_item, fieldSet, KUidContactFieldCompanyNamePronunciation, KContactsCompanyNamePronunciationField ); + //left: Birthday; Anniversary (date kind of type), Picture, Logo.. + index_item->AddExcerptL(*iExcerpt); }