diff -r d4f567ce2e7c -r 5b6f26637ad3 phonebookengines_old/contactsmodel/src/CVIEWCONTACTEXTENSION.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookengines_old/contactsmodel/src/CVIEWCONTACTEXTENSION.cpp Tue Aug 31 15:05:21 2010 +0300 @@ -0,0 +1,86 @@ +// Copyright (c) 2003-2009 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: +// + +// User includes +#include "CVIEWCONTACTEXTENSION.h" + + +/** Allocates and constructs a CViewContactExtension object + * @param aLength initial MaxLenght of a contact buffer.*/ +CViewContactExtension* CViewContactExtension::NewL(TInt aLength) + { + CViewContactExtension* extension=new(ELeave)CViewContactExtension(); + CleanupStack::PushL(extension); + extension->ConstructL(aLength); + CleanupStack::Pop(extension); + return extension; + } + +/** + * Second phase constructor. + * @param aLength initial MaxLenght of a contact buffer. + */ +void CViewContactExtension::ConstructL(TInt aLength) + { + if (aLength > 0) + { + iFieldTextBuf = HBufC::NewL(aLength); + } + } + +/** + * Default constructor + */ +CViewContactExtension::CViewContactExtension() +: iFieldTextBuf(NULL) + { + } + +/** + * Destructor + */ +CViewContactExtension::~CViewContactExtension() + { + delete iFieldTextBuf; + } + +/** + * Append the specified field data to any existing field data + * + * @param aField Field data + */ +void CViewContactExtension::AppendToFieldTextL(const TDesC& aField) + { + const TInt fieldLength = aField.Length(); + + if (fieldLength > 0) + { + if (!iFieldTextBuf) + { + iFieldTextBuf = aField.AllocL(); + } + else + { + const TInt length = iFieldTextBuf->Length(); + const TInt maxLength = iFieldTextBuf->Des().MaxLength(); + + if (length + fieldLength > maxLength) + { + iFieldTextBuf = iFieldTextBuf->ReAllocL(length + fieldLength); + } + iFieldTextBuf->Des().Append(aField); + } + } + }