diff -r 8c9c07ad8b6b -r 65a3ef1d5bd0 commsconfig/cscsettingsui/src/cscsettingsuimainview.cpp --- a/commsconfig/cscsettingsui/src/cscsettingsuimainview.cpp Mon Jun 21 15:29:21 2010 +0300 +++ b/commsconfig/cscsettingsui/src/cscsettingsuimainview.cpp Thu Aug 19 09:45:22 2010 +0300 @@ -139,7 +139,7 @@ // --------------------------------------------------------------------------- // CCSCSettingsUiMainView::UpdateSoftkeysL -// Processes situation when it´s notified that softkeys need to be changed. +// Processes situation when it�s notified that softkeys need to be changed. // --------------------------------------------------------------------------- // void CCSCSettingsUiMainView::UpdateSoftkeysL( ) @@ -261,9 +261,8 @@ case ECSCSettingsUiDelete: { CSCSETUIDEBUG( " HandleCommandL - delete service" ); - iContainer->DeleteServiceL(); - iDeleted = ETrue; - HandleReturnToPreviousViewL(); + iDeleted = iContainer->DeleteServiceL(); + HandleReturnToPreviousViewL( EFalse ); break; } case EEikCmdExit: @@ -873,7 +872,7 @@ // Handles returning to previous view where settingsui was launced. // --------------------------------------------------------------------------- // -void CCSCSettingsUiMainView::HandleReturnToPreviousViewL() +void CCSCSettingsUiMainView::HandleReturnToPreviousViewL( TBool aViewBack ) { CSCSETUIDEBUG( "CCSCSettingsUiMainView::HandleReturnToPreviousViewL - IN" ); @@ -887,14 +886,9 @@ tabview.iUid = iModel.SettingsHandler().ServiceTabViewIdL( iModel.CurrentSPEntryId() ) ) - if ( iDeleted && KCSCServiceViewId != iModel.ReturnViewId() ) - { - TVwsViewId idleId; - AknDef::GetPhoneIdleViewId( idleId ); - ActivateViewL( idleId ); - AppUi()->HandleCommandL( EEikCmdExit ); - } - else if ( tabview.iUid == iModel.ReturnViewId().iUid ) + // Launched from phonebookview. + // Press Back button, return PhoneBookTabView. + if ( aViewBack && tabview.iUid == iModel.ReturnViewId().iUid ) { RxSPViewServices viewServices; TInt err = viewServices.Activate( @@ -905,10 +899,34 @@ AppUi()->HandleCommandL( EEikCmdExit ); } + + if ( iDeleted && KCSCServiceViewId != iModel.ReturnViewId() ) + { + // Launched from phonebookview. + // Press Ok button, return homescreen. + TVwsViewId idleId; + AknDef::GetPhoneIdleViewId( idleId ); + ActivateViewL( idleId ); + AppUi()->HandleCommandL( EEikCmdExit ); + } + else if( !iDeleted && KCSCServiceViewId != iModel.ReturnViewId() ) + { + // Launched from phonebookview. + // Press cancel button, return current view. + TUid curview = Id(); + AppUi()->ActivateLocalViewL( curview ); + } + else if( !aViewBack && !iDeleted && KCSCServiceViewId == iModel.ReturnViewId() ) + { + // Launched from service view. + // Press cancel button, return current view. + TUid curview = Id(); + AppUi()->ActivateLocalViewL( curview ); + } else { - // Not deleted or launched from service tab, - // activate previous view. + // Launched from service view. + // Press Back button or Press Delete button, activate previous view. AppUi()->ActivateLocalViewL( iModel.ReturnViewId() ); } }