diff -r 839377eedc2b -r befca0ec475f mediasettings/feedsettingsviews/src/feedsettingsviewaddservicelistbox.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mediasettings/feedsettingsviews/src/feedsettingsviewaddservicelistbox.cpp Wed Sep 01 12:30:28 2010 +0100 @@ -0,0 +1,212 @@ +/* +* Copyright (c) 2006-2008 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: Class for "Add service list" in Settings UI.* +*/ + + + + +// INCLUDE FILES +#include +#include + +#include "CIptvService.h" +#include "feedsettingsviewaddservicelistbox.h" +#include "feedsettingsviewcontainer.h" +#include "feedsettingsview.hrh" + +// CONSTANTS +_LIT(KCompulsoryChar, "*"); + +// ========================= MEMBER FUNCTIONS ================================== + +// ------------------------------------------------------------------------------ +// CVcSettingsViewAddServiceListbox::CVcSettingsViewAddServiceListbox() +// ------------------------------------------------------------------------------ +// +CVcxNsSettingsViewAddServiceListbox::CVcxNsSettingsViewAddServiceListbox( + CVcxNsSettingsViewContainer* aParent, + TDes& aServiceName, + TDes& aAddress, + TInt& aPluginType ) + : iParent(aParent), + iAdding(ETrue), + iServiceName(aServiceName), + iAddress(aAddress), + iServicePluginType(aPluginType) + { + __ASSERT_DEBUG(iParent, User::Panic(KNullDesC, KErrBadHandle)); + } + +// ---------------------------------------------------------------------------- +// CVcSettingsViewAddServiceListbox::CreateSettingItemL() +// ---------------------------------------------------------------------------- +// +CAknSettingItem* CVcxNsSettingsViewAddServiceListbox::CreateSettingItemL( + TInt aIdentifier ) + { + switch (aIdentifier) + { + case EVcSettingsViewAddServiceServiceNameItem: + { + iServiceNameItem = new (ELeave) CAknTextSettingItem( aIdentifier, + iServiceName ); + return iServiceNameItem; + } + + case EVcSettingsViewAddServiceAddressItem: + { + iAddressItem = new (ELeave) CAknTextSettingItem(aIdentifier, iAddress); + iAddressItem->SetCompulsoryIndTextL(KCompulsoryChar); + return iAddressItem; + } + + case EVcSettingsViewAddServiceServiceTypeItem: + { + iPluginTypeItem = + new (ELeave) CAknEnumeratedTextPopupSettingItem( aIdentifier, + iServicePluginType ); + return iPluginTypeItem; + } + + default: + { + return NULL; + } + } + } + +// --------------------------------------------------------- +// CVcSettingsViewAddServiceListbox::EditCurrentItemL() +// --------------------------------------------------------- +// +void CVcxNsSettingsViewAddServiceListbox::EditCurrentItemL() + { + TInt itemIndex = ListBox()->CurrentItemIndex(); + + if (itemIndex >= 0) + { + iParent->AppUi()->SetOrientationL( + CAknAppUiBase::EAppUiOrientationUnspecified ); + + EditItemL(itemIndex, EFalse); + } + } + +// --------------------------------------------------------- +// CVcSettingsViewAddServiceListbox::LoadAddServiceInformationL() +// iAppSettings -> UI +// --------------------------------------------------------- +// +void CVcxNsSettingsViewAddServiceListbox::LoadAddServiceInformationL( + TBool aAdding, + TDes& aServiceName, + TDes& aAddress, + CIptvService::TServiceType aServiceType, + TInt& aPluginType ) + { + iAdding = aAdding; + iServiceName = aServiceName; + iAddress = aAddress; + iServiceType = aServiceType; + iServicePluginType = aPluginType; + + LoadSettingsL(); + + if (iPluginTypeItem) + { + if (aServiceType != CIptvService::ELiveTv) + { + iPluginTypeItem->SetHidden(ETrue); + } + else + { + iPluginTypeItem->SetHidden(EFalse); + } + HandleChangeInItemArrayOrVisibilityL(); + iPluginTypeItem->UpdateListBoxTextL(); + } + + if (iServiceNameItem && iAddressItem) + { + iServiceNameItem->UpdateListBoxTextL(); + iAddressItem->SetCompulsoryIndTextL(KCompulsoryChar); + iAddressItem->UpdateListBoxTextL(); + } + } + +// --------------------------------------------------------- +// CVcSettingsViewAddServiceListbox::SaveAddServiceInformationL() +// UI -> iAppSettings +// --------------------------------------------------------- +// +void CVcxNsSettingsViewAddServiceListbox::SaveAddServiceInformationL() + { + StoreSettingsL(); + } + +// --------------------------------------------------------- +// CVcSettingsViewAddServiceListbox::IsAdding() +// --------------------------------------------------------- +// +TBool CVcxNsSettingsViewAddServiceListbox::IsAdding() + { + return iAdding; + } + +// ----------------------------------------------------------------------------- +// CVcSettingsViewAddServiceListbox::SizeChanged() +// ----------------------------------------------------------------------------- +// +void CVcxNsSettingsViewAddServiceListbox::SizeChanged() + { + CAknSettingItemList::SizeChanged(); + + if (ListBox()) + { + ListBox()->SetRect(Rect()); + } + } +// ----------------------------------------------------------------------------- +// CVcSettingsViewAddServiceListbox::OfferKeyEventL() +// ----------------------------------------------------------------------------- +// +TKeyResponse CVcxNsSettingsViewAddServiceListbox::OfferKeyEventL( + const TKeyEvent& aKeyEvent, + TEventCode aType ) + { + return CAknSettingItemList::OfferKeyEventL(aKeyEvent, aType); + } + + +// -------------------------------------------------------------------------- +// CMPSettingsVideoSettingItemList::HandleListBoxEventL() +// -------------------------------------------------------------------------- +// +void CVcxNsSettingsViewAddServiceListbox::HandleListBoxEventL( + CEikListBox* aListBox, + TListBoxEvent aListBoxEvent ) + { + if ( aListBoxEvent == EEventEnterKeyPressed || + aListBoxEvent == EEventItemSingleClicked || + aListBoxEvent == EEventItemDoubleClicked ) + { + CAknSettingItemList::HandleListBoxEventL( aListBox, aListBoxEvent ); + if ( iParent ) + { + iParent->DrawDeferred(); + } + } + } +