phonebookui/Phonebook2/Presentation/src/CPbk2ContactNameFormatter.cpp
branchRCL_3
changeset 32 2828b4d142c0
parent 0 e686773b3f54
child 64 c1e8ba0c2b16
--- 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<MPbk2ContactNameFormatter2*>( this );
            }
+    if ( aExtensionUid == MPbk2ContactNameFormatterExtension3Uid )
+           {
+           return static_cast<MPbk2ContactNameFormatter3*>( 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
 // -----------------------------------------------------------------------------