diff -r 55d60436f00b -r d68a4b5d5885 calendarui/views/src/caleneventview.cpp --- a/calendarui/views/src/caleneventview.cpp Tue May 11 16:12:24 2010 +0300 +++ b/calendarui/views/src/caleneventview.cpp Tue May 25 12:41:10 2010 +0300 @@ -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; @@ -465,12 +468,23 @@ { 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: case R_CALEN_EVENT_VIEW_LONGTAP_MENUPANE: { CCalenEntryUtil* eventViewData = cnt->GetEventViewData(); + if(eventViewData) { if(eventViewData->EntryType() == CCalEntry::ETodo) @@ -515,6 +529,14 @@ aMenuPane->DeleteMenuItem( ECalenGetLocationAndReplace ); aMenuPane->DeleteMenuItem( ECalenShowLocation ); } + if(!(calendarInfoList[index]->Enabled())) + { + aMenuPane->DeleteMenuItem(ECalenSend); + aMenuPane->DeleteMenuItem(ECalenCmdPromptThenEdit); + aMenuPane->DeleteMenuItem(ECalenDeleteCurrentEntry); + } + + break; } default: @@ -523,7 +545,7 @@ } break; } - + CleanupStack::PopAndDestroy(&calendarInfoList); TRACE_EXIT_POINT; } @@ -762,5 +784,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