diff -r 07e82e2b738b -r 51372538e3d3 calendarui/views/src/caleneventview.cpp --- a/calendarui/views/src/caleneventview.cpp Sun Jun 20 22:50:42 2010 +0200 +++ b/calendarui/views/src/caleneventview.cpp Sun Jun 20 22:55:39 2010 +0200 @@ -25,6 +25,8 @@ #include // Calendar commands #include #include +#include +#include // user includes #include "caleneventview.h" @@ -157,6 +159,7 @@ { cnt->CompletePopulationL(); RedrawStatusPaneL(); + UpdateToolbarButtonsL(); nextStep = CCalenView::EDone; } break; @@ -421,6 +424,21 @@ // nothing to do } break; + case ECalenCmdFindPhoneNum: + { + cnt->OnCmdFindPhoneNumL(); + } + break; + case ECalenCmdFindEmail: + { + cnt->OnCmdFindEmailL(); + } + break; + case ECalenCmdFindURL: + { + cnt->OnCmdFindUrlL(); + } + break; default: if(cnt->GetFindItemMenu()->CommandIsValidL(aCommand)) { @@ -465,6 +483,16 @@ { TRACE_ENTRY_POINT; CCalenEventViewContainer* cnt = static_cast( iContainer ); + TCalCollectionId colId = iServices.Context().InstanceId().iColId; + // get multiple db data from services + RPointerArray calendarInfoList; + iServices.GetAllCalendarInfoL(calendarInfoList); + CleanupClosePushL(calendarInfoList); + + HBufC* calendarFileName = iServices.GetCalFileNameForCollectionId(colId).AllocLC(); + TInt index = calendarInfoList.Find( *calendarFileName, + CCalenEventViewContainer::CalendarInfoIdentifierL); + CleanupStack::PopAndDestroy(calendarFileName); switch(aResourceId) { case R_CALEN_EVENT_VIEW_MENUPANE: @@ -497,7 +525,7 @@ aMenuPane->DeleteMenuItem(ECalenViewAttachmentList); } } - cnt->GetFindItemMenu()->AddItemFindMenuL(cnt->GetItemFinder(),aMenuPane,EFindItemMenuPlaceHolder,KNullDesC); + if(CCalenLocationUtil::IsMapProviderAvailableL()) { @@ -515,6 +543,14 @@ aMenuPane->DeleteMenuItem( ECalenGetLocationAndReplace ); aMenuPane->DeleteMenuItem( ECalenShowLocation ); } + if(!(calendarInfoList[index]->Enabled())) + { + aMenuPane->DeleteMenuItem(ECalenSend); + aMenuPane->DeleteMenuItem(ECalenCmdPromptThenEdit); + aMenuPane->DeleteMenuItem(ECalenDeleteCurrentEntry); + } + + break; } default: @@ -523,7 +559,7 @@ } break; } - + CleanupStack::PopAndDestroy(&calendarInfoList); TRACE_EXIT_POINT; } @@ -762,5 +798,44 @@ TRACE_EXIT_POINT; return button; - } + } + +// ---------------------------------------------------------------------------- +// CCalenEventView::UpdateToolbarButtonsL +// Updates the toolbar buttons on the existing toolbar for event viewer +// ---------------------------------------------------------------------------- +// + +void CCalenEventView::UpdateToolbarButtonsL() + { + // Get the existing toolbar from MCalenservices + MCalenToolbar* toolbarImpl = iServices.ToolbarOrNull(); + CAknToolbar& toolbar = toolbarImpl->Toolbar(); + TCalCollectionId colId = iServices.Context().InstanceId().iColId; + + // get multiple db data from services + RPointerArray calendarInfoList; + iServices.GetAllCalendarInfoL(calendarInfoList); + CleanupClosePushL(calendarInfoList); + + HBufC* calendarFileName = iServices.GetCalFileNameForCollectionId(colId).AllocLC(); + TInt index = calendarInfoList.Find( *calendarFileName, + CCalenEventViewContainer::CalendarInfoIdentifierL); + CleanupStack::PopAndDestroy(calendarFileName); + + + if(!(calendarInfoList[index]->Enabled())) + { + toolbar.SetItemDimmed( ECalenSend, ETrue, ETrue ); + toolbar.SetItemDimmed( ECalenDeleteCurrentEntry, ETrue, ETrue ); + toolbar.SetItemDimmed( ECalenEditCurrentEntry, ETrue, ETrue ); + } + else + { + toolbar.SetItemDimmed( ECalenSend, EFalse, ETrue ); + toolbar.SetItemDimmed( ECalenDeleteCurrentEntry, EFalse, ETrue ); + toolbar.SetItemDimmed( ECalenEditCurrentEntry, EFalse, ETrue ); + } + CleanupStack::PopAndDestroy(&calendarInfoList); + } //end of file