diff -r 34879f5cfc63 -r 2666d9724c76 phonebookui/Phonebook2/CommandsExtension/src/CPbk2MergeResolver.cpp --- a/phonebookui/Phonebook2/CommandsExtension/src/CPbk2MergeResolver.cpp Mon Jun 21 15:24:27 2010 +0300 +++ b/phonebookui/Phonebook2/CommandsExtension/src/CPbk2MergeResolver.cpp Thu Jul 15 18:22:55 2010 +0300 @@ -31,6 +31,12 @@ #include #include #include +#include +#include +#include + +// System includes +#include // Debugging headers #include @@ -694,6 +700,26 @@ CPbk2MergeConflict* conflictNew = CPbk2MergeConflict::NewL(); CleanupStack::PushL( conflictNew ); conflictNew->AddFields( aFieldFirst, aFieldSecond ); + + //For sync get possibly localised display fields + if( aFieldFirst.BestMatchingFieldType()->FieldTypeResId() == R_VPBK_FIELD_TYPE_SYNCCLASS ) + { + HBufC* first = SyncDisplayFieldLC( aFieldFirst ); + if( first ) + { + HBufC* second = SyncDisplayFieldLC( aFieldSecond ); + if( second ) + { + conflictNew->AddDisplayFields( first, second ); + CleanupStack::Pop( 2, first ); + } + else + { + CleanupStack::PopAndDestroy( first ); + } + } + } + iConflicts.AppendL( conflictNew ); CleanupStack::Pop( conflictNew ); @@ -701,6 +727,50 @@ } // -------------------------------------------------------------------------- +// CPbk2MergeResolver::SyncDisplayFieldLC +// -------------------------------------------------------------------------- +// +HBufC* CPbk2MergeResolver::SyncDisplayFieldLC( + const MVPbkStoreContactField& aField ) + { + HBufC* field = NULL; + TVPbkFieldStorageType dataType = aField.FieldData().DataType(); + + if ( dataType == EVPbkFieldStorageTypeText ) + { + const MVPbkContactFieldTextData& textData = + MVPbkContactFieldTextData::Cast( aField.FieldData() ); + field = LocaliseSyncDisplayFieldLC( textData.Text() ); + } + + return field; + } + +// -------------------------------------------------------------------------- +// CPbk2MergeResolver::LocaliseSyncDisplayFieldL +// -------------------------------------------------------------------------- +// +HBufC* CPbk2MergeResolver::LocaliseSyncDisplayFieldLC( const TDesC& aContent ) + { + HBufC* txt = NULL; + + if ( !aContent.CompareF( KVPbkContactSyncPublic ) ) + { + txt = CCoeEnv::Static()->AllocReadResourceLC( R_QTN_CALE_CONFIDENT_PUBLIC ); + } + else if ( !aContent.CompareF( KVPbkContactSyncNoSync ) ) + { + txt = CCoeEnv::Static()->AllocReadResourceLC( R_QTN_CALE_CONFIDENT_NONE ); + } + else + { + txt = CCoeEnv::Static()->AllocReadResourceLC( R_QTN_CALE_CONFIDENT_PRIVATE ); + } + + return txt; + } + +// -------------------------------------------------------------------------- // CPbk2MergeResolver::AddAddressConflictL // -------------------------------------------------------------------------- //