diff -r 0d28c1c5b6dd -r 2828b4d142c0 phonebookui/Phonebook2/Presentation/src/CPbk2ContactNameFormatter.cpp --- a/phonebookui/Phonebook2/Presentation/src/CPbk2ContactNameFormatter.cpp Tue Apr 27 16:23:35 2010 +0300 +++ b/phonebookui/Phonebook2/Presentation/src/CPbk2ContactNameFormatter.cpp Tue May 11 16:00:21 2010 +0300 @@ -150,6 +150,10 @@ (aFormattingFlags, ENameCompanyPart+1, count-1); // zero-based } + if ( !result || aFormattingFlags & MPbk2ContactNameFormatter::EDisableCompanyNameSeparator ) + { + return result; + } return result+1; // for seperator "," } // ----------------------------------------------------------------------------- @@ -190,6 +194,10 @@ { return static_cast( this ); } + if ( aExtensionUid == MPbk2ContactNameFormatterExtension3Uid ) + { + return static_cast( this ); + } return NULL; } // ----------------------------------------------------------------------------- @@ -217,7 +225,10 @@ //third field is expected to be company name if ( IsCompanyNameField() ) { - aTitle.Append(KSeparator); + if ( !( aFormattingFlags & MPbk2ContactNameFormatter::EDisableCompanyNameSeparator) ) + { + aTitle.Append(KSeparator); + } DoGetContactTitle(aTitle, EPreserveLeadingSpaces, ENameCompanyPart, ENameCompanyPart); } @@ -250,6 +261,23 @@ } // ----------------------------------------------------------------------------- +// CPbk2ContactNameFormatter::TitleWithCompanyNameFieldsLC +// ----------------------------------------------------------------------------- +// +CVPbkBaseContactFieldTypeListIterator* +CPbk2ContactNameFormatter::TitleWithCompanyNameFieldsLC( + CVPbkFieldTypeRefsList& aFieldTypeList, + const MVPbkBaseContactFieldCollection& aContactFields ) + { + + TitleFieldsL( aFieldTypeList, aContactFields, ENameFirstPart, ENameCompanyPart); + + return CVPbkBaseContactFieldTypeListIterator::NewLC( + aFieldTypeList, + aContactFields); + + } +// ----------------------------------------------------------------------------- // CPbk2ContactNameFormatter::ActualTitleFieldsLC // See function CPbk2ContactNameFormatter::GetContactTitle. // ----------------------------------------------------------------------------- @@ -259,29 +287,39 @@ CVPbkFieldTypeRefsList& aFieldTypeList, const MVPbkBaseContactFieldCollection& aContactFields) { + + TitleFieldsL( aFieldTypeList, aContactFields, ENameFirstPart, ENameSecondPart); + + return CVPbkBaseContactFieldTypeListIterator::NewLC( + aFieldTypeList, + aContactFields); + } +// ----------------------------------------------------------------------------- +// CPbk2ContactNameFormatter::TitleFieldsL +// ----------------------------------------------------------------------------- +// +void CPbk2ContactNameFormatter::TitleFieldsL( CVPbkFieldTypeRefsList& aFieldTypeList, + const MVPbkBaseContactFieldCollection& aContactFields, + const TInt aStartingPosition, const TInt aEndingPosition ) + { aFieldTypeList.Reset(); SetFieldMapper( aContactFields ); DoAppendNonEmptyTitleFieldTypesL( aFieldTypeList, - ENameFirstPart, - ENameSecondPart); + aStartingPosition, + aEndingPosition); if( aFieldTypeList.FieldTypeCount() == 0 ) { const TInt count = iFieldMapper.FieldCount(); DoAppendNonEmptyTitleFieldTypesL( aFieldTypeList, - ENameSecondPart+1, + aEndingPosition+1, count-1); } - - return CVPbkBaseContactFieldTypeListIterator::NewLC( - aFieldTypeList, - aContactFields); } - // ----------------------------------------------------------------------------- // CPbk2ContactNameFormatter::MaxTitleLength // -----------------------------------------------------------------------------