diff -r 000000000000 -r 8466d47a6819 ipsservices/ipssossettings/src/ipssetuiitemlink.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ipsservices/ipssossettings/src/ipssetuiitemlink.cpp Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,131 @@ +/* +* Copyright (c) 2007 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 class with container to setting items. +* +*/ + + +#include "emailtrace.h" +#include +#include "ipssetutilsexception.h" +#include "ipssetuiitemlink.h" +#include "ipssetutilsconsts.h" +#include "ipssetuibasearray.h" + + +// ---------------------------------------------------------------------------- +// CIpsSetUiItemLink::CIpsSetUiItemLink() +// ---------------------------------------------------------------------------- +CIpsSetUiItemLink::CIpsSetUiItemLink() + : + iItemAppereance( EIpsSetUiUndefined ), + iItemLinkArray( NULL ), + iItemSettingText( NULL ) + { + FUNC_LOG; + } + +// ---------------------------------------------------------------------------- +// CIpsSetUiItemsEditText::ConstructL() +// ---------------------------------------------------------------------------- +// +void CIpsSetUiItemLink::ConstructL() + { + FUNC_LOG; + CIpsSetUiItem::ConstructL(); + + iItemSettingText = new ( ELeave ) TIpsSetUtilsTextPlain(); + } + +// ---------------------------------------------------------------------------- +// CIpsSetUiItemLink::CIpsSetUiItemLink() +// ---------------------------------------------------------------------------- +CIpsSetUiItemLink::~CIpsSetUiItemLink() + { + FUNC_LOG; + // Check if subarray exist + if ( iItemLinkArray ) + { + // Check all items in array and delete any subarrays from list + for ( TInt index = iItemLinkArray->Count()-1; index >= 0; index-- ) + { + // Only certain type of items can contain subarrays + CIpsSetUiItem* base = ( *iItemLinkArray )[index]; + + delete base; + base = NULL; + } + } + + delete iItemLinkArray; + iItemLinkArray = NULL; + delete iItemSettingText; + iItemSettingText = NULL; + } + +// ---------------------------------------------------------------------------- +// CIpsSetUiItemLink::NewL() +// ---------------------------------------------------------------------------- +// +CIpsSetUiItemLink* CIpsSetUiItemLink::NewL() + { + FUNC_LOG; + CIpsSetUiItemLink* self = NewLC(); + CleanupStack::Pop( self ); + + return self; + } + +// ---------------------------------------------------------------------------- +// CIpsSetUiItemLink::NewLC() +// ---------------------------------------------------------------------------- +// +CIpsSetUiItemLink* CIpsSetUiItemLink::NewLC() + { + FUNC_LOG; + CIpsSetUiItemLink* self = + new ( ELeave ) CIpsSetUiItemLink(); + CleanupStack::PushL( self ); + self->ConstructL(); + + return self; + } + +// ---------------------------------------------------------------------------- +// CIpsSetUiItemLink::operator=() +// ---------------------------------------------------------------------------- +// +CIpsSetUiItemLink& CIpsSetUiItemLink::operator=( + const CIpsSetUiItemLink& aBaseItem ) + { + FUNC_LOG; + IPS_ASSERT_DEBUG( iItemLabel, EItemText, ENullPointer ); + IPS_ASSERT_DEBUG( aBaseItem.iItemLabel, EItemText, ENullPointer ); + IPS_ASSERT_DEBUG( iItemSettingText, EItemText, ENullPointerInParam ); + IPS_ASSERT_DEBUG( aBaseItem.iItemSettingText, EItemText, ENullPointerInParam ); + + iItemFlags = aBaseItem.iItemFlags; + iItemType = aBaseItem.iItemType; + iItemLabel->Copy( *aBaseItem.iItemLabel ); + iItemId = aBaseItem.iItemId; + iItemResourceId = aBaseItem.iItemResourceId; + iItemLinkArray = aBaseItem.iItemLinkArray; + iItemSettingText->Copy( *aBaseItem.iItemSettingText ); + iItemAppereance = aBaseItem.iItemAppereance; + + return *this; + } + +// End of file +