diff -r 3533d4323edc -r 968773a0b6ef emailuis/emailui/src/FreestyleEmailUiCLSListsHandler.cpp --- a/emailuis/emailui/src/FreestyleEmailUiCLSListsHandler.cpp Wed Sep 01 12:28:57 2010 +0100 +++ b/emailuis/emailui/src/FreestyleEmailUiCLSListsHandler.cpp Tue Sep 14 20:48:24 2010 +0300 @@ -172,7 +172,8 @@ iContactManager( aContactManager ), iClsListObserver( NULL ), iFs( aFs ), - iMailBox ( NULL ) + iMailBox ( NULL ), + iUseLastNameFirstOrder( EFalse ) { FUNC_LOG; // Nothing @@ -323,44 +324,29 @@ } searchSettings->SetSearchUrisL(databases); - // Set displayfields (first name, last name, email addresses) - RArray displayFields(6); - CleanupClosePushL(displayFields); - displayFields.AppendL(R_VPBK_FIELD_TYPE_FIRSTNAME); - displayFields.AppendL(R_VPBK_FIELD_TYPE_LASTNAME); - displayFields.AppendL(R_VPBK_FIELD_TYPE_EMAILGEN); - displayFields.AppendL(R_VPBK_FIELD_TYPE_EMAILHOME); - displayFields.AppendL(R_VPBK_FIELD_TYPE_EMAILWORK); - searchSettings->SetDisplayFieldsL(displayFields); - CleanupStack::Pop(&displayFields); - displayFields.Close(); - - // Set the new sort order of data fields + // Set displayfields according to sort order RArray sortOrder; - CleanupClosePushL(sortOrder); - - // change sorting order for Chinese to LNFN - if ( User::Language() == ELangPrcChinese ) + CleanupClosePushL( sortOrder ); + iRequestHandler->GetSortOrderL( *store1, sortOrder ); + if ( sortOrder.Count() ) + { + iUseLastNameFirstOrder = ( sortOrder[0] == R_VPBK_FIELD_TYPE_LASTNAME ); + } + else { - sortOrder.AppendL( R_VPBK_FIELD_TYPE_LASTNAME ); - sortOrder.AppendL( R_VPBK_FIELD_TYPE_FIRSTNAME ); - } - else // default sorting order FN LN - { - sortOrder.AppendL( R_VPBK_FIELD_TYPE_FIRSTNAME ); - sortOrder.AppendL( R_VPBK_FIELD_TYPE_LASTNAME ); + iUseLastNameFirstOrder = EFalse; // default is not to change order } - - sortOrder.AppendL(R_VPBK_FIELD_TYPE_EMAILGEN); - sortOrder.AppendL(R_VPBK_FIELD_TYPE_EMAILHOME); - sortOrder.AppendL(R_VPBK_FIELD_TYPE_EMAILWORK); - iRequestHandler->ChangeSortOrderL(*store1, sortOrder); - if ( store2 ) - { - iRequestHandler->ChangeSortOrderL(*store2, sortOrder); - } - - CleanupStack::Pop(&sortOrder); + RArray displayFields( 6 ); + CleanupClosePushL( displayFields ); + displayFields.AppendL( sortOrder[0] ); + if ( sortOrder.Count() >= 1 ) displayFields.AppendL( sortOrder[1] ); + displayFields.AppendL( R_VPBK_FIELD_TYPE_EMAILGEN ); + displayFields.AppendL( R_VPBK_FIELD_TYPE_EMAILHOME ); + displayFields.AppendL( R_VPBK_FIELD_TYPE_EMAILWORK ); + searchSettings->SetDisplayFieldsL( displayFields ); + CleanupStack::Pop( &displayFields ); + CleanupStack::Pop( &sortOrder ); + displayFields.Close(); sortOrder.Close(); // Set maximum for search results @@ -437,3 +423,8 @@ iClsListObserver->OperationErrorL( aErrorCode ); } +TBool CFSEmailUiClsListsHandler::UseLastNameFirstOrder() + { + FUNC_LOG; + return iUseLastNameFirstOrder; + }