diff -r c32dc0be5eb4 -r 6b4fc789785b remotestoragefw/gsplugin/src/rsfwgspluginsettinglist.cpp --- a/remotestoragefw/gsplugin/src/rsfwgspluginsettinglist.cpp Mon Jan 18 21:00:57 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,347 +0,0 @@ -/* -* Copyright (c) 2005 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: Rsfw GS plugin, Setting List class implementation -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include - -#include "rsfwgspluginsettinglist.h" -#include "rsfwgssettingsdata.h" -#include "mdebug.h" - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::NewL(CRsfwGsSettingsData &aData) -// ----------------------------------------------------------------------------- -// -CRsfwGsPluginSettingsList *CRsfwGsPluginSettingsList::NewL(CRsfwGsSettingsData &aData) - { - CRsfwGsPluginSettingsList* self = CRsfwGsPluginSettingsList::NewLC(aData); - CleanupStack::Pop(self); - return self; - } - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::NewLC(CRsfwGsSettingsData &aData) -// ----------------------------------------------------------------------------- -// -CRsfwGsPluginSettingsList *CRsfwGsPluginSettingsList::NewLC(CRsfwGsSettingsData &aData) - { - CRsfwGsPluginSettingsList* self = new (ELeave) CRsfwGsPluginSettingsList(aData); - CleanupStack::PushL(self); - return self; - } - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::CRsfwGsPluginSettingsList(CRsfwGsSettingsData &aData) -// ----------------------------------------------------------------------------- -// -CRsfwGsPluginSettingsList::CRsfwGsPluginSettingsList(CRsfwGsSettingsData &aData) : - CAknSettingItemList(), - iSettingsData(aData) - { - } - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::~CRsfwGsPluginSettingsList() -// ----------------------------------------------------------------------------- -// -CRsfwGsPluginSettingsList::~CRsfwGsPluginSettingsList() - { -#if defined __WINS__ - iDlgSrv.Close(); -#endif - } - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::SizeChanged() -// ----------------------------------------------------------------------------- -// -void CRsfwGsPluginSettingsList::SizeChanged() - { - // if size changes, make sure component takes whole available space - if (ListBox()) - { - ListBox()->SetRect(Rect()); - } - } - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::EditCurrentItemL() -// ----------------------------------------------------------------------------- -// -void CRsfwGsPluginSettingsList::EditCurrentItemL() - { - // invoke EditItemL on the current item - - TInt index = ListBox()->CurrentItemIndex(); - EditItemL(index,ETrue); // invoked from menu - } - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::EditItemL (TInt aIndex, TBool aCalledFromMenu) -// ----------------------------------------------------------------------------- -// -void CRsfwGsPluginSettingsList::EditItemL (TInt aIndex, TBool aCalledFromMenu) - { - if (aIndex == EAccessPointIndex) - { - EditAccessPointL(); - } - else - { - TInt cflags = (*SettingItemArray())[aIndex]->SettingPageFlags(); - // allow user to exit address field without typing anything, - // if he e.g. realizes that he does not remember the address - if ((aIndex == EUserIDIndex) || (aIndex == EServerAddressIndex)) - { - cflags |= CAknTextSettingPage::EZeroLengthAllowed; - } - else - { - //coverity[logical_vs_bitwise] - cflags &= (!CAknTextSettingPage::EZeroLengthAllowed); - } - (*SettingItemArray())[aIndex]->SetSettingPageFlags(cflags); - CAknSettingItemList::EditItemL(aIndex, aCalledFromMenu); - (*SettingItemArray())[aIndex]->StoreL(); - } - SaveSettingL(aIndex); - } - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::SaveSettingL(TInt aIndex) -// ----------------------------------------------------------------------------- -// -void CRsfwGsPluginSettingsList::SaveSettingL(TInt aIndex) - { - - switch (aIndex) - { - case ESettingNameIndex: - SetTitlePaneTextL(iSettingsData.iSettingName); - break; - case EServerAddressIndex: - break; - - case EAccessPointIndex: - if (iSettingsData.iAccessPoint > -1) // if Valid AP number - { - (iSettingsData.iAccessPointDes).Num(iSettingsData.iAccessPoint); - GetAccessPointNameL(iSettingsData.iAccessPoint, - iSettingsData.iAccessPointName); - } - break; - case EUserIDIndex: - break; - - case EPasswordIndex: - break; - - default: - break; - } - LoadSettingsL(); - DrawNow(); - } - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::CreateSettingItemL (TInt aIdentifier) -// ----------------------------------------------------------------------------- -// -CAknSettingItem * CRsfwGsPluginSettingsList::CreateSettingItemL (TInt aIdentifier) - { - // method is used to create specific setting item as required at run-time. - // aIdentifier is used to determine what kind of setting item should be - // created - - CAknSettingItem* settingItem = NULL; - - switch (aIdentifier) - { - case ESettingItemDriveName: - settingItem = new (ELeave) CAknTextSettingItem ( aIdentifier, - iSettingsData.iSettingName); - break; - case ESettingItemURL: - settingItem = new (ELeave) CAknTextSettingItem ( - aIdentifier, - iSettingsData.iURL); - break; - - case ESettingItemAccessPoint: - GetAccessPointNameL(iSettingsData.iAccessPoint, iSettingsData.iAccessPointName); - settingItem = new (ELeave) CAknTextSettingItem ( - aIdentifier, iSettingsData.iAccessPointName); - break; - - - - case ESettingItemUserID: - settingItem = new (ELeave) CAknTextSettingItem ( - aIdentifier, - iSettingsData.iUserID); - settingItem->SetEmptyItemTextL(KNullDesC); - settingItem->LoadL(); - break; - case ESettingItemPassword: - settingItem = new (ELeave) CAknPasswordSettingItem ( - aIdentifier, - CAknPasswordSettingItem::EAlpha, - iSettingsData.iPassword); - break; - default: - break; - } - return settingItem; - } - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::EditAccessPoint() -// ----------------------------------------------------------------------------- -// -void CRsfwGsPluginSettingsList::EditAccessPointL() - { - - CCommsDatabase* commsDb = CCommsDatabase::NewL( EDatabaseTypeIAP ); - CleanupStack::PushL(commsDb); - CApUtils* aPUtils = CApUtils::NewLC( *commsDb ); - - TUint32 id = 0; - TRAP_IGNORE(id = aPUtils->WapIdFromIapIdL(iSettingsData.iAccessPoint)); - - CConnectionUiUtilities* connUiUtils = - CConnectionUiUtilities::NewL(); - CleanupStack::PushL( connUiUtils ); - - TCuuAlwaysAskResults result; - // determine how radio button will be initially displayed to the user - // (depending on what is the current IAP choice) - iSettingsData.iAccessPoint < 0 ? result = ECuuAlwaysAsk : result = ECuuUserDefined; - - if (connUiUtils->AlwaysAskPageL(result)) - { - if (result == ECuuUserDefined) - { - -#if defined __WINS__ - // In wins emulator mode we need to show emulator-lan access point so we - // different technique - TConnectionPrefs prefs; - - User::LeaveIfError(iDlgSrv.Connect()); - - prefs.iRank = 1; - prefs.iDirection = ECommDbConnectionDirectionOutgoing; - prefs.iBearerSet = ECommDbBearerCSD | ECommDbBearerWcdma | ECommDbBearerVirtual; - - TUint32 id = iSettingsData.iAccessPoint; - - TRAPD( err, iDlgSrv.IapConnection( id, prefs, iStatus ) ); - User::LeaveIfError( err ); - - User::WaitForRequest( iStatus ); - iSettingsData.iAccessPoint = id; - iDlgSrv.Close(); - -#else - CApSettingsHandler *ApUi = CApSettingsHandler::NewLC( - ETrue, - EApSettingsSelListIsPopUp, - EApSettingsSelMenuSelectNormal, - KEApIspTypeAll, - EApBearerTypeAllBearers, - KEApSortNameAscending, - EIPv4 | EIPv6 - ); - ApUi->RunSettingsL( id, id ); - CleanupStack::PopAndDestroy(ApUi); - iSettingsData.iAccessPoint = aPUtils->IapIdFromWapIdL(id); -#endif - } - else if (result == ECuuAlwaysAsk) - { - iSettingsData.iAccessPoint = -1; - iSettingsData.iAccessPointDes = KNullDesC; - iSettingsData.iAccessPointName = KNullDesC; - } - } - - - CleanupStack::PopAndDestroy(3); //commsDb, aPUtils, CConnectionUtilities - - } - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::GetAccessPointNameL(TInt32 aAP, TDes& aAccessPoint) -// ----------------------------------------------------------------------------- -// -void CRsfwGsPluginSettingsList::GetAccessPointNameL(TInt32 aAP, TDes& aAccessPoint) - { - // Fetch CommDB data for a matching IAP Id or IAP Name - CCommsDatabase* commsDb = CCommsDatabase::NewL(); - CleanupStack::PushL(commsDb); - CCommsDbTableView* table; - table = commsDb->OpenViewMatchingUintLC(TPtrC(IAP), - TPtrC(COMMDB_ID), - aAP); - - TInt err = table->GotoFirstRecord(); - if (err != KErrNone) - { - CleanupStack::PopAndDestroy(2, commsDb); // table, commsDb - return; - } - - // Read name for IAP information - table->ReadTextL(TPtrC(COMMDB_NAME), aAccessPoint); - CleanupStack::PopAndDestroy(2, commsDb); // table, commsDb - } - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::SetTitlePaneTextL( const TDesC& aTitleText ) const -// ----------------------------------------------------------------------------- -// -void CRsfwGsPluginSettingsList::SetTitlePaneTextL( const TDesC& aTitleText ) const - { - DEBUGSTRING(("CRsfwGsPluginSettingsList::SetTitlePaneTextL")); - CAknTitlePane* title = static_cast< CAknTitlePane* > - ( iEikonEnv->AppUiFactory()->StatusPane()->ControlL( - TUid::Uid( EEikStatusPaneUidTitle ) ) ); - if ( !title ) - { - User::Leave( KErrNotSupported ); - } - - title->SetTextL( aTitleText ); - } - -// ----------------------------------------------------------------------------- -// CRsfwGsPluginSettingsList::ResetItemIndex() -// ----------------------------------------------------------------------------- -// -void CRsfwGsPluginSettingsList::ResetItemIndex() - { - ListBox()->SetCurrentItemIndex(NULL); - } - -// End of File