emailuis/emailui/src/FreestyleEmailUiCLSListsHandler.cpp
branchRCL_3
changeset 26 968773a0b6ef
parent 25 3533d4323edc
equal deleted inserted replaced
25:3533d4323edc 26:968773a0b6ef
   170 // -----------------------------------------------------------------------------
   170 // -----------------------------------------------------------------------------
   171 CFSEmailUiClsListsHandler::CFSEmailUiClsListsHandler( RFs& aFs, CVPbkContactManager* aContactManager ) :
   171 CFSEmailUiClsListsHandler::CFSEmailUiClsListsHandler( RFs& aFs, CVPbkContactManager* aContactManager ) :
   172 	iContactManager( aContactManager ),
   172 	iContactManager( aContactManager ),
   173 	iClsListObserver( NULL ), 
   173 	iClsListObserver( NULL ), 
   174 	iFs( aFs ),
   174 	iFs( aFs ),
   175 	iMailBox ( NULL )
   175 	iMailBox ( NULL ),
       
   176 	iUseLastNameFirstOrder( EFalse )
   176 	{
   177 	{
   177     FUNC_LOG;
   178     FUNC_LOG;
   178 	// Nothing
   179 	// Nothing
   179 	}
   180 	}
   180 
   181 
   321         GetMruDatastoreUriFromMailbox( *iMailBox, *store2 );
   322         GetMruDatastoreUriFromMailbox( *iMailBox, *store2 );
   322         databases.AppendL( store2 );
   323         databases.AppendL( store2 );
   323         }
   324         }
   324     searchSettings->SetSearchUrisL(databases);
   325     searchSettings->SetSearchUrisL(databases);
   325 
   326 
   326     // Set displayfields (first name, last name, email addresses)
   327     // Set displayfields according to sort order
   327     RArray<TInt> displayFields(6);
   328     RArray<TInt> sortOrder;
   328     CleanupClosePushL(displayFields);
   329     CleanupClosePushL( sortOrder );
   329     displayFields.AppendL(R_VPBK_FIELD_TYPE_FIRSTNAME); 
   330     iRequestHandler->GetSortOrderL( *store1, sortOrder );
   330     displayFields.AppendL(R_VPBK_FIELD_TYPE_LASTNAME);
   331     if ( sortOrder.Count() )
   331     displayFields.AppendL(R_VPBK_FIELD_TYPE_EMAILGEN);
   332         {
   332     displayFields.AppendL(R_VPBK_FIELD_TYPE_EMAILHOME);
   333         iUseLastNameFirstOrder = ( sortOrder[0] == R_VPBK_FIELD_TYPE_LASTNAME );
   333     displayFields.AppendL(R_VPBK_FIELD_TYPE_EMAILWORK);
   334         }
   334     searchSettings->SetDisplayFieldsL(displayFields);
   335     else
   335     CleanupStack::Pop(&displayFields);
   336         {
       
   337         iUseLastNameFirstOrder = EFalse; // default is not to change order
       
   338         }
       
   339     RArray<TInt> displayFields( 6 );
       
   340     CleanupClosePushL( displayFields );
       
   341     displayFields.AppendL( sortOrder[0] );
       
   342     if ( sortOrder.Count() >= 1 ) displayFields.AppendL( sortOrder[1] );
       
   343     displayFields.AppendL( R_VPBK_FIELD_TYPE_EMAILGEN );
       
   344     displayFields.AppendL( R_VPBK_FIELD_TYPE_EMAILHOME );
       
   345     displayFields.AppendL( R_VPBK_FIELD_TYPE_EMAILWORK );
       
   346     searchSettings->SetDisplayFieldsL( displayFields );
       
   347     CleanupStack::Pop( &displayFields );
       
   348     CleanupStack::Pop( &sortOrder );
   336     displayFields.Close();
   349     displayFields.Close();
   337    
       
   338     // Set the new sort order of data fields
       
   339     RArray<TInt> sortOrder;
       
   340     CleanupClosePushL(sortOrder);
       
   341     
       
   342     // change sorting order for Chinese to LNFN
       
   343     if ( User::Language() == ELangPrcChinese )
       
   344         {
       
   345         sortOrder.AppendL( R_VPBK_FIELD_TYPE_LASTNAME );
       
   346         sortOrder.AppendL( R_VPBK_FIELD_TYPE_FIRSTNAME );
       
   347         }
       
   348     else // default sorting order FN LN
       
   349         {
       
   350         sortOrder.AppendL( R_VPBK_FIELD_TYPE_FIRSTNAME );
       
   351         sortOrder.AppendL( R_VPBK_FIELD_TYPE_LASTNAME );
       
   352         }
       
   353     
       
   354     sortOrder.AppendL(R_VPBK_FIELD_TYPE_EMAILGEN);
       
   355     sortOrder.AppendL(R_VPBK_FIELD_TYPE_EMAILHOME);
       
   356     sortOrder.AppendL(R_VPBK_FIELD_TYPE_EMAILWORK);
       
   357     iRequestHandler->ChangeSortOrderL(*store1, sortOrder);
       
   358     if ( store2 )
       
   359         {
       
   360         iRequestHandler->ChangeSortOrderL(*store2, sortOrder);
       
   361         }
       
   362 
       
   363     CleanupStack::Pop(&sortOrder);
       
   364     sortOrder.Close();
   350     sortOrder.Close();
   365 
   351 
   366     // Set maximum for search results
   352     // Set maximum for search results
   367     //How many results is shown on the screen??
   353     //How many results is shown on the screen??
   368     //searchSettings->SetMaxResults(const TInt aMaxResults);
   354     //searchSettings->SetMaxResults(const TInt aMaxResults);
   435 	{
   421 	{
   436     FUNC_LOG;
   422     FUNC_LOG;
   437 	iClsListObserver->OperationErrorL( aErrorCode );
   423 	iClsListObserver->OperationErrorL( aErrorCode );
   438 	}
   424 	}
   439 
   425 
       
   426 TBool CFSEmailUiClsListsHandler::UseLastNameFirstOrder()
       
   427     {
       
   428     FUNC_LOG;
       
   429     return iUseLastNameFirstOrder;
       
   430     }