phonebookui/pbkcommonui/src/cntcompanyeditormodel.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 14 May 2010 15:42:23 +0300
changeset 31 2a11b5b00470
parent 25 76a2435edfd4
child 37 fd64c38c277d
permissions -rw-r--r--
Revision: 201017 Kit: 201019

/*
* 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 "cntcompanyeditormodel.h"
#include "cntdetailconst.h"
#include <qcontactorganization.h>

CntCompanyEditorModel::CntCompanyEditorModel(QContact* aContact) :
    CntDetailEditorModel(aContact)
{
    QList<QContactOrganization> orgList = mContact->details<QContactOrganization> ();
    if (orgList.isEmpty()) {
        QContactOrganization organization;
        orgList << organization;
    }

    mCompany = orgList.first();

    HbDataFormModelItem* organization = new HbDataFormModelItem(HbDataFormModelItem::TextItem,
        qtTrId("Company"));
    organization->setContentWidgetData("text", mCompany.name());
    organization->setContentWidgetData("maxLength", CNT_ORGANIZATION_MAXLENGTH);

    HbDataFormModelItem* jobTitle = new HbDataFormModelItem(HbDataFormModelItem::TextItem, qtTrId(
        "Job title"));
    jobTitle->setContentWidgetData("text", mCompany.title());
    jobTitle->setContentWidgetData("maxLength", CNT_JOBTITLE_MAXLENGTH);

    HbDataFormModelItem* department = new HbDataFormModelItem(HbDataFormModelItem::TextItem,
        qtTrId("Department"));
    department->setContentWidgetData("text", mCompany.department());
    department->setContentWidgetData("maxLength", CNT_DEPARTMENT_MAXLENGTH);

    HbDataFormModelItem* assistant = new HbDataFormModelItem(HbDataFormModelItem::TextItem, qtTrId(
        "Assistant name"));
    assistant->setContentWidgetData("text", mCompany.assistantName());
    assistant->setContentWidgetData("maxLength", CNT_ASSISTANT_MAXLENGTH);

    HbDataFormModelItem* root = invisibleRootItem();
    appendDataFormItem(organization, root);
    appendDataFormItem(jobTitle, root);
    appendDataFormItem(department, root);
    appendDataFormItem(assistant, root);
}

CntCompanyEditorModel::~CntCompanyEditorModel()
{
}

void CntCompanyEditorModel::saveContactDetails()
{
    HbDataFormModelItem* root = invisibleRootItem();
    if (!root->childAt(0)->contentWidgetData("text").toString().isEmpty())
        mCompany.setName( root->childAt(0)->contentWidgetData("text").toString() );
    else
        mCompany.setName(QString());
    if (!root->childAt(1)->contentWidgetData("text").toString().isEmpty())
        mCompany.setTitle( root->childAt(1)->contentWidgetData("text").toString() );
    else
        mCompany.setTitle(QString());
    if (!root->childAt(2)->contentWidgetData("text").toString().isEmpty())
        mCompany.setDepartment( root->childAt(2)->contentWidgetData("text").toString().split(", ") );
    else
        mCompany.setDepartment(QStringList());
    if (!root->childAt(3)->contentWidgetData("text").toString().isEmpty())
        mCompany.setAssistantName( root->childAt(3)->contentWidgetData("text").toString() );
    else
        mCompany.setAssistantName(QString());
    
    mContact->saveDetail( &mCompany );
    
    if ( mCompany.name().isEmpty() && 
         mCompany.title().isEmpty() &&
         mCompany.department().isEmpty() &&
         mCompany.assistantName().isEmpty() )
    {
        mContact->removeDetail( &mCompany );
    }
}

// End of File