diff -r 55d60436f00b -r d68a4b5d5885 clock2/clockui/uilayer/clockmainview/src/clockmainview.cpp --- a/clock2/clockui/uilayer/clockmainview/src/clockmainview.cpp Tue May 11 16:12:24 2010 +0300 +++ b/clock2/clockui/uilayer/clockmainview/src/clockmainview.cpp Tue May 25 12:41:10 2010 +0300 @@ -26,6 +26,7 @@ #include #include #include +#include // User includes #include "clockmainview.h" @@ -228,6 +229,73 @@ } // --------------------------------------------------------- +//papercut clock2 Remove_Snooze Start - rajender +// CClockMainView::RemoveSnoozeL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::RemoveSnoozeL() + { + __PRINTS( "CClockMainView::RemoveSnoozeL - Entry" ); + // First get the index of the selected item in the list. + TInt itemIndex( iContainer->ListBox()->CurrentItemIndex() ); + + if( KErrNone > itemIndex ) + { + __PRINTS( "CClockMainView::RemoveSnoozeL - Exit" ); + return; + } + + SClkAlarmInfo alarmInfo; + TAlarmId alarmId; + // Get the alarm id from alarm model. + iAlarmArray->GetSortedAlmIdInfo( itemIndex, alarmId, alarmInfo ); + + // Delete the alarm. + User::LeaveIfError( iAlarmModel->AlarmRemoveSnooze( alarmId ) ); + + // Update the container. + iContainer->ListBox()->HandleItemAdditionL(); + + // Display the confirmation note to the user about alarm deletion. + //CAknConfirmationNote* confNote = new( ELeave ) CAknConfirmationNote; + //HBufC* confNoteText = StringLoader::LoadLC( R_QTN_CLOCK_SNOOZE_NOTE_REMOVED, iCoeEnv ); + // Display the note. + //confNote->ExecuteLD( *confNoteText ); + // Cleanup. + //CleanupStack::PopAndDestroy( confNoteText ); + + __PRINTS( "CClockMainView::RemoveSnoozeL - Exit" ); + + } + +// --------------------------------------------------------- +// CClockMainView::RemoveAlarmL +// rest of the details are commented in the header +// --------------------------------------------------------- +// +void CClockMainView::RemoveAlarmL( TAlarmId aAlarmId ) + { + __PRINTS( "CClockMainView::RemoveAlarmL - Entry" ); + + // First get the index of the selected item in the list. + TInt itemIndex( iAlarmArray->ListBoxIndex( aAlarmId ) ); + + if( KErrNone > itemIndex ) + { + __PRINTS( "CClockMainView::RemoveAlarmL - Exit" ); + + return; + } + // Delete the alarm. + User::LeaveIfError( iAlarmModel->DeleteClockAlarm( aAlarmId ) ); + // Update the container. + iContainer->RemoveAlarmL( itemIndex ); + + __PRINTS( "CClockMainView::RemoveAlarmL - Exit" ); + } + +// --------------------------------------------------------- // CClockMainView::RemoveAlarmL // rest of the details are commented in the header // --------------------------------------------------------- @@ -239,7 +307,7 @@ // First get the index of the selected item in the list. TInt itemIndex( iContainer->ListBox()->CurrentItemIndex() ); - if( KErrNone >= itemIndex ) + if( KErrNone > itemIndex ) { __PRINTS( "CClockMainView::RemoveAlarmL - Exit" ); @@ -254,15 +322,6 @@ // Delete the alarm. User::LeaveIfError( iAlarmModel->DeleteClockAlarm( alarmId ) ); - - // Display the confirmation note to the user about alarm deletion. - CAknConfirmationNote* confNote = new( ELeave ) CAknConfirmationNote; - HBufC* confNoteText = StringLoader::LoadLC( R_QTN_CLOCK_ALARM_NOTE_DELETED, iCoeEnv ); - // Display the note. - confNote->ExecuteLD( *confNoteText ); - // Cleanup. - CleanupStack::PopAndDestroy( confNoteText ); - // Update the container. iContainer->RemoveAlarmL( itemIndex ); @@ -365,7 +424,25 @@ // Show the navigation pane again. appUi->MakeNavigationPaneVisible( ETrue, EClockAppMainViewId ); + + if( EClockAlarmDelete == iAlarmId ) + { + // Mark the alarm editor as closed. + iAlarmEditorOpen = EFalse; + if( alarmEditor ) + { + delete alarmEditor; + alarmEditor = NULL; + } + __PRINTS( "CClockMainView::ResetAlarmL:EClockAlarmDelete - Exit" ); + + // do the removing of the alarm + RemoveAlarmL( alarmId ); + + return; + } + if( EClockAlarmExit == iAlarmId ) { // Mark the alarm editor as closed. @@ -555,7 +632,15 @@ clockAppUi->MakeNavigationPaneVisible( ETrue, EClockAppMainViewId ); // Activate the container. - iContainer->ActivateL(); + if( clockAppUi->TransitionOngoing() ) + { + //clockAppUi->DoAppearTransition( iContainer ); + iContainer->ActivateL(); + } + else + { + iContainer->ActivateL(); + } __PRINTS( "CClockMainView::DoActivateL - Exit" ); } @@ -575,7 +660,11 @@ if( iContainer ) { - + CClockAppUi* clockAppUi( static_cast< CClockAppUi* > ( AppUi() ) ); + if( clockAppUi->TransitionOngoing() ) + { + //clockAppUi->DoDisappearTransition( iContainer ); + } // First remove the container from the control stack ( AppUi() )->RemoveFromStack( iContainer ); // And then destroy it. @@ -600,14 +689,7 @@ //Single click integration case EClockSelect: { - if ( iContainer->ListBox()->CurrentItemIndex() == 0 ) - { - SetNewAlarmL(); - } - else - { - ResetAlarmL(); - } + ResetAlarmL(); } break; @@ -645,7 +727,18 @@ RemoveAlarmL(); } break; - + case EClockRemoveSnooze: + { + // Remove snooze on the selected alarm + RemoveSnoozeL(); + } + break; + case EClockSwitchClockType: + { + // Switches clock type + SwitchClockTypeL(); + } + break; case EClockSettings: { // Let the appui handle the command. @@ -705,7 +798,14 @@ if( KErrNotFound == currentlyFocussedItem ) { TInt itemCount = iContainer->ListBox()->Model()->ItemTextArray()->MdcaCount(); - iContainer->ListBox()->SetCurrentItemIndexAndDraw( itemCount -1 ); + if( itemCount > 0 ) + { + iContainer->ListBox()->SetCurrentItemIndexAndDraw( itemCount -1 ); + } + else + { + iContainer->ListBox()->SetCurrentItemIndexAndDraw( KZeroAlarms ); + } } @@ -741,16 +841,17 @@ TInt alarmCount = iAlarmArray->MdcaCount(); + TBool deleteRemoveSnooze( EFalse ); - // There are no alarms set or the current focussed listitem is "New Alarm" then remove alarm specific options - if( KZeroAlarms >= alarmCount || ( KErrNone == iContainer->ListBox()->CurrentItemIndex() ) ) + // There are no alarms set + if( KZeroAlarms >= alarmCount ) { // There are no alarms set. Remove the irrelevant options from the menu. - aMenuPane->DeleteMenuItem( EClockNewAlarm ); aMenuPane->DeleteMenuItem( EClockResetAlarm ); aMenuPane->DeleteMenuItem( EClockRemoveAlarm ); aMenuPane->DeleteMenuItem( EClockActivateAlarm ); aMenuPane->DeleteMenuItem( EClockDeactivateAlarm ); + deleteRemoveSnooze = ETrue; } else { @@ -773,16 +874,26 @@ { // Alarm is not recurring. Remove the deactivate option from the menu. aMenuPane->DeleteMenuItem( EClockDeactivateAlarm ); + // no snooze removing needed for not recurring + deleteRemoveSnooze = ETrue; + } + // if the alarm is not snoozed, Remove the 'Remove snooze' option + if (alarmInfo.iState != EAlarmStateSnoozed ) + { + deleteRemoveSnooze = ETrue; } } else { // Alarm is already inactive. Remove the deactivate option from the menu. aMenuPane->DeleteMenuItem( EClockDeactivateAlarm ); + deleteRemoveSnooze = ETrue; } } - - + if( deleteRemoveSnooze ) + { + aMenuPane->DeleteMenuItem( EClockRemoveSnooze ); + } __PRINTS( "CClockMainView::DynInitMenuPaneL - Exit" ); } @@ -1231,4 +1342,27 @@ return returnValue; } +void CClockMainView::GiveVibes() + { + CClockAppUi* clockAppUi( static_cast< CClockAppUi* > ( AppUi() ) ); + if ( clockAppUi->GetFeedback() && + clockAppUi->GetFeedback()->TouchFeedbackSupported() ) + { + clockAppUi->GetFeedback()->InstantFeedback( ETouchFeedbackBasic ); + } + } + +void CClockMainView::SwitchClockTypeL() + { + TLocale phoneLocale; + // Set the new clock format with the locale. + phoneLocale.SetClockFormat( ( EClockAnalog == phoneLocale.ClockFormat() ) + ? EClockDigital : EClockAnalog ); + phoneLocale.Set(); + if( iContainer ) + { + iContainer->SwitchClockTypeL(); + } + } + // End of file