diff -r 76a2435edfd4 -r de1630741fbe phonebookui/pbkcommonui/src/cntaddresseditorview.cpp --- a/phonebookui/pbkcommonui/src/cntaddresseditorview.cpp Fri Apr 16 14:53:18 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,230 +0,0 @@ -/* -* 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 "cntaddresseditorview.h" -#include "cnteditordataviewitem.h" -#include - -CntAddressEditorView::CntAddressEditorView(CntViewManager *viewManager, QGraphicsItem *parent): - CntBaseDetailEditorView(viewManager, parent) -{ - setHeader(hbTrId("txt_phob_subtitle_edit_address_details")); -} - -CntAddressEditorView::~CntAddressEditorView() -{ - -} - -void CntAddressEditorView::aboutToCloseView() -{ - for (int i = 0; i < mDetailList.count(); i++) - { - mContact->saveDetail(mDetailList.at(i)); - - if (mDetailList.at(i)->value(QContactAddress::FieldPostOfficeBox).isEmpty() && - mDetailList.at(i)->value(QContactAddress::FieldStreet).isEmpty() && - mDetailList.at(i)->value(QContactAddress::FieldPostcode).isEmpty() && - mDetailList.at(i)->value(QContactAddress::FieldLocality).isEmpty() && - mDetailList.at(i)->value(QContactAddress::FieldRegion).isEmpty() && - mDetailList.at(i)->value(QContactAddress::FieldCountry).isEmpty()) - { - mContact->removeDetail(mDetailList.at(i)); - } - } - CntBaseDetailEditorView::aboutToCloseView(); -} - -void CntAddressEditorView::initializeForm() -{ - QList addressDetails = mContact->details(); - QContactAddress *address = 0; - QContactAddress *addressHome = 0; - QContactAddress *addressWork = 0; - - // we allow one address detail of each type: no context, home and work - if (addressDetails.count() > 0) - { - for(int i = 0;i < addressDetails.count();i++) - { - QString context; - if (addressDetails.at(i).contexts().count()) - { - context = addressDetails.at(i).contexts().at(0); - } - - if (context.isEmpty() && address == 0) - { - address = new QContactAddress(addressDetails.at(i)); - mDetailList.append(address); - } - else if (context == QContactDetail::ContextHome && addressHome == 0) - { - addressHome = new QContactAddress(addressDetails.at(i)); - mDetailList.append(addressHome); - } - else if (context == QContactDetail::ContextWork && addressWork == 0) - { - addressWork = new QContactAddress(addressDetails.at(i)); - mDetailList.append(addressWork); - } - } - } - else - { - address = new QContactAddress(); - mDetailList.append(address); - - addressHome = new QContactAddress(); - addressHome->setContexts(QContactDetail::ContextHome); - mDetailList.append(addressHome); - - addressWork = new QContactAddress(); - addressWork->setContexts(QContactDetail::ContextWork); - mDetailList.append(addressWork); - } - - // check if any of the address details isn't set yet - if (address == 0) - { - address = new QContactAddress(); - mDetailList.append(address); - } - if (addressHome == 0) - { - addressHome = new QContactAddress(); - addressHome->setContexts(QContactDetail::ContextHome); - mDetailList.append(addressHome); - } - if (addressWork == 0) - { - addressWork = new QContactAddress(); - addressWork->setContexts(QContactDetail::ContextWork); - mDetailList.append(addressWork); - } - - HbDataFormModelItem *addressType = - formModel()->appendDataFormGroup(hbTrId("txt_phob_list_address"), formModel()->invisibleRootItem()); - - //Details for addressDefault - CntEditorDataModelItem *item = new CntEditorDataModelItem(*address, QContactAddress::FieldStreet, CNT_NAMES_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_street")); - formModel()->appendDataFormItem(item, addressType); - - item = new CntEditorDataModelItem(*address, QContactAddress::FieldPostOfficeBox, CNT_POBOX_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("P.O. Box")); - item->setTextFilter(HbPhoneNumberFilter::instance()); - formModel()->appendDataFormItem(item, addressType); - - item = new CntEditorDataModelItem(*address, QContactAddress::FieldPostcode, CNT_POBOX_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_post_code")); - item->setTextFilter(HbPhoneNumberFilter::instance()); - formModel()->appendDataFormItem(item, addressType); - - item = new CntEditorDataModelItem(*address, QContactAddress::FieldLocality, CNT_NAMES_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_city")); - formModel()->appendDataFormItem(item, addressType); - - item = new CntEditorDataModelItem(*address, QContactAddress::FieldRegion, CNT_NAMES_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_province")); - formModel()->appendDataFormItem(item, addressType); - - item = new CntEditorDataModelItem(*address, QContactAddress::FieldCountry, CNT_NAMES_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("txt_phob_formlabel_country")); - formModel()->appendDataFormItem(item, addressType); - - //Details for addressHome - HbDataFormModelItem *addressHomeType = - formModel()->appendDataFormGroup(hbTrId("txt_phob_subhead_address_home"), formModel()->invisibleRootItem()); - - item = new CntEditorDataModelItem(*addressHome, QContactAddress::FieldStreet, CNT_NAMES_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("Street (home)")); - formModel()->appendDataFormItem(item, addressHomeType); - - item = new CntEditorDataModelItem(*addressHome, QContactAddress::FieldPostOfficeBox, CNT_POBOX_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("P.O. Box (home)")); - item->setTextFilter(HbPhoneNumberFilter::instance()); - formModel()->appendDataFormItem(item, addressHomeType); - - item = new CntEditorDataModelItem(*addressHome, QContactAddress::FieldPostcode, CNT_POBOX_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("Postal code (home)")); - item->setTextFilter(HbPhoneNumberFilter::instance()); - formModel()->appendDataFormItem(item, addressHomeType); - - item = new CntEditorDataModelItem(*addressHome, QContactAddress::FieldLocality, CNT_NAMES_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("City (home)")); - formModel()->appendDataFormItem(item, addressHomeType); - - item = new CntEditorDataModelItem(*addressHome, QContactAddress::FieldRegion, CNT_NAMES_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("Region (home)")); - formModel()->appendDataFormItem(item, addressHomeType); - - item = new CntEditorDataModelItem(*addressHome, QContactAddress::FieldCountry, CNT_NAMES_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("Country (home)")); - formModel()->appendDataFormItem(item, addressHomeType); - - //Details for addressWork - HbDataFormModelItem *addressWorkType = - formModel()->appendDataFormGroup(hbTrId("txt_phob_subhead_address_work"), formModel()->invisibleRootItem()); - - item = new CntEditorDataModelItem(*addressWork, QContactAddress::FieldStreet, CNT_NAMES_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("Street (work)")); - formModel()->appendDataFormItem(item, addressWorkType); - - item = new CntEditorDataModelItem(*addressWork, QContactAddress::FieldPostOfficeBox, CNT_POBOX_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("P.O. Box (work)")); - item->setTextFilter(HbPhoneNumberFilter::instance()); - formModel()->appendDataFormItem(item, addressWorkType); - - item = new CntEditorDataModelItem(*addressWork, QContactAddress::FieldPostcode, CNT_POBOX_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("Postal code (work)")); - item->setTextFilter(HbPhoneNumberFilter::instance()); - formModel()->appendDataFormItem(item, addressWorkType); - - item = new CntEditorDataModelItem(*addressWork, QContactAddress::FieldLocality, CNT_NAMES_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("City (work)")); - formModel()->appendDataFormItem(item, addressWorkType); - - item = new CntEditorDataModelItem(*addressWork, QContactAddress::FieldRegion, CNT_NAMES_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("Region (work)")); - formModel()->appendDataFormItem(item, addressWorkType); - - item = new CntEditorDataModelItem(*addressWork, QContactAddress::FieldCountry, CNT_NAMES_EDITOR_MAXLENGTH, - static_cast(HbDataFormModelItem::CustomItemBase+1), hbTrId("Country (work)")); - formModel()->appendDataFormItem(item, addressWorkType); - - // Define which address type is expanded, by default normal address is opened - if (mParamString.isEmpty()) - { - dataForm()->setExpanded(formModel()->indexFromItem(addressType), true); - // set focus to street detail's lineedit - static_cast(dataForm()->itemByIndex(formModel()->indexFromItem(addressType->childAt(0))))->focusLineEdit(); - } - else if (mParamString == QContactDetail::ContextHome) - { - dataForm()->setExpanded(formModel()->indexFromItem(addressHomeType), true); - // set focus to street detail's lineedit - static_cast(dataForm()->itemByIndex(formModel()->indexFromItem(addressHomeType->childAt(0))))->focusLineEdit(); - } - else if (mParamString == QContactDetail::ContextWork) - { - dataForm()->setExpanded(formModel()->indexFromItem(addressWorkType), true); - // set focus to street detail's lineedit - static_cast(dataForm()->itemByIndex(formModel()->indexFromItem(addressWorkType->childAt(0))))->focusLineEdit(); - } -} -