phonebookui/pbkcommonui/src/cntnameseditorview.cpp
changeset 24 0ba2181d7c28
--- /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<QContactName> nameDetails = mContact->details<QContactName>();
+    QList<QContactNickname> nickDetails = mContact->details<QContactNickname>();
+    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::DataItemType>(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::DataItemType>(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::DataItemType>(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::DataItemType>(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::DataItemType>(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::DataItemType>(HbDataFormModelItem::CustomItemBase+1), hbTrId("Suffix"));
+    formModel()->appendDataFormItem(item, formModel()->invisibleRootItem());
+
+    // set focus to first name field's lineedit
+    static_cast<CntEditorDataViewItem*>(dataForm()->itemByIndex(formModel()->index(0, 0, QModelIndex())))->focusLineEdit();
+}
+