--- a/commsconfig/cscsettingsui/src/cscsettingsuimaincontainer.cpp Tue Feb 02 00:05:57 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,878 +0,0 @@
-/*
-* Copyright (c) 2007-2009 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: Implements CSCSettingsUiMainContainer methods
-*
-*/
-
-
-#include <aknlists.h>
-#include <coecntrl.h>
-#include <cchclient.h>
-#include <csc.hlp.hrh>
-#include <cmmanagerext.h>
-#include <StringLoader.h>
-#include <spdefinitions.h>
-#include <cscsettingsui.rsg>
-#include <aknlistquerydialog.h>
-#include <cvimpstsettingsstore.h>
-
-#include "cscsettingsui.hrh"
-#include "cscsettingsuimodel.h"
-#include "cscsettingsuilogger.h"
-#include "cscengservicehandler.h"
-#include "cscsettingsuiconstants.h"
-#include "cscengdestinationshandler.h"
-#include "cipapputilsaddressresolver.h"
-#include "cscsettingsuimaincontainer.h"
-
-// Format of the setting item.
-_LIT( KCSCSettingsUiListItemTextFormat, "\t%S\t\t%S" );
-
-_LIT( KDoubleBackSlash, "\\" );
-_LIT( KEmptyPassword, "*****" );
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-CCSCSettingsUiMainContainer::CCSCSettingsUiMainContainer(
- CCSCSettingsUiModel& aModel )
- : iModel( aModel )
- {
- }
-
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::ConstructL(
- const TRect& aRect )
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainContainer::ConstructL - begin" );
-
- CreateWindowL();
- ConstructListBoxL();
- SetRect( aRect );
- ActivateL();
-
- CSCSETUIDEBUG( "CCSCSettingsUiMainContainer::ConstructL - end" );
- }
-
-
-// ---------------------------------------------------------------------------
-// ---------------------------------------------------------------------------
-//
-CCSCSettingsUiMainContainer::~CCSCSettingsUiMainContainer()
- {
- CSCSETUIDEBUG(
- "CCSCSettingsUiMainContainer::~CCSCSettingsUiMainContainer - begin" );
-
- iListBoxItemArray.Reset();
- iListBoxItemArray.Close();
-
- if ( iCaption )
- {
- delete iCaption;
- }
-
- delete iListBox;
-
- CSCSETUIDEBUG(
- "CCSCSettingsUiMainContainer::~CCSCSettingsUiMainContainer - end" );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::UpdateContainerL
-// Updates container and redraws listbox items.
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::UpdateContainerL()
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainContainer::UpdateContainerL - begin" );
-
- // Get listbox items from model.
- CTextListBoxModel* model = iListBox->Model();
- MDesCArray* textArray = model->ItemTextArray();
- CDesCArray* listBoxItems = static_cast<CDesCArray*>( textArray );
- listBoxItems->Reset();
- iListBoxItemArray.Reset();
-
- // Initialize setting items.
- InitializeSettingItemsL();
-
- CSCSETUIDEBUG( "CCSCSettingsUiMainContainer::UpdateContainerL - end" );
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::HandoverNotificationToneQueryL
-// Shows a query which changes handover notification tone setting for service.
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::HandoverNotificationToneQueryL()
- {
- CDesCArrayFlat* items = new ( ELeave ) CDesCArrayFlat( 2 );
- CleanupStack::PushL( items );
-
- HBufC* onItem = StringLoader::LoadLC(
- R_CSCSETTINGSUI_SETTING_HANDOVER_NOTIF_TONE_ON );
- items->AppendL( *onItem );
- CleanupStack::PopAndDestroy( onItem );
-
- HBufC* offItem = StringLoader::LoadLC(
- R_CSCSETTINGSUI_SETTING_HANDOVER_NOTIF_TONE_OFF );
- items->AppendL( *offItem );
- CleanupStack::PopAndDestroy( offItem );
-
- TInt index( 0 );
- CAknListQueryDialog* dialog =
- new ( ELeave ) CAknListQueryDialog( &index );
-
- dialog->PrepareLC( R_CSCSETTINGSUI_HANDOVER_NOTIFICATION_TONE_QUERY );
- dialog->SetItemTextArray( items );
- dialog->SetOwnershipType( ELbmDoesNotOwnItemArray );
-
- if ( dialog->RunLD() )
- {
- // Update setting according user selection
- if ( 0 == index )
- {
- // Set handover notification tone setting value on
- iModel.SettingsHandler().SetHandoverNotifTonePrefL(
- iModel.CurrentSPEntryId(), EOn );
- }
- else if ( 1 == index )
- {
- // Set handover notification tone setting value off
- iModel.SettingsHandler().SetHandoverNotifTonePrefL(
- iModel.CurrentSPEntryId(), EOff );
- }
- else
- {
- // invalid index
- User::Leave( KErrGeneral );
- }
- }
- else
- {
- // cancelled
- }
-
- CleanupStack::PopAndDestroy( items );
- UpdateContainerL();
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::PresenceReqPrefQueryL
-// Shows a query which changes presence request preference for service.
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::PresenceReqPrefQueryL()
- {
- CDesCArrayFlat* items = new ( ELeave ) CDesCArrayFlat( 2 );
- CleanupStack::PushL( items );
-
- HBufC* alwaysAskItem = StringLoader::LoadLC(
- R_CSCSETTINGSUI_PRES_PREF_ALWAYS_ASK );
- items->AppendL( *alwaysAskItem );
- CleanupStack::PopAndDestroy( alwaysAskItem );
-
- HBufC* autoAcceptItem = StringLoader::LoadLC(
- R_CSCSETTINGSUI_PRES_PREF_ACCEPT_AUTOMATICALLY );
- items->AppendL( *autoAcceptItem );
- CleanupStack::PopAndDestroy( autoAcceptItem );
-
- TInt index( 0 );
- CAknListQueryDialog* dialog =
- new ( ELeave ) CAknListQueryDialog( &index );
-
- dialog->PrepareLC( R_CSCSETTINGSUI_PRESENCE_REQUEST_PREF_QUERY );
- dialog->SetItemTextArray( items );
- dialog->SetOwnershipType( ELbmDoesNotOwnItemArray );
-
- if ( dialog->RunLD() )
- {
- // Update setting according user selection
- if ( 0 == index )
- {
- // Set presence request preference setting value
- iModel.SettingsHandler().SetPresenceReqPrefL(
- iModel.CurrentSPEntryId(), EOff );
- }
- else if ( 1 == index )
- {
- // Set presence request preference setting value
- iModel.SettingsHandler().SetPresenceReqPrefL(
- iModel.CurrentSPEntryId(), EOn );
- }
- else
- {
- // invalid index
- User::Leave( KErrGeneral );
- }
- }
- else
- {
- // canceled
- }
-
- CleanupStack::PopAndDestroy( items );
- UpdateContainerL();
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::SaveImTonePathL
-// Saves Im tone path to permanent storage.
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::SaveImTonePathL( const TDesC& aTonePath )
- {
- MVIMPSTSettingsStore* settings = CVIMPSTSettingsStore::NewLC();
-
- User::LeaveIfError( settings->SetL(
- iModel.CurrentSPEntryId(), EServiceToneFileName, aTonePath ) );
-
- CleanupStack::PopAndDestroy();
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::ListBox
-// Returns handle to the listbox.
-// ---------------------------------------------------------------------------
-//
-CAknSettingStyleListBox* CCSCSettingsUiMainContainer::ListBox()
- {
- return iListBox;
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::CurrentItemIndex
-// Returns index of selected listbox item.
-// ---------------------------------------------------------------------------
-//
-TMainListBoxItem CCSCSettingsUiMainContainer::CurrentItem() const
- {
- TInt currentItemIndex( iListBox->CurrentItemIndex() );
- return iListBoxItemArray[ currentItemIndex ];
- }
-
-
-// ---------------------------------------------------------------------------
-// From class CoeControl
-// CCSCSettingsUiMainContainer::ComponentControl
-// ---------------------------------------------------------------------------
-//
-CCoeControl* CCSCSettingsUiMainContainer::ComponentControl(
- TInt /*aIndex*/ ) const
- {
- return iListBox;
- }
-
-
-// -----------------------------------------------------------------------------
-// From class CoeControl
-// For getting help context
-// -----------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::GetHelpContext(
- TCoeHelpContext& aContext ) const
- {
- aContext.iMajor = KUidCscSettingsUiHelp;
- aContext.iContext = KSERVTAB_HLP_SETTINGS;
- }
-
-// ---------------------------------------------------------------------------
-// From class CoeControl
-// CCSCSettingsUiMainContainer::OfferKeyEventL
-// ---------------------------------------------------------------------------
-//
-TKeyResponse CCSCSettingsUiMainContainer::OfferKeyEventL(
- const TKeyEvent& aKeyEvent, TEventCode aType )
- {
- TKeyResponse response = EKeyWasNotConsumed;
- response = iListBox->OfferKeyEventL( aKeyEvent, aType );
-
- if ( EKeyUpArrow == aKeyEvent.iCode ||
- EKeyDownArrow == aKeyEvent.iCode )
- {
- iModel.UpdateSoftkeys();
- }
-
- return response;
- }
-
-
-// ---------------------------------------------------------------------------
-// From class CoeControl
-// CCSCSettingsUiMainContainer::HandleResourceChange
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::HandleResourceChange( TInt aType )
- {
- if( aType == KAknsMessageSkinChange ||
- aType == KEikDynamicLayoutVariantSwitch )
- {
- TRect mainPaneRect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane,
- mainPaneRect );
- SetRect( mainPaneRect );
- DrawNow();
- }
-
- CCoeControl::HandleResourceChange( aType );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::ConstructListBoxL
-// Creates listbox item for setting items.
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::ConstructListBoxL()
- {
- CSCSETUIDEBUG( "CCSCSettingsUiMainContainer::ConstructListBoxL - begin" );
-
- // Create listbox and array for listbox items.
- iListBox = new( ELeave ) CAknSettingStyleListBox;
- iListBox->ConstructL( this, EAknListBoxSelectionList );
- iListBox->CreateScrollBarFrameL( ETrue );
- iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
- CEikScrollBarFrame::EOff,
- CEikScrollBarFrame::EAuto );
- iListBox->Model()->SetOwnershipType( ELbmOwnsItemArray );
- CDesCArrayFlat* itemsArray =
- new ( ELeave ) CDesCArrayFlat( KCSCSettingsUiArrayGranularity );
- iListBox->Model()->SetItemTextArray( itemsArray );
-
- // Initialize setting items.
- InitializeSettingItemsL();
-
- CSCSETUIDEBUG( "CCSCSettingsUiMainContainer::ConstructListBoxL - end" );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::InitializeSettingItemsL
-// Draws setting items at the first time after the initialization is completed
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::InitializeSettingItemsL()
- {
- CSCSETUIDEBUG(
- "CCSCSettingsUiMainContainer::InitializeSettingItemsL - begin" );
-
- // Get supported subservices
- TSupportedSubServices supSubServices;
- iModel.CCHHandler().SupportedSubServicesL(
- iModel.CurrentSPEntryId(), supSubServices );
-
- // Make username setting
- MakeSettingItemL ( TMainListBoxItem::EUsername );
-
- // Make password setting
- MakeSettingItemL ( TMainListBoxItem::EPassword );
-
- // Make preferred service setting item if voip subservice is supported
- if ( supSubServices.iVoIP )
- {
- TBool isSipVoip( EFalse );
- TRAPD( err, isSipVoip = iModel.SettingsHandler().IsSipVoIPL(
- iModel.CurrentSPEntryId() ) );
-
- if ( !err )
- {
- if ( isSipVoip && iModel.SettingsHandler().IsVccSupportedL(
- iModel.CurrentSPEntryId() ) )
- {
- // If VCC is supported make vcc preferred setting item
- // and handover notification tone setting item
- MakeSettingItemL ( TMainListBoxItem::EVccPreferredService );
- MakeSettingItemL ( TMainListBoxItem::EHandoverNotifTone );
- }
- else
- {
- // If VCC is not supported make just preferred service setting
- MakeSettingItemL ( TMainListBoxItem::EPreferredService );
- }
- }
- }
-
- // Make setting item if IM is supported by service
- if ( supSubServices.iIm )
- {
- // IM tone setting.
- MakeSettingItemL( TMainListBoxItem::EImTone );
- }
-
- // Make setting item if presence is supported by service
- if ( supSubServices.iPresence )
- {
- // Presence request preference
- MakeSettingItemL( TMainListBoxItem::EAutoacceptInv );
- }
-
- // Connectivity setting (cannot be changed)
- MakeSettingItemL( TMainListBoxItem::EServiceConn );
-
-
- CSCSETUIDEBUG(
- "CCSCSettingsUiMainContainer::InitializeSettingItemsL - end" );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::MakeSettingItemL
-// Constructs setting list items.
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::MakeSettingItemL(
- TMainListBoxItem::TSettingItems aItem )
- {
- CSCSETUIDEBUG(
- "CCSCSettingsUiMainContainer::MakeSettingItemL - begin" );
-
- // Get listbox items from model.
- CTextListBoxModel* model = iListBox->Model();
- MDesCArray* textArray = model->ItemTextArray();
- CDesCArray* listBoxItems = static_cast<CDesCArray*>( textArray );
-
- TBuf<KCSCSettingsUiItemLength> listBoxItemText ( KNullDesC );
-
- TMainListBoxItem listBoxItem;
- listBoxItem.iItem = aItem;
-
- RBuf value;
- CleanupClosePushL( value );
-
- value.CreateL( 1 );
- value.Copy( KNullDesC );
-
- switch ( aItem )
- {
- case TMainListBoxItem::EUsername:
- {
- GetUsernameL( value );
- break;
- }
- case TMainListBoxItem::EPassword:
- {
- value.ReAllocL( KEmptyPassword().Length() );
- value.Copy( KEmptyPassword );
- break;
- }
- case TMainListBoxItem::EPreferredService:
- {
- GetPreferredServiceSettingL( value );
- break;
- }
- case TMainListBoxItem::EVccPreferredService:
- {
- GetVccPreferredServiceSettingL( value );
- break;
- }
- case TMainListBoxItem::EHandoverNotifTone:
- {
- GetHandoverNotificationTonePrefL( value );
- break;
- }
- case TMainListBoxItem::EImTone:
- {
- GetImToneSettingL( value );
- break;
- }
- case TMainListBoxItem::EAutoacceptInv:
- {
- GetPresencePrefSettingL( value );
- break;
- }
- case TMainListBoxItem::EServiceConn:
- {
- TRAP_IGNORE( GetSnapSettingL( value ) );
- break;
- }
- default:
- User::Leave( KErrArgument );
- break;
- }
-
- listBoxItemText.Format(
- KCSCSettingsUiListItemTextFormat,
- GetCaptionL( aItem ),
- &value );
-
- CleanupStack::PopAndDestroy( &value );
-
- // Add to listbox
- iListBoxItemArray.Append( listBoxItem );
- listBoxItems->AppendL( listBoxItemText );
- iListBox->HandleItemAdditionL();
-
- CSCSETUIDEBUG(
- "CCSCSettingsUiMainContainer::MakeSettingItemL - end" );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::GetCaptionL
-// Constructs setting list items.
-// ---------------------------------------------------------------------------
-//
-HBufC* CCSCSettingsUiMainContainer::GetCaptionL(
- TMainListBoxItem::TSettingItems aItem )
- {
- if( iCaption != NULL )
- {
- delete iCaption;
- iCaption = NULL;
- }
-
- switch ( aItem )
- {
- case TMainListBoxItem::EUsername:
- {
- iCaption = StringLoader::LoadL(
- R_CSCSETTINGSUI_SETTING_USERNAME_TITLE );
- break;
- }
- case TMainListBoxItem::EPassword:
- {
- iCaption = StringLoader::LoadL(
- R_CSCSETTINGSUI_SETTING_PASSWORD_TITLE );
- break;
- }
- case TMainListBoxItem::EPreferredService:
- {
- iCaption = StringLoader::LoadL(
- R_CSCSETTINGSUI_SETTING_PREFERRED_SERVICE_TITLE );
- break;
- }
- case TMainListBoxItem::EVccPreferredService:
- {
- iCaption = StringLoader::LoadL(
- R_CSCSETTINGSUI_SETTING_VCC_PREFERRED_SERVICE_TITLE );
- break;
- }
- case TMainListBoxItem::EHandoverNotifTone:
- {
- iCaption = StringLoader::LoadL(
- R_CSCSETTINGSUI_SETTING_HANDOVER_NOTIF_TONE_TITLE );
- break;
- }
- case TMainListBoxItem::EImTone:
- {
- iCaption = StringLoader::LoadL(
- R_CSCSETTINGSUI_SETTING_IM_TONE_TITLE );
- break;
- }
- case TMainListBoxItem::EAutoacceptInv:
- {
- iCaption = StringLoader::LoadL(
- R_CSCSETTINGSUI_PRESENCE_REQUEST_PREF_TEXT );
- break;
- }
- case TMainListBoxItem::EServiceConn:
- {
- iCaption = StringLoader::LoadL(
- R_CSCSETTINGSUI_SERVICE_CONNECTIVITY_TEXT );
- break;
- }
- default:
- User::Leave( KErrArgument );
- break;
- }
-
- return iCaption;
- }
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::GetUsername
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::GetUsernameL( RBuf& aUsername )
- {
- aUsername.ReAllocL( KCCHMaxUsernameLength );
- User::LeaveIfError( iModel.CCHHandler().GetConnectionParameter(
- iModel.CurrentSPEntryId(), ECchUsername, aUsername ) );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::GetPresencePrefSettingL
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::GetPreferredServiceSettingL( RBuf& aValue )
- {
- // Select text resource for the current pref telephony value
- TInt resource = ( iModel.SettingsHandler().IsPreferredTelephonyVoip() &&
- iModel.SettingsHandler().IsPreferredService(
- iModel.CurrentSPEntryId() ) ) ?
- R_CSCSETTINGSUI_SETTING_PREFERRED_SERVICE_ON :
- R_CSCSETTINGSUI_SETTING_PREFERRED_SERVICE_OFF;
-
- HBufC* value = StringLoader::LoadLC( resource );
- aValue.ReAllocL( value->Length() );
- aValue.Copy( value->Des() );
- CleanupStack::PopAndDestroy( value );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::GetVccPreferredServiceSettingL
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::GetVccPreferredServiceSettingL( RBuf& aValue )
- {
- // Select text resource for the current pref telephony value
- TInt resource = ( iModel.SettingsHandler().IsPreferredTelephonyVoip() &&
- iModel.SettingsHandler().IsPreferredService(
- iModel.CurrentSPEntryId() ) ) ?
- R_CSCSETTINGSUI_SETTING_VCC_PREFERRED_SERVICE_ON :
- R_CSCSETTINGSUI_SETTING_VCC_PREFERRED_SERVICE_OFF;
-
- HBufC* value = StringLoader::LoadLC( resource );
- aValue.ReAllocL( value->Length() );
- aValue.Copy( value->Des() );
- CleanupStack::PopAndDestroy( value );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::GetHandoverNotificationToneL
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::GetHandoverNotificationTonePrefL(
- RBuf& aValue )
- {
- HBufC* value = NULL;
- TOnOff onOff = EOff;
-
- TRAPD( err, onOff = iModel.SettingsHandler().HandoverNotifTonePrefL(
- iModel.CurrentSPEntryId() ) );
-
- if ( KErrNotFound == err )
- {
- iModel.SettingsHandler().SetHandoverNotifTonePrefL(
- iModel.CurrentSPEntryId(), EOff );
- }
- else if ( err )
- {
- User::Leave( err );
- }
- else
- {
- // nothing to do
- }
-
- if ( EOff == onOff )
- {
- value = StringLoader::LoadLC(
- R_CSCSETTINGSUI_SETTING_HANDOVER_NOTIF_TONE_OFF );
- }
- else if ( EOn == onOff)
- {
- value = StringLoader::LoadLC(
- R_CSCSETTINGSUI_SETTING_HANDOVER_NOTIF_TONE_ON );
- }
- else if ( EOONotSet == onOff )
- {
- iModel.SettingsHandler().SetHandoverNotifTonePrefL(
- iModel.CurrentSPEntryId(), EOff );
-
- value = StringLoader::LoadLC(
- R_CSCSETTINGSUI_SETTING_HANDOVER_NOTIF_TONE_OFF );
- }
- else
- {
- User::Leave( KErrGeneral );
- }
-
- aValue.ReAllocL( value->Length() );
- aValue.Copy( value->Des() );
-
- CleanupStack::PopAndDestroy( value );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::GetImToneSettingL
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::GetImToneSettingL( RBuf& aValue )
- {
- aValue.ReAllocL( KCSCMaxImToneLength );
-
- MVIMPSTSettingsStore* settings = CVIMPSTSettingsStore::NewLC();
-
- TInt err = settings->GetL(
- iModel.CurrentSPEntryId(), EServiceToneFileName, aValue );
-
- // If tone path is not found from settings, set Off text
- if ( KErrNotFound == err || aValue.Length() < 2 )
- {
- HBufC* noToneSelected = StringLoader::LoadLC(
- R_CSCSETTINGSUI_IM_TONE_OFF );
-
- User::LeaveIfError( settings->SetL(
- iModel.CurrentSPEntryId(), EServiceToneFileName, *noToneSelected ) );
-
- // Get tone.
- User::LeaveIfError( settings->GetL(
- iModel.CurrentSPEntryId(), EServiceToneFileName, aValue ) );
-
- CleanupStack::PopAndDestroy( noToneSelected );
- }
- else if ( err )
- {
- User::Leave( err );
- }
- else
- {
- // KErrNone -> do nothing
- }
-
- TInt pos( 0 );
- while ( KErrNotFound != pos )
- {
- pos = aValue.Find( KDoubleBackSlash );
- aValue.Delete( 0, pos+1 );
- }
-
- CleanupStack::PopAndDestroy();
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::GetPresencePrefSettingL
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::GetPresencePrefSettingL( RBuf& aValue )
- {
- HBufC* value = NULL;
- TOnOff onOff = EOff;
-
- TRAPD( err, onOff = iModel.SettingsHandler().PresenceReqPrefL(
- iModel.CurrentSPEntryId() ) );
-
- if ( KErrNotFound == err )
- {
- iModel.SettingsHandler().SetPresenceReqPrefL(
- iModel.CurrentSPEntryId(), EOff );
- }
- else if ( err )
- {
- User::Leave( err );
- }
- else
- {
- // nothing to do
- }
-
- if ( EOff == onOff )
- {
- value = StringLoader::LoadLC(
- R_CSCSETTINGSUI_PRES_PREF_ALWAYS_ASK );
- }
- else if ( EOn == onOff)
- {
- value = StringLoader::LoadLC(
- R_CSCSETTINGSUI_PRES_PREF_ACCEPT_AUTOMATICALLY );
- }
- else if ( EOONotSet == onOff )
- {
- // Set presence request preference setting default value "off"
- iModel.SettingsHandler().SetPresenceReqPrefL(
- iModel.CurrentSPEntryId(), EOff );
-
- value = StringLoader::LoadLC(
- R_CSCSETTINGSUI_PRES_PREF_ALWAYS_ASK );
- }
- else
- {
- User::Leave( KErrGeneral );
- }
-
- aValue.ReAllocL( value->Length() );
- aValue.Copy( value->Des() );
-
- CleanupStack::PopAndDestroy( value );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCSCSettingsUiMainContainer::GetSnapSettingL
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::GetSnapSettingL( RBuf& aValue )
- {
- // Get Snap name
- HBufC* snapName = NULL;
- TInt snapId( 0 );
- TInt err = iModel.CCHHandler().GetConnectionParameter(
- iModel.CurrentSPEntryId(), ECchSnapId, snapId );
-
- // If no error, try to get snap name.
- if ( KErrNone == err )
- {
- snapName = iModel.DestinationsHandler().SnapNameL( snapId );
-
- if ( snapName )
- {
- CleanupStack::PushL( snapName );
- aValue.ReAllocL( snapName->Length() );
- aValue.Copy( snapName->Des() );
- CleanupStack::PopAndDestroy( snapName );
- }
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// From class CoeControl
-// CCSCSettingsUiMainContainer::CountComponentControls
-// ---------------------------------------------------------------------------
-//
-TInt CCSCSettingsUiMainContainer::CountComponentControls() const
- {
- return 1;
- }
-
-
-// ---------------------------------------------------------------------------
-// From class CoeControl
-// CCSCSettingsUiMainContainer::SizeChanged
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::SizeChanged()
- {
- iListBox->SetRect( Rect() );
- }
-
-
-// ---------------------------------------------------------------------------
-// From class CoeControl
-// CCSCSettingsUiMainContainer::FocusChanged
-// ---------------------------------------------------------------------------
-//
-void CCSCSettingsUiMainContainer::FocusChanged(
- TDrawNow aDrawNow )
- {
- CCoeControl::FocusChanged( aDrawNow );
-
- if( iListBox )
- {
- iListBox->SetFocus( IsFocused() );
- }
- }