diff -r 000000000000 -r 96612d01cf9f mediasettings/mediasettingsapp/src/MPSettingsProxySettingItemList.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mediasettings/mediasettingsapp/src/MPSettingsProxySettingItemList.cpp Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,243 @@ +/* +* 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: +* +*/ + + +// Version : %version: 3 % + + + + +// INCLUDE FILES +#include +#include +#include + +#include "mediasettings.hrh" +#include "MPSettingsProxySettingItemList.h" +#include "MPSettingsModelForROP.h" +#include "mpxlog.h" + +// CONSTANTS +const TInt KMPSettProxyHostListItemId = 1; +const TInt KMPSettProxyPortListItemId = 2; +const TInt KMPSettProxyHostMaxLength = 1000; + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CMPSettingsProxySettingItemList::CMPSettingsProxySettingItemList +// C++ default constructor can NOT contain any code, that +// might leave. +// ----------------------------------------------------------------------------- +// +CMPSettingsProxySettingItemList::CMPSettingsProxySettingItemList(CMPSettingsModelForROP* aModel) + : iModel( aModel), iProxyHostPtr(NULL, 0) + { + MPX_DEBUG1(_L("#MS# CMPSettingsProxySettingItemList::CMPSettingsProxySettingItemList()")); + } + +// ----------------------------------------------------------------------------- +// CMPSettingsProxySettingItemList::ConstructFromResourceL +// ----------------------------------------------------------------------------- +// +void CMPSettingsProxySettingItemList::ConstructFromResourceL(TInt aResourceId) + { + MPX_DEBUG2(_L("#MS# CMPSettingsProxySettingItemList::ConstructFromResourceL(0x%X)"),aResourceId); + TResourceReader reader; + iCoeEnv->CreateResourceReaderLC(reader, aResourceId); + ConstructFromResourceL(reader); + CleanupStack::PopAndDestroy(); // reader + } + +// ----------------------------------------------------------------------------- +// CMPSettingsProxySettingItemList::ConstructFromResourceL +// ----------------------------------------------------------------------------- +// +void CMPSettingsProxySettingItemList::ConstructFromResourceL(TResourceReader& aReader) + { + MPX_DEBUG1(_L("#MS# CMPSettingsProxySettingItemList::ConstructFromResourceL()")); + LoadAllL(); + CAknSettingItemList::ConstructFromResourceL(aReader); + SetItemVisibilityL(); + } + +// ----------------------------------------------------------------------------- +// CMPSettingsProxySettingItemList::~CMPSettingsProxySettingItemList +// Destructor +// ----------------------------------------------------------------------------- +// +CMPSettingsProxySettingItemList::~CMPSettingsProxySettingItemList() + { + MPX_DEBUG1(_L("#MS# CMPSettingsProxySettingItemList::~CMPSettingsProxySettingItemList()")); + if (iProxyHost) + { + delete iProxyHost; + } + } + +// ----------------------------------------------------------------------------- +// CMPSettingsProxySettingItemList::EditItemL +// ----------------------------------------------------------------------------- +// +void CMPSettingsProxySettingItemList::EditItemL(TInt aIndex, TBool aCalledFromMenu) + { + MPX_DEBUG3(_L("#MS# CMPSettingsProxySettingItemList::EditItemL(%d,%d)"),aIndex,aCalledFromMenu); + CAknSettingItem* settingItem = SettingItemArray()->At(aIndex); + TInt identifier = settingItem->Identifier(); + + // Load current value from settings model +// LoadSettingL(identifier); +// settingItem->LoadL(); + + // Call base call's method + CAknSettingItemList::EditItemL(aIndex, aCalledFromMenu); + + // Store setting value to settings model + settingItem->StoreL(); + StoreSettingL(identifier); + + // Hide/unhide Proxy port & Proxy host settings according to Proxy mode. + if (identifier == EMPSettProxyModeSettingId) + { + SetItemVisibilityL(); + } + } + +// ----------------------------------------------------------------------------- +// CMPSettingsProxySettingItemList::CreateSettingItemL +// ----------------------------------------------------------------------------- +// +CAknSettingItem* CMPSettingsProxySettingItemList::CreateSettingItemL(TInt aSettingId) + { + MPX_DEBUG2(_L("#MS# CMPSettingsProxySettingItemList::CreateSettingItemL(%d)"),aSettingId); + __ASSERT_DEBUG(iProxyHost, User::Leave(KErrAbort)); + + CAknSettingItem* settingItem = NULL; + + switch (aSettingId) + { + case EMPSettProxyModeSettingId: + settingItem = new(ELeave) CAknBinaryPopupSettingItem(aSettingId, iProxyMode); + break; + case EMPSettProxyHostSettingId: + { + settingItem = new(ELeave) CAknTextSettingItem(aSettingId, iProxyHostPtr); + settingItem->SetSettingPageFlags(CAknTextSettingPage::EZeroLengthAllowed); + break; + } + case EMPSettProxyPortSettingId: + settingItem = new(ELeave) CAknIntegerEdwinSettingItem(aSettingId, iProxyPort); + break; + default: + break; + } + + return settingItem; + } + +// ----------------------------------------------------------------------------- +// CMPSettingsProxySettingItemList::SetItemVisibilityL +// ----------------------------------------------------------------------------- +// +void CMPSettingsProxySettingItemList::SetItemVisibilityL() + { + MPX_DEBUG2(_L("#MS# CMPSettingsProxySettingItemList::SetItemVisibilityL() iProxyMode(%d)"),iProxyMode); + if (iProxyMode) + { + SettingItemArray()->At(KMPSettProxyHostListItemId)->SetHidden(EFalse); + SettingItemArray()->At(KMPSettProxyPortListItemId)->SetHidden(EFalse); + } + else + { + SettingItemArray()->At(KMPSettProxyHostListItemId)->SetHidden(ETrue); + SettingItemArray()->At(KMPSettProxyPortListItemId)->SetHidden(ETrue); + } + + HandleChangeInItemArrayOrVisibilityL(); + } + +// ----------------------------------------------------------------------------- +// CMPSettingsProxySettingItemList::LoadAllL +// ----------------------------------------------------------------------------- +// +void CMPSettingsProxySettingItemList::LoadAllL() + { + MPX_DEBUG1(_L("#MS# CMPSettingsProxySettingItemList::LoadAllL()")); + iModel->LoadSettingsL(EConfigUser); + LoadSettingL(EMPSettProxyModeSettingId); + LoadSettingL(EMPSettProxyHostSettingId); + LoadSettingL(EMPSettProxyPortSettingId); + } + +// ----------------------------------------------------------------------------- +// CMPSettingsProxySettingItemList::LoadSettingL +// ----------------------------------------------------------------------------- +// +void CMPSettingsProxySettingItemList::LoadSettingL(TInt aSettingId) + { + MPX_DEBUG2(_L("#MS# CMPSettingsProxySettingItemList::LoadSettingL(%d)"),aSettingId); + switch (aSettingId) + { + case EMPSettProxyModeSettingId: + iModel->GetProxyMode(iProxyMode); + break; + case EMPSettProxyHostSettingId: + { + if (!iProxyHost) + { + iProxyHost = HBufC::NewL(KMPSettProxyHostMaxLength); + iProxyHostPtr.Set(iProxyHost->Des()); + } + + iModel->GetProxyHostName(iProxyHostPtr); + break; + } + case EMPSettProxyPortSettingId: + iModel->GetProxyPort(iProxyPort); + break; + default: + break; + } + } + +// ----------------------------------------------------------------------------- +// CMPSettingsProxySettingItemList::StoreSettingL +// ----------------------------------------------------------------------------- +// +void CMPSettingsProxySettingItemList::StoreSettingL(TInt aSettingId) + { + MPX_DEBUG2(_L("#MS# CMPSettingsProxySettingItemList::StoreSettingL(%d)"),aSettingId); + switch (aSettingId) + { + case EMPSettProxyModeSettingId: + iModel->SetProxyMode(iProxyMode); + break; + case EMPSettProxyHostSettingId: + iModel->SetProxyHostNameL(*iProxyHost); + break; + case EMPSettProxyPortSettingId: + iModel->SetProxyPort(iProxyPort); + break; + default: + break; + } + + iModel->StoreSettingsL(); + } + + +// End of File