diff -r ebe688cedc25 -r 7fdbb852d323 email/imum/Utils/Src/MuiuDynamicSettingItemLink.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imum/Utils/Src/MuiuDynamicSettingItemLink.cpp Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,137 @@ +/* +* Copyright (c) 2006 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: MuiuDynamicSettingItemLink.cpp +* +*/ + + +// INCLUDE FILES +#include +#include "MuiuDynamicSettingItemLink.h" +#include "MuiuDynamicSettingsArray.hrh" +#include "MuiuDynamicSettingsArray.h" + +// EXTERNAL DATA STRUCTURES +// EXTERNAL FUNCTION PROTOTYPES +// CONSTANTS +// MACROS +// LOCAL CONSTANTS AND MACROS +// MODULE DATA STRUCTURES +// LOCAL FUNCTION PROTOTYPES +// FORWARD DECLARATIONS +// CLASS DECLARATION + +// ---------------------------------------------------------------------------- +// CMuiuSettingsLink::CMuiuSettingsLink() +// ---------------------------------------------------------------------------- +CMuiuSettingsLink::CMuiuSettingsLink() + : + iItemSubType( EMuiuDynSetUndefined ), + iItemLinkArray( NULL ), + iItemSettingText( NULL ) + { + } + +// ---------------------------------------------------------------------------- +// CMuiuSettingsEditText::ConstructL() +// ---------------------------------------------------------------------------- +// +void CMuiuSettingsLink::ConstructL() + { + CMuiuSettingBase::ConstructL(); + + iItemSettingText = new ( ELeave ) TMuiuSettingsText(); + } + +// ---------------------------------------------------------------------------- +// CMuiuSettingsLink::CMuiuSettingsLink() +// ---------------------------------------------------------------------------- +CMuiuSettingsLink::~CMuiuSettingsLink() + { + // Check if subarray exist + if ( iItemLinkArray ) + { + // Check all items in array and delete any subarrays from list + for ( TInt index = iItemLinkArray->Count(); --index >= 0; ) + { + // Only certain type of items can contain subarrays + CMuiuSettingBase* base = ( *iItemLinkArray )[index]; + + delete base; + base = NULL; + } + } + + delete iItemLinkArray; + iItemLinkArray = NULL; + delete iItemSettingText; + iItemSettingText = NULL; + } + +// ---------------------------------------------------------------------------- +// CMuiuSettingsLink::NewL() +// ---------------------------------------------------------------------------- +// +CMuiuSettingsLink* CMuiuSettingsLink::NewL() + { + CMuiuSettingsLink* self = NewLC(); + CleanupStack::Pop( self ); + + return self; + } + +// ---------------------------------------------------------------------------- +// CMuiuSettingsLink::NewLC() +// ---------------------------------------------------------------------------- +// +CMuiuSettingsLink* CMuiuSettingsLink::NewLC() + { + CMuiuSettingsLink* self = + new ( ELeave ) CMuiuSettingsLink(); + CleanupStack::PushL( self ); + self->ConstructL(); + + return self; + } + +// ---------------------------------------------------------------------------- +// CMuiuSettingsLink::operator=() +// ---------------------------------------------------------------------------- +// +CMuiuSettingsLink& CMuiuSettingsLink::operator=( + const CMuiuSettingsLink& aBaseItem ) + { + __ASSERT_DEBUG( iItemLabel, + User::Panic( KMuiuBaseItemPanic, KErrUnknown ) ); + __ASSERT_DEBUG( aBaseItem.iItemLabel, + User::Panic( KMuiuBaseItemPanic, KErrUnknown ) ); + __ASSERT_DEBUG( iItemSettingText, + User::Panic( KMuiuBaseItemPanic, KErrUnknown ) ); + __ASSERT_DEBUG( aBaseItem.iItemSettingText, + User::Panic( KMuiuBaseItemPanic, KErrUnknown ) ); + + iItemFlags = aBaseItem.iItemFlags; + iItemType = aBaseItem.iItemType; + iItemLabel->Copy( *aBaseItem.iItemLabel ); + iItemId = aBaseItem.iItemId; + iItemResourceId = aBaseItem.iItemResourceId; + iItemLinkArray = aBaseItem.iItemLinkArray; + iItemSettingText->Copy( *aBaseItem.iItemSettingText ); + iItemSubType = aBaseItem.iItemSubType; + + return *this; + } + +// End of file +