--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pushmtm/MtmUiSrc/PushSettingsDialog.cpp Mon Mar 30 12:49:49 2009 +0300
@@ -0,0 +1,699 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Member definitions of CPushSettingsDialog.
+*
+*/
+
+
+
+// INCLUDES
+
+#include "PushSettingsDialog.h"
+#include "PushMtmUiDef.h"
+#include "PushMtmUiPanic.h"
+#include <PushMtmUi.rsg>
+#include "PushMtmUi.hrh"
+#include "PushMtmDef.hrh"
+#include <akntitle.h>
+#include <akncontext.h>
+#include <AknQueryDialog.h>
+#include <barsread.h>
+#include <AknRadioButtonSettingPage.h>
+#include <bldvariant.hrh>
+#ifdef __SERIES60_HELP
+// Context-Sensitve Help File
+#include <hlplch.h>
+#include <csxhelp/wpush.hlp.hrh>
+#endif // __SERIES60_HELP
+#include <msvapi.h>
+#include <data_caging_path_literals.hrh>
+#include <f32file.h>
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::CPushSettingsDialog
+// ---------------------------------------------------------
+//
+CPushSettingsDialog::CPushSettingsDialog( CMsvSession& aMsvSession )
+: CAknDialog(),
+ iMsvSession( aMsvSession ),
+ iResourceLoader( *iCoeEnv ),
+ iNewTitleTextUsed( EFalse ),
+ iRestoreSP( ETrue )
+ {
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ExecuteLD
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::ExecuteLD()
+ {
+ CleanupStack::PushL( this );
+ ConstructL();
+ CAknDialog::ConstructL( R_PUSHSD_MENU );
+ CleanupStack::Pop( this );
+ CAknDialog::ExecuteLD( R_PUSHSD_DIALOG );
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ConstructL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::ConstructL()
+ {
+ // Add resource file.
+ TParse* fileParser = new (ELeave) TParse;
+ // Unnecessary to call CleanupStack::PushL( fileParser );
+ fileParser->Set( KPushMtmUiResourceFileAndDrive, &KDC_MTM_RESOURCE_DIR, NULL );
+ iResourceFile = fileParser->FullName();
+ delete fileParser;
+ fileParser = NULL;
+ iResourceLoader.OpenL( iResourceFile );
+
+ // Construct model.
+ ConstructModelL();
+
+ // Now model is ready for view.
+ const TInt KGranularity( 8 );
+ iSettingType = new (ELeave) CArrayFixFlat<TSettingType>( KGranularity );
+
+ // Set up Title Pane and Context Pane.
+ SetUpStatusPaneL();
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::~CPushSettingsDialog
+// ---------------------------------------------------------
+//
+CPushSettingsDialog::~CPushSettingsDialog()
+ {
+ if ( iRestoreSP )
+ {
+ TRAP_IGNORE( RestoreStatusPaneL() );
+ }
+ iResourceLoader.Close();
+ delete iPreviousTitleText;
+ delete iModel;
+ delete iSettingType;
+ iSettingListBox = NULL;
+ iSettingListBoxItemTextArray = NULL;
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::SetUpStatusPaneL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::SetUpStatusPaneL()
+ {
+ if ( !iNewTitleTextUsed )
+ {
+ __ASSERT_DEBUG( !iPreviousTitleText,
+ UiPanic( EPushMtmUiPanAlreadyExistingTitle ) );
+ // Set up Title Pane.
+ CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane();
+ CAknTitlePane* titlePane =
+ STATIC_CAST( CAknTitlePane*,
+ statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
+ // Save content.
+ iPreviousTitleText = titlePane->Text()->AllocL();
+ // Set new content.
+ TResourceReader reader;
+ iCoeEnv->CreateResourceReaderLC( reader, R_PUSHSD_TITLE_PANE );
+ titlePane->SetFromResourceL( reader );
+ CleanupStack::PopAndDestroy(); // reader
+ iNewTitleTextUsed = ETrue;
+ }
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::RestoreStatusPaneL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::RestoreStatusPaneL()
+ {
+ if ( iNewTitleTextUsed )
+ {
+ __ASSERT_DEBUG( iPreviousTitleText,
+ UiPanic( EPushMtmUiPanMissingTitle ) );
+ // Restore Title Pane.
+ CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane();
+ CAknTitlePane* titlePane =
+ STATIC_CAST( CAknTitlePane*,
+ statusPane->ControlL( TUid::Uid( EEikStatusPaneUidTitle ) ) );
+ titlePane->SetTextL( *iPreviousTitleText );
+ delete iPreviousTitleText;
+ iPreviousTitleText = NULL;
+ iNewTitleTextUsed = EFalse;
+ }
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ConstructModelL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::ConstructModelL()
+ {
+ __ASSERT_DEBUG( !iModel, UiPanic( EPushMtmUiPanAlreadyExistingModel ) );
+
+ // This will be the model.
+ iModel = CPushMtmSettings::NewL();
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::UpdateSettingListBoxModelL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::UpdateSettingListBoxModelL()
+ {
+ __ASSERT_DEBUG( iModel &&
+ iSettingListBox &&
+ iSettingListBoxItemTextArray &&
+ iSettingType, UiPanic( EPushMtmUiPanNotInitialized ) );
+
+ // Reset the list box' item text array and the setting type array.
+ iSettingListBoxItemTextArray->Reset();
+ iSettingType->Reset();
+
+ // Service reception.
+ ConstructAndAppendItemTextL
+ ( EServiceReception, R_PUSHSD_RECEPT,
+ iModel->ServiceReception() ? R_PUSHSD_RECEP_ON : R_PUSHSD_RECEP_OFF );
+
+#ifdef __SERIES60_PUSH_SL
+
+ // Service loading (SL specific).
+ ConstructAndAppendItemTextL
+ ( EServiceLoadingType, R_PUSHSD_LOADING,
+ ( iModel->ServiceLoadingType() == CPushMtmSettings::EAutomatic ) ?
+ R_PUSHSD_LOAD_AUTOM : R_PUSHSD_LOAD_MAN );
+
+#endif //__SERIES60_PUSH_SL
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::UpdateSettingListBoxViewL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::UpdateSettingListBoxViewL() const
+ {
+ __ASSERT_DEBUG( iSettingListBox, UiPanic( EPushMtmUiPanMissingListBox ) );
+ //iSettingListBox->DrawItem( iSettingListBox->CurrentItemIndex() );
+ TInt currentItemIndex( iSettingListBox->CurrentItemIndex() );
+ iSettingListBox->DrawNow();
+ iSettingListBox->SetCurrentItemIndex( currentItemIndex );
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ApplyModelChangesL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::ApplyModelChangesL()
+ {
+ UpdateSettingListBoxModelL();
+ UpdateSettingListBoxViewL();
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ShowRadioButtonSettingPageL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::ShowRadioButtonSettingPageL
+ ( const TSettingType aSettingType )
+ {
+ __ASSERT_DEBUG( iModel, UiPanic( EPushMtmUiPanMissingModel ) );
+
+ TInt index;
+ HBufC* settingTitle = ConstructSettingTitleL( aSettingType );
+ CleanupStack::PushL( settingTitle );
+ CDesCArrayFlat* itemArray =
+ ConstructSettingValueArrayL( aSettingType, index );
+ CleanupStack::PushL( itemArray );
+ CAknRadioButtonSettingPage* settingPage =
+ new (ELeave) CAknRadioButtonSettingPage
+ ( R_PUSHSD_SP_RADIOBUTTON, index, itemArray );
+ CleanupStack::PushL( settingPage );
+ settingPage->SetSettingTextL( *settingTitle );
+
+ const TInt previousIndex = index;
+ CleanupStack::Pop(); // settingPage
+ if ( settingPage->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
+ {
+ if ( previousIndex != index )
+ {
+ // Set the changes in the model.
+ UpdateSettingL( aSettingType, index );
+ }
+ }
+
+ CleanupStack::PopAndDestroy( 2 ); // itemArray, settingTitle
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ShowServiceLoadingTypeConfirmationL
+// ---------------------------------------------------------
+//
+TBool CPushSettingsDialog::ShowServiceLoadingTypeConfirmationL() const
+ {
+ CAknQueryDialog* dlg = CAknQueryDialog::NewL();
+ return dlg->ExecuteLD( R_PUSHSD_AUTOLOAD_SETT_CONFIRM ) == EAknSoftkeyYes;
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ChangeCurrentSettingWithoutSettingPageL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::ChangeCurrentSettingWithoutSettingPageL()
+ {
+ __ASSERT_DEBUG( iModel && iSettingListBox,
+ UiPanic( EPushMtmUiPanNotInitialized ) );
+
+ switch ( iSettingType->At( iSettingListBox->CurrentItemIndex() ) )
+ {
+ case EServiceReception:
+ {
+ iModel->SetServiceReception( !iModel->ServiceReception() );
+ break;
+ }
+
+#ifdef __SERIES60_PUSH_SL
+
+ case EServiceLoadingType:
+ {
+ if ( iModel->ServiceLoadingType() == CPushMtmSettings::EManual )
+ {
+ // Display a confirmation dialog first.
+ if ( ShowServiceLoadingTypeConfirmationL() )
+ {
+ iModel->SetServiceLoadingType
+ ( CPushMtmSettings::EAutomatic );
+ }
+ }
+ else
+ {
+ // Do not show confirmation dialog.
+ iModel->SetServiceLoadingType( CPushMtmSettings::EManual );
+ }
+ break;
+ }
+
+#endif //__SERIES60_PUSH_SL
+
+ default:
+ {
+ __ASSERT_DEBUG( EFalse,
+ UiPanic( EPushMtmUiPanCommandNotSupported ) );
+ break;
+ }
+ }
+
+ // Apply changes.
+ iModel->SaveL();
+ ApplyModelChangesL();
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ChangeCurrentSettingL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::ChangeCurrentSettingL()
+ {
+ __ASSERT_DEBUG( iModel && iSettingListBox,
+ UiPanic( EPushMtmUiPanNotInitialized ) );
+ ShowRadioButtonSettingPageL
+ ( iSettingType->At( iSettingListBox->CurrentItemIndex() ) );
+ // Apply changes.
+ iModel->SaveL();
+ ApplyModelChangesL();
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ConstructAndAppendItemTextL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::ConstructAndAppendItemTextL
+( const TSettingType aSettingType,
+ const TInt aTitleResId, const TInt aValueResId,
+ const TDesC& aTitleText, const TDesC& aValueText )
+ {
+ __ASSERT_DEBUG( iSettingListBoxItemTextArray && iSettingType,
+ UiPanic( EPushMtmUiPanNotInitialized ) );
+
+ // Define separator text.
+ _LIT( KHeadOfItemText, " \t" );
+ // Define separator text.
+ _LIT( KSeparatorOfItemText, "\t\t" );
+
+ HBufC* titleText = ( aTitleResId != KErrNotFound ) ?
+ iEikonEnv->AllocReadResourceLC( aTitleResId ) : aTitleText.AllocLC();
+ HBufC* valueText = ( aValueResId != KErrNotFound ) ?
+ iEikonEnv->AllocReadResourceLC( aValueResId ) : aValueText.AllocLC();
+
+ // Define a heap descriptor to hold all the item text.
+ HBufC* itemText = HBufC::NewMaxLC(
+ KHeadOfItemText().Length() + titleText->Length() +
+ KSeparatorOfItemText().Length() + valueText->Length() );
+ TPtr itemTextPtr = itemText->Des();
+ itemTextPtr = KHeadOfItemText;
+ itemTextPtr += *titleText;
+ itemTextPtr += KSeparatorOfItemText;
+ itemTextPtr += *valueText;
+ iSettingListBoxItemTextArray->AppendL( itemTextPtr );
+ iSettingType->AppendL( aSettingType );
+
+ CleanupStack::PopAndDestroy( 3 ); // itemText, valueText, titleText
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ConstructSettingTitleL
+// ---------------------------------------------------------
+//
+HBufC* CPushSettingsDialog::ConstructSettingTitleL
+( const TSettingType aSettingType ) const
+ {
+ const TInt titleResId =
+ aSettingType == EServiceReception ? R_PUSHSD_RECEPT :
+#ifdef __SERIES60_PUSH_SL
+ aSettingType == EServiceLoadingType ? R_PUSHSD_LOADING :
+#endif //__SERIES60_PUSH_SL
+ KErrNotFound;
+
+ __ASSERT_DEBUG( titleResId != KErrNotFound,
+ UiPanic( EPushMtmUiPanNotInitialized ) );
+
+ return iEikonEnv->AllocReadResourceL( titleResId );
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ConstructSettingValueArray
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::ConstructSettingValueArray
+ (
+ const TSettingType aSettingType,
+ TInt& aVal1ResId,
+ TInt& aVal2ResId
+ ) const
+ {
+ aVal1ResId =
+ aSettingType == EServiceReception ? R_PUSHSD_RECEP_ON :
+#ifdef __SERIES60_PUSH_SL
+ aSettingType == EServiceLoadingType ? R_PUSHSD_LOAD_AUTOM :
+#endif //__SERIES60_PUSH_SL
+ KErrNotFound;
+
+ aVal2ResId =
+ aSettingType == EServiceReception ? R_PUSHSD_RECEP_OFF :
+#ifdef __SERIES60_PUSH_SL
+ aSettingType == EServiceLoadingType ? R_PUSHSD_LOAD_MAN :
+#endif //__SERIES60_PUSH_SL
+ KErrNotFound;
+
+ __ASSERT_DEBUG( aVal1ResId != KErrNotFound &&
+ aVal2ResId != KErrNotFound,
+ UiPanic( EPushMtmUiPanNotInitialized ) );
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::CurrentlySelectedSettingValueResId
+// ---------------------------------------------------------
+//
+TInt CPushSettingsDialog::CurrentlySelectedSettingValueResId
+( const TSettingType aSettingType, TInt& aIndex ) const
+ {
+ TInt val1ResId( KErrNotFound );
+ TInt val2ResId( KErrNotFound );
+ ConstructSettingValueArray( aSettingType, val1ResId, val2ResId );
+
+ const TBool firstSelected =
+ aSettingType == EServiceReception ? iModel->ServiceReception() :
+#ifdef __SERIES60_PUSH_SL
+ aSettingType == EServiceLoadingType ? iModel->ServiceLoadingType() ==
+ CPushMtmSettings::EAutomatic :
+#endif //__SERIES60_PUSH_SL
+ EFalse;
+
+ aIndex = firstSelected ? 0 : 1;
+ return firstSelected ? val1ResId : val2ResId;
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ConstructSettingValueArrayL
+// ---------------------------------------------------------
+//
+CDesCArrayFlat* CPushSettingsDialog::ConstructSettingValueArrayL
+( const TSettingType aSettingType, TInt& aIndex ) const
+ {
+ CDesCArrayFlat* valueArray = new (ELeave) CDesCArrayFlat( 2 );
+ CleanupStack::PushL( valueArray );
+
+ TInt val1ResId( KErrNotFound );
+ TInt val2ResId( KErrNotFound );
+ ConstructSettingValueArray( aSettingType, val1ResId, val2ResId );
+ HBufC* value1Text = iEikonEnv->AllocReadResourceLC( val1ResId );
+ HBufC* value2Text = iEikonEnv->AllocReadResourceLC( val2ResId );
+ valueArray->AppendL( *value1Text );
+ valueArray->AppendL( *value2Text );
+ CleanupStack::PopAndDestroy( 2 ); // value2Text, value1Text
+
+ // Returned val. is ignored.
+ CurrentlySelectedSettingValueResId( aSettingType, aIndex );
+
+ CleanupStack::Pop(); // valueArray
+ return valueArray;
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::UpdateSettingL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::UpdateSettingL
+( const TSettingType aSettingType, const TInt aIndex ) const
+ {
+ switch ( aSettingType )
+ {
+ case EServiceReception:
+ {
+ iModel->SetServiceReception( aIndex == 0 ? ETrue : EFalse );
+ break;
+ }
+
+#ifdef __SERIES60_PUSH_SL
+
+ case EServiceLoadingType:
+ {
+ if ( aIndex == 0 )
+ // iModel->ServiceLoadingType() == CPushMtmSettings::EManual
+ {
+ // Display a confirmation dialog first.
+ if ( ShowServiceLoadingTypeConfirmationL() )
+ {
+ iModel->SetServiceLoadingType
+ ( CPushMtmSettings::EAutomatic );
+ }
+ }
+ else
+ {
+ // Do not show confirmation dialog.
+ iModel->SetServiceLoadingType( CPushMtmSettings::EManual );
+ }
+ break;
+ }
+
+#endif //__SERIES60_PUSH_SL
+
+ default:
+ {
+ __ASSERT_DEBUG( EFalse,
+ UiPanic( EPushMtmUiPanCommandNotSupported ) );
+ break;
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::OfferKeyEventL
+// ---------------------------------------------------------
+//
+TKeyResponse CPushSettingsDialog::OfferKeyEventL
+( const TKeyEvent& aKeyEvent, TEventCode aType )
+ {
+ if ( aType == EEventKey && aKeyEvent.iCode == EKeyEscape )
+ {
+ // Shutting down. Do not restore SP.
+ iRestoreSP = EFalse;
+ }
+ return CAknDialog::OfferKeyEventL( aKeyEvent, aType );
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::DynInitMenuPaneL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::DynInitMenuPaneL
+ ( TInt /*aResourceId*/, CEikMenuPane* /*aMenuPane*/ )
+ {
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::PreLayoutDynInitL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::PreLayoutDynInitL()
+ {
+ __ASSERT_DEBUG( !iSettingListBox &&
+ !iSettingListBoxItemTextArray,
+ UiPanic( EPushMtmUiPanAlreadyInitialized ) );
+
+ iSettingListBox = STATIC_CAST( CAknSettingStyleListBox*,
+ Control( EPushSettingsDialogCntrlListBox ) );
+ iSettingListBoxItemTextArray = STATIC_CAST( CDesCArrayFlat*,
+ iSettingListBox->Model()->ItemTextArray() );
+ iSettingListBox->SetListBoxObserver( this );
+ TRect rect = Rect();
+ iSettingListBox->SetRect( rect );
+ // Set up scroll bar.
+ iSettingListBox->CreateScrollBarFrameL( ETrue );
+ iSettingListBox->ScrollBarFrame()->SetScrollBarVisibilityL
+ ( CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
+
+ // Update setting list box model.
+ UpdateSettingListBoxModelL();
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::ProcessCommandL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::ProcessCommandL( TInt aCommand )
+ {
+ HideMenu();
+
+ switch ( aCommand )
+ {
+ case EPushSettingsDialogCmdChangeWithoutSettingPage:
+ {
+ ChangeCurrentSettingWithoutSettingPageL();
+ break;
+ }
+
+ case EPushSettingsDialogCmdChange:
+ {
+ ChangeCurrentSettingL();
+ break;
+ }
+
+#ifdef __SERIES60_HELP
+
+ case EPushSettingsDialogCmdHelp:
+ {
+ HlpLauncher::LaunchHelpApplicationL
+ ( iEikonEnv->WsSession(),
+ iEikonEnv->EikAppUi()->AppHelpContextL() );
+ break;
+ }
+
+#endif //__SERIES60_HELP
+
+ case EPushSettingsDialogCmdBack:
+ case EPushSettingsDialogCmdExit:
+ {
+ TryExitL( EPushSettingsDialogCmdAknExit );
+ break;
+ }
+
+ case EPushSettingsDialogCmdAknExit:
+ {
+ STATIC_CAST( MEikCommandObserver*, iEikonEnv->EikAppUi() )->
+ ProcessCommandL( EPushSettingsDialogCmdAknExit );
+ break;
+ }
+
+ default:
+ {
+ break;
+ }
+ }
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::OkToExitL
+// ---------------------------------------------------------
+//
+TBool CPushSettingsDialog::OkToExitL( TInt aButtonId )
+ {
+ TBool ret( EFalse );
+
+ switch ( aButtonId )
+ {
+ case EPushSettingsDialogCmdOptions:
+ {
+ if ( !MenuShowing() )
+ {
+ DisplayMenuL();
+ }
+ break;
+ }
+ case EPushSettingsDialogCmdChangeWithoutSettingPage:
+ {
+ ChangeCurrentSettingWithoutSettingPageL();
+ break;
+ }
+ case EPushSettingsDialogCmdBack:
+ case EPushSettingsDialogCmdExit:
+ case EPushSettingsDialogCmdAknExit:
+ {
+ RestoreStatusPaneL();
+ ret = ETrue;
+ break;
+ }
+ default:
+ {
+ break;
+ }
+ }
+
+ return ret;
+ }
+
+// ---------------------------------------------------------
+// CPushSettingsDialog::HandleListBoxEventL
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::HandleListBoxEventL
+( CEikListBox* /*aListBox*/, TListBoxEvent aEventType )
+ {
+ // Generate change command only if double tapped/center key is pressed.
+ //Removed single tap check from here
+ if ( aEventType == EEventEnterKeyPressed ||
+ aEventType == EEventItemDoubleClicked )
+ {
+ ProcessCommandL( EPushSettingsDialogCmdChangeWithoutSettingPage );
+ }
+ }
+
+#ifdef __SERIES60_HELP
+// ---------------------------------------------------------
+// CPushSettingsDialog::GetHelpContext
+// ---------------------------------------------------------
+//
+void CPushSettingsDialog::GetHelpContext( TCoeHelpContext& aContext ) const
+ {
+ aContext.iMajor = TUid::Uid( EUidPushViewerApp );
+ aContext.iContext = KWPUSH_HLP_SETTINGS;
+ }
+#endif //__SERIES60_HELP
+
+// End of file.