diff -r e8e3147d53eb -r b3431bff8c19 phonebookui/Phonebook2/ccapplication/ccamycardplugin/src/ccappmycardplugin.cpp --- a/phonebookui/Phonebook2/ccapplication/ccamycardplugin/src/ccappmycardplugin.cpp Mon Mar 15 12:39:26 2010 +0200 +++ b/phonebookui/Phonebook2/ccapplication/ccamycardplugin/src/ccappmycardplugin.cpp Wed Mar 31 21:13:53 2010 +0300 @@ -26,7 +26,6 @@ #include #include #include -#include #include #include #include @@ -48,6 +47,8 @@ #include #include #include +#include +#include // --------------------------------------------------------------------------- // Constants @@ -55,8 +56,6 @@ /// MyCard own resource file _LIT( KMyCardResourceFileName, "ccappmycardpluginrsc.rsc" ); - -_LIT( KMyCardIconFileName, "\\resource\\apps\\phonebook2.mif"); /// Phonebook2 UI controls resource file _LIT( KMyCardPbk2UiControlsResFileName, "pbk2uicontrols.rsc" ); // pbk2 common ui @@ -255,21 +254,10 @@ if ( ECCAppTabIcon == aIconType ) { - CFbsBitmap* bmp = NULL; - CFbsBitmap* bmpMask = NULL; - - // TODO: Change icon - AknsUtils::CreateIconL( - AknsUtils::SkinInstance(), - KAknsIIDDefault,//todo; get a proper skin - bmp, - bmpMask, - KMyCardIconFileName, - EMbmPhonebook2Qgn_prop_pb_photo_tab3, - EMbmPhonebook2Qgn_prop_pb_photo_tab3_mask ); - - aIcon.SetBitmap( bmp ); - aIcon.SetMask( bmpMask ); + // CCA expects to always receive real icons. MyCard does not have + // tab icon defined, so provide some dummy icons. + aIcon.SetBitmap( new(ELeave) CFbsBitmap ); + aIcon.SetMask( new(ELeave) CFbsBitmap ); } CCA_DP(KMyCardLogFile, CCA_L("<-CCCAppMyCardPlugin::ProvideBitmapL()")); @@ -289,17 +277,6 @@ } // --------------------------------------------------------------------------- -// CCCAppMyCardPlugin::DynInitMenuPaneL -// --------------------------------------------------------------------------- -// -void CCCAppMyCardPlugin::DynInitMenuPaneL( - TInt /*aResourceId*/, - CEikMenuPane* /*aMenuPane*/ ) - { - // TODO: menupane handling - } - -// --------------------------------------------------------------------------- // CCCAppMyCardPlugin::HandleCommandL // --------------------------------------------------------------------------- // @@ -307,14 +284,45 @@ { CCA_DP(KMyCardLogFile, CCA_L("->CCCAppMyCardPlugin::HandleCommandL command=%d"), aCommand ); - + switch( aCommand ) - { + { case ECCAppMyCardCmdEdit: - { - // when editor is called via options menu, focus first field always - EditL( iMyCard->PresentationContactL(). - PresentationFields().StoreIndexOfField( 0 ) ); + { + TInt index; + MVPbkStoreContact& storeContact = iMyCard->StoreContact(); + + TRAPD( err, + { + index = iMyCard->PresentationContactL().PresentationFields().StoreIndexOfField( 0 ); + + MVPbkBaseContactField* field = storeContact.Fields().FieldAtLC( index ); + + const MVPbkFieldType* type = field->BestMatchingFieldType(); + const TArray fieldProperty = type->VersitProperties(); + + if( fieldProperty.Count() ) + { + const TVPbkFieldVersitProperty property = fieldProperty[0]; + + if( property.Name() == EVPbkVersitNameADR ) + { + index = KErrNotSupported; + } + } + + if( field ) + { + CleanupStack::PopAndDestroy( field ); + } + + EditL( index ); + } ); + + if( err != KErrNone ) + { + HandleError( err ); + } break; } case ECCappMyCardCmdSendVCard: @@ -483,7 +491,7 @@ break; default: - CAknView::ProcessCommandL(aCommandId); + CAknView::ProcessCommandL( aCommandId ); break; }