--- a/cbs/cbsui/UiSrc/CCbsUiLanguageSettingPage.cpp Thu Aug 19 10:28:14 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +0,0 @@
-/*
-* 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 "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:
-* Implementation of CCbsUiLanguageSettingPage.
-*
-*
-*/
-
-
-// INCLUDES
-#include <cbsuiApp.rsg>
-#include <AknQueryDialog.h>
-#include "CCbsUiLanguageSettingPage.h"
-#include "CCbsUiListQueryDialog.h"
-#include "CbsUiPanic.h"
-#include "CbsUiConstants.h"
-#include "MCbs.h"
-
-
-
-// CONSTANTS
-const TInt KFirstLaunch = 1;
-const TInt KAverageReceivedLanguages = 4;
-
-
-
-// ================= MEMBER FUNCTIONS =======================
-
-
-// C++ default constructor can NOT contain any code, that
-// might leave.
-//
-CCbsUiLanguageSettingPage::CCbsUiLanguageSettingPage(
- TInt aResourceID,
- TInt& aCurrentSelectionIndex,
- CDesCArrayFlat* aItemArray,
- MCbs& aServer )
- :
- CAknRadioButtonSettingPage(aResourceID, aCurrentSelectionIndex, aItemArray),
- iServer(aServer),
- iSelectionIndex(aCurrentSelectionIndex),
- iArray(*aItemArray)
- {
- }
-
-// ---------------------------------------------------------
-// CCbsUiLanguageSettingPage::OkToExitL
-//
-// (other iItems were commented in a header).
-// ---------------------------------------------------------
-//
-TBool CCbsUiLanguageSettingPage::OkToExitL( TBool aAccept )
- {
- __ASSERT_DEBUG( &iServer, CbsUiPanic(EServerNullError) );
-
- // if ok key has been pushed, then this level options
- // settings will be made
- if ( aAccept )
- {
- TCbsDbLanguages lang;
- iServer.GetLanguages(lang);
-
- switch ( iSelectionIndex )
- {
- case ECbsUiAll:
- lang.iLanguages[ECbsAll] = ETrue;
- lang.iLanguages[ECbsOther] = EFalse;
- break;
- case ECbsUiSelected:
- // don't set languages after this, allready set in language dlg
- LaunchLanguageDialogL();
- break;
- case ECbsUiOther:
- lang.iLanguages[ECbsAll] = EFalse;
- lang.iLanguages[ECbsOther] = ETrue;
- break;
- default:
- __ASSERT_DEBUG( 0, CbsUiPanic(EErrInvalidValue) );
- break;
- }
-
- if ( iSelectionIndex == ECbsUiAll || iSelectionIndex == ECbsUiOther )
- {
- User::LeaveIfError( iServer.SetLanguages(lang) );
- }
- }
-
-
- return ETrue;
- }
-
-
-// ---------------------------------------------------------
-// CCbsUiLanguageSettingPage::OfferKeyEventL
-//
-// (other iItems were commented in a header).
-// ---------------------------------------------------------
-//
-TKeyResponse CCbsUiLanguageSettingPage::OfferKeyEventL(
- const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- __ASSERT_DEBUG( ListBoxControl(), CbsUiPanic(EListBoxNullError) );
-
- switch ( aKeyEvent.iCode )
- {
- case EKeyOK:
- LaunchLanguageDialogL();
- break;
- default:
- break;
- }
-
- return CAknSettingPage::OfferKeyEventL( aKeyEvent, aType );
- }
-
-// ---------------------------------------------------------
-// CCbsUiLanguageSettingPage::GetLanguagesL
-//
-// (other iItems were commented in a header).
-// ---------------------------------------------------------
-//
-void CCbsUiLanguageSettingPage::GetLanguagesL(
- CArrayFix<TInt>& aIndexArray, TCbsDbLanguages& aLanguages )
- {
- iServer.GetLanguages(aLanguages);
-
- for ( TInt j(0); j < ECbsOther; j++ )
- {
- if ( aLanguages.iLanguages[j] )
- {
- aIndexArray.AppendL(j);
- }
- }
- }
-
-// ---------------------------------------------------------
-// CCbsUiLanguageSettingPage::LaunchLanguageDialogL
-//
-// (other iItems were commented in a header).
-// ---------------------------------------------------------
-//
-void CCbsUiLanguageSettingPage::LaunchLanguageDialogL()
- {
- iCurrentLaunchingId++;
-
- if ( iCurrentLaunchingId == KFirstLaunch )
- {
- if ( ListBoxControl()->CurrentItemIndex() == ECbsUiSelected )
- {
- CArrayFixFlat<TInt>* indexArray =
- new (ELeave) CArrayFixFlat<TInt>(KAverageReceivedLanguages);
- CleanupStack::PushL(indexArray);
-
- TCbsDbLanguages languages;
- GetLanguagesL(*indexArray, languages);
-
- CCbsUiListQueryDialog* dlg = new (ELeave)
- CCbsUiListQueryDialog(*indexArray);
- TInt ret( dlg->ExecuteLD(R_LANGUAGE_MULTISELECTION_LIST_QUERY) );
-
- if( ret )
- {
- SetLanguagesL(*indexArray, languages);
- }
- else
- {
- iCurrentLaunchingId--;
- User::Leave( KErrNone );
- }
-
- CleanupStack::PopAndDestroy(); // indexArray;
- }
- }
- }
-
-// ---------------------------------------------------------
-// CCbsUiLanguageSettingPage::SetLanguagesL
-//
-// (other iItems were commented in a header).
-// ---------------------------------------------------------
-//
-void CCbsUiLanguageSettingPage::SetLanguagesL(
- CArrayFix<TInt>& aIndexArray, TCbsDbLanguages& aLanguages )
- {
- // just clearing the language selection before setting them
- for ( TInt i(0); i < ECbsOther; i++ )
- {
- aLanguages.iLanguages[i] = EFalse;
- }
-
- // set the values which are chosen
- if ( &aIndexArray )
- {
- TInt count( aIndexArray.Count() );
-
- for (TInt i(0); i < count; i++)
- {
- TInt selectedIndex( aIndexArray.At(i) );
- __ASSERT_DEBUG( selectedIndex < ECbsOther,
- CbsUiPanic(EErrIndexOutOfBounds) );
- aLanguages.iLanguages[selectedIndex] = ETrue;
- }
-
- TBool languageSelected( count > 0 );
- if ( languageSelected )
- {
- aLanguages.iLanguages[ECbsAll] = EFalse;
- aLanguages.iLanguages[ECbsOther] = EFalse;
- }
- else
- {
- // The user can clear the languages and then previously
- // defined value will be selected.
- // If other has not been previously selected, then
- // all has to be selected
- if ( !aLanguages.iLanguages[ECbsOther] )
- {
- aLanguages.iLanguages[ECbsAll] = ETrue;
- }
- }
-
- User::LeaveIfError( iServer.SetLanguages( aLanguages ) );
- }
- }
-
-
-// End of File