phonebookui/pbkcommonui/src/cntnameseditorview.cpp
changeset 24 0ba2181d7c28
equal deleted inserted replaced
0:e686773b3f54 24:0ba2181d7c28
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  
       
    15 *
       
    16 */
       
    17 
       
    18 #include "cntnameseditorview.h"
       
    19 #include "cnteditordataviewitem.h"
       
    20 
       
    21 CntNamesEditorView::CntNamesEditorView(CntViewManager *viewManager, QGraphicsItem *parent):
       
    22     CntBaseDetailEditorView(viewManager, parent)
       
    23 {
       
    24     setHeader(hbTrId("Edit name details"));
       
    25 }
       
    26 
       
    27 CntNamesEditorView::~CntNamesEditorView()
       
    28 {
       
    29 
       
    30 }
       
    31 
       
    32 void CntNamesEditorView::aboutToCloseView()
       
    33 {
       
    34     for (int i = 0; i < mDetailList.count(); i++)
       
    35     {
       
    36         mContact->saveDetail(mDetailList.at(i));
       
    37         if (mDetailList.at(i)->definitionName() == QContactNickname::DefinitionName && 
       
    38                 mDetailList.at(i)->value(QContactNickname::FieldNickname).isEmpty())
       
    39         {
       
    40             mContact->removeDetail(mDetailList.at(i));
       
    41         }
       
    42         if (mDetailList.at(i)->definitionName() == QContactName::DefinitionName && 
       
    43                 mDetailList.at(i)->value(QContactName::FieldFirst).isEmpty() &&
       
    44                 mDetailList.at(i)->value(QContactName::FieldLast).isEmpty() &&
       
    45                 mDetailList.at(i)->value(QContactName::FieldMiddle).isEmpty() &&
       
    46                 mDetailList.at(i)->value(QContactName::FieldPrefix).isEmpty() &&
       
    47                 mDetailList.at(i)->value(QContactName::FieldSuffix).isEmpty())
       
    48         {
       
    49             mContact->removeDetail(mDetailList.at(i));
       
    50         }
       
    51     }
       
    52     CntBaseDetailEditorView::aboutToCloseView();
       
    53 }
       
    54 
       
    55 void CntNamesEditorView::initializeForm()
       
    56 {    
       
    57     QList<QContactName> nameDetails = mContact->details<QContactName>();
       
    58     QList<QContactNickname> nickDetails = mContact->details<QContactNickname>();
       
    59     QContactName *name = 0;
       
    60     QContactNickname *nick = 0;
       
    61     
       
    62     if (nameDetails.count() > 0)
       
    63     {
       
    64         name = new QContactName(nameDetails.at(0));
       
    65     }
       
    66     else
       
    67     {
       
    68         name = new QContactName();
       
    69     }
       
    70     mDetailList.append(name);
       
    71     
       
    72     if (nickDetails.count() > 0)
       
    73     {
       
    74         nick = new QContactNickname(nickDetails.at(0));
       
    75     }
       
    76     else
       
    77     {
       
    78         nick = new QContactNickname();
       
    79     }
       
    80     mDetailList.append(nick);
       
    81     
       
    82     CntEditorDataModelItem *item = new CntEditorDataModelItem(*name, QContactName::FieldFirst, CNT_NAMES_EDITOR_MAXLENGTH,
       
    83             static_cast<HbDataFormModelItem::DataItemType>(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_first_name"));
       
    84     formModel()->appendDataFormItem(item, formModel()->invisibleRootItem());
       
    85     
       
    86     item = new CntEditorDataModelItem(*name, QContactName::FieldLast, CNT_NAMES_EDITOR_MAXLENGTH,
       
    87             static_cast<HbDataFormModelItem::DataItemType>(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_last_name"));
       
    88     formModel()->appendDataFormItem(item, formModel()->invisibleRootItem());
       
    89     
       
    90     item = new CntEditorDataModelItem(*name, QContactName::FieldMiddle, CNT_NAMES_EDITOR_MAXLENGTH,
       
    91             static_cast<HbDataFormModelItem::DataItemType>(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_middle_name"));
       
    92     formModel()->appendDataFormItem(item, formModel()->invisibleRootItem());
       
    93     
       
    94     item = new CntEditorDataModelItem(*nick, QContactNickname::FieldNickname, CNT_NAMES_EDITOR_MAXLENGTH,
       
    95             static_cast<HbDataFormModelItem::DataItemType>(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_nick_name"));
       
    96     formModel()->appendDataFormItem(item, formModel()->invisibleRootItem());
       
    97     
       
    98     item = new CntEditorDataModelItem(*name, QContactName::FieldPrefix, CNT_PREFIXSUFFIX_EDITOR_MAXLENGTH,
       
    99             static_cast<HbDataFormModelItem::DataItemType>(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_prefix"));
       
   100     formModel()->appendDataFormItem(item, formModel()->invisibleRootItem());
       
   101     
       
   102     item = new CntEditorDataModelItem(*name, QContactName::FieldSuffix, CNT_PREFIXSUFFIX_EDITOR_MAXLENGTH,
       
   103             static_cast<HbDataFormModelItem::DataItemType>(HbDataFormModelItem::CustomItemBase+1), hbTrId("Suffix"));
       
   104     formModel()->appendDataFormItem(item, formModel()->invisibleRootItem());
       
   105 
       
   106     // set focus to first name field's lineedit
       
   107     static_cast<CntEditorDataViewItem*>(dataForm()->itemByIndex(formModel()->index(0, 0, QModelIndex())))->focusLineEdit();
       
   108 }
       
   109