diff -r d4f567ce2e7c -r 5b6f26637ad3 phonebookui/pbkcommonui/src/cnturleditormodel.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/pbkcommonui/src/cnturleditormodel.cpp Tue Aug 31 15:05:21 2010 +0300 @@ -0,0 +1,87 @@ +/* +* Copyright (c) 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: +* +*/ +#include "cnturleditormodel.h" +#include "cntdetailmodelitem.h" +#include "cntdetailorderinghelper.h" + +#include + +CntUrlEditorModel::CntUrlEditorModel(QContact* aContact) : + CntDetailEditorModel(aContact) +{ + mUrlList = CntDetailOrderingHelper::getOrderedUrls(*mContact); + if (mUrlList.isEmpty()) { + QContactUrl url; + url.setSubType(QContactUrl::SubTypeHomePage); + mUrlList.append(url); + } + + foreach( QContactUrl contactUrl, mUrlList ) { + CntDetailModelItem* item = new CntDetailModelItem(contactUrl); + appendDataFormItem(item, invisibleRootItem()); + } +} + +CntUrlEditorModel::~CntUrlEditorModel() +{ +} + +void CntUrlEditorModel::insertDetailField() +{ + QContactUrl url; + url.setSubType(QContactUrl::SubTypeHomePage); + mUrlList.append( url ); + appendDataFormItem( new CntDetailModelItem(url), invisibleRootItem() ); +} + +void CntUrlEditorModel::saveContactDetails() +{ + HbDataFormModelItem* root = invisibleRootItem(); + + int count(root->childCount()); + for (int i(0); i < count; i++) { + CntDetailModelItem* detail = static_cast (root->childAt(i)); + QContactDetail url = detail->detail(); + + if ( !mUrlList.contains(url) ) + { + mContact->saveDetail( &url ); + } + + if ( url.value(QContactUrl::FieldUrl).isEmpty() ) + { + mContact->removeDetail( &url ); + } + } +} + +QContactDetail CntUrlEditorModel::detail() const +{ + QListIterator urlList(mContact->details()); + urlList.toBack(); // go through backwards, so the newest item will be returned + while ( urlList.hasPrevious() ) + { + QContactUrl url = urlList.previous(); + if ( !url.value(QContactUrl::FieldUrl).isEmpty() ) + { + return url; + } + } + return QContactEmailAddress(); // return empty address if none found +} +// End of File +