diff -r e686773b3f54 -r 0ba2181d7c28 phonebookui/pbkcommonui/src/cntnameseditorview.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/pbkcommonui/src/cntnameseditorview.cpp Fri Mar 19 09:27:18 2010 +0200 @@ -0,0 +1,109 @@ +/* +* 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 "cntnameseditorview.h" +#include "cnteditordataviewitem.h" + +CntNamesEditorView::CntNamesEditorView(CntViewManager *viewManager, QGraphicsItem *parent): + CntBaseDetailEditorView(viewManager, parent) +{ + setHeader(hbTrId("Edit name details")); +} + +CntNamesEditorView::~CntNamesEditorView() +{ + +} + +void CntNamesEditorView::aboutToCloseView() +{ + for (int i = 0; i < mDetailList.count(); i++) + { + mContact->saveDetail(mDetailList.at(i)); + if (mDetailList.at(i)->definitionName() == QContactNickname::DefinitionName && + mDetailList.at(i)->value(QContactNickname::FieldNickname).isEmpty()) + { + mContact->removeDetail(mDetailList.at(i)); + } + if (mDetailList.at(i)->definitionName() == QContactName::DefinitionName && + mDetailList.at(i)->value(QContactName::FieldFirst).isEmpty() && + mDetailList.at(i)->value(QContactName::FieldLast).isEmpty() && + mDetailList.at(i)->value(QContactName::FieldMiddle).isEmpty() && + mDetailList.at(i)->value(QContactName::FieldPrefix).isEmpty() && + mDetailList.at(i)->value(QContactName::FieldSuffix).isEmpty()) + { + mContact->removeDetail(mDetailList.at(i)); + } + } + CntBaseDetailEditorView::aboutToCloseView(); +} + +void CntNamesEditorView::initializeForm() +{ + QList nameDetails = mContact->details(); + QList nickDetails = mContact->details(); + QContactName *name = 0; + QContactNickname *nick = 0; + + if (nameDetails.count() > 0) + { + name = new QContactName(nameDetails.at(0)); + } + else + { + name = new QContactName(); + } + mDetailList.append(name); + + if (nickDetails.count() > 0) + { + nick = new QContactNickname(nickDetails.at(0)); + } + else + { + nick = new QContactNickname(); + } + mDetailList.append(nick); + + CntEditorDataModelItem *item = new CntEditorDataModelItem(*name, QContactName::FieldFirst, CNT_NAMES_EDITOR_MAXLENGTH, + static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_first_name")); + formModel()->appendDataFormItem(item, formModel()->invisibleRootItem()); + + item = new CntEditorDataModelItem(*name, QContactName::FieldLast, CNT_NAMES_EDITOR_MAXLENGTH, + static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_last_name")); + formModel()->appendDataFormItem(item, formModel()->invisibleRootItem()); + + item = new CntEditorDataModelItem(*name, QContactName::FieldMiddle, CNT_NAMES_EDITOR_MAXLENGTH, + static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_middle_name")); + formModel()->appendDataFormItem(item, formModel()->invisibleRootItem()); + + item = new CntEditorDataModelItem(*nick, QContactNickname::FieldNickname, CNT_NAMES_EDITOR_MAXLENGTH, + static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_nick_name")); + formModel()->appendDataFormItem(item, formModel()->invisibleRootItem()); + + item = new CntEditorDataModelItem(*name, QContactName::FieldPrefix, CNT_PREFIXSUFFIX_EDITOR_MAXLENGTH, + static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_prefix")); + formModel()->appendDataFormItem(item, formModel()->invisibleRootItem()); + + item = new CntEditorDataModelItem(*name, QContactName::FieldSuffix, CNT_PREFIXSUFFIX_EDITOR_MAXLENGTH, + static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("Suffix")); + formModel()->appendDataFormItem(item, formModel()->invisibleRootItem()); + + // set focus to first name field's lineedit + static_cast(dataForm()->itemByIndex(formModel()->index(0, 0, QModelIndex())))->focusLineEdit(); +} +