phonebookui/pbkcommonui/src/cnteditview.cpp
changeset 27 de1630741fbe
parent 25 76a2435edfd4
child 31 2a11b5b00470
--- a/phonebookui/pbkcommonui/src/cnteditview.cpp	Fri Apr 16 14:53:18 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cnteditview.cpp	Mon May 03 12:24:20 2010 +0300
@@ -16,8 +16,11 @@
 */
 
 #include "cnteditview.h"
-#include "cntviewparameters.h"
-#include "cntviewmanager.h"
+#include "cnteditview_p.h"
+#include "cntabstractviewmanager.h"
+
+#include <hbview.h>
+
 #include "cntdetailpopup.h"
 #include "cnteditviewdetailitem.h"
 #include "cnteditviewheadingitem.h"
@@ -30,879 +33,45 @@
 #include <hbmenu.h>
 #include <thumbnailmanager_qt.h>
 
-const char *CNT_UI_XML = ":/xml/contacts_ev.docml";
-
-CntEditView::CntEditView(CntViewManager *aViewManager, QGraphicsItem *aParent) : 
-    CntBaseView(aViewManager, aParent),
-    mScrollArea(0),
-    mContainerWidget(0),
-    mContainerLayout(0),
-    mContact(0),
-    mDetailItem(0),
-    mThumbnailManager(0),
-    mHeadingItem(0),
-    mDetailItemIndex(-1),
-    mAddressItemIndex(-1)
-{   
-    bool ok = false;
-    ok=loadDocument(CNT_UI_XML);
-
-    if (ok)
-    {
-        QGraphicsWidget *content = findWidget(QString("content"));
-        setWidget(content);
-    }
-    else
-    {
-        qFatal("Unable to read :/xml/contacts_ev.docml");
-    }
-    mThumbnailManager = new ThumbnailManager(this);
-    mThumbnailManager->setMode(ThumbnailManager::Default);
-    mThumbnailManager->setQualityPreference(ThumbnailManager::OptimizeForQuality);
-    mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailMedium);
-	
-    connect( mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void*, int, int)),
-        this, SLOT(thumbnailReady(QPixmap, void*, int, int)) );
+CntEditView::CntEditView() : d_ptr(new CntEditViewPrivate())
+{
+    Q_D( CntEditView );
+    connect( d_ptr, SIGNAL(contactUpdated()), this, SIGNAL(contactUpdated()) );
+    connect( d_ptr, SIGNAL(contactRemoved()), this, SIGNAL(contactRemoved()) );
+    connect( d_ptr, SIGNAL(changesDiscarded()), this, SIGNAL(changesDiscarded()) );
 }
 
 CntEditView::~CntEditView()
 {
-    delete mContact;
-}
-
-void CntEditView::thumbnailReady(const QPixmap& pixmap, void *data, int id, int error)
-{
-    Q_UNUSED(data);
-    Q_UNUSED(id);
-    if (!error)
-    {
-        QIcon qicon(pixmap);
-        HbIcon icon(qicon);
-        mHeadingItem->setIcon(icon);
-    }
-}
-
-/*!
-Activates a previous view
-*/
-void CntEditView::aboutToCloseView()
-{   
-    CntViewParameters viewParameters;
-    if (contact() && contact()->localId() == contactManager()->selfContactId()
-        && contactManager()->selfContactId() != 0 && contact()->details().count() <= 4)
-    {
-        //delete empty mycard
-        contactManager()->removeContact(contact()->localId());
-    }
-
-    // save contact if there is one and it's not empty
-    else if (contact() && !contact()->isEmpty())
-    {
-        bool isSaved = contactManager()->saveContact(contact());
-		
-        if (isSaved)
-        {
-            viewParameters.setSelectedContact(*contact());
-            viewParameters.setSelectedAction("save");
-        }
-        else
-        {
-            viewParameters.setSelectedAction("failed");
-        }
-    }
-    viewManager()->back(viewParameters);
-}
-
-void CntEditView::resizeEvent(QGraphicsSceneResizeEvent *event)
-{
-    if (mScrollArea)
-    {
-        mContainerWidget->resize(mScrollArea->size().width() - 50, 0);
-    }
-    CntBaseView::resizeEvent(event);
+    Q_D(CntEditView);
+    delete d;
 }
-
-/*
-Activates a default view
-*/
-void CntEditView::activateView(const CntViewParameters &aViewParameters)
+    
+void CntEditView::activate( CntAbstractViewManager* aMgr, const CntViewParameters aArgs )
 {
-    QContact xcontact = aViewParameters.selectedContact();
-    mContact = new QContact(xcontact);
-
-    mHeadingItem = static_cast<CntEditViewHeadingItem*>(findWidget(QString("cnt_editview_heading")));
-    mHeadingItem->setDetails(mContact);
-    connect(mHeadingItem, SIGNAL(iconClicked()), this, SLOT(openImageEditor()));
-    connect(mHeadingItem, SIGNAL(textClicked()), this, SLOT(openNameEditor()));
-    
-    QList<QContactAvatar> details = mContact->details<QContactAvatar>();
-    if (details.count() > 0)
-    {
-        for (int i = 0;i < details.count();i++)
-        {
-            if (details.at(i).subType() == QContactAvatar::SubTypeImage)
-            {
-                mThumbnailManager->getThumbnail(details.at(i).avatar());
-                break;
-            }
-        }
-    }
-
-    //construct listview & connect signals
-    mScrollArea = static_cast<HbScrollArea*>(findWidget(QString("cnt_listview_labels")));
-    mScrollArea->setScrollDirections(Qt::Vertical);
-
-    mContainerWidget = new QGraphicsWidget(mScrollArea);
-    mContainerWidget->setPreferredWidth(mScrollArea->size().width() - 50);
-    mScrollArea->setContentWidget(mContainerWidget);
-
-    mContainerLayout = new QGraphicsLinearLayout(Qt::Vertical);
-    mContainerLayout->setContentsMargins(0, 0, 0, 0);
-    mContainerLayout->setSpacing(0);
-    mContainerWidget->setLayout(mContainerLayout);
-    prepareItems();
-
-    // command handling (for delete menu option)
-    connect(commands(), SIGNAL(commandExecuted(QString, QContact)), 
-            this, SLOT(handleExecutedCommand(QString, QContact)));
-
-    // You can't delete a contact or my card contact which hasn't been saved yet, now can you?
-    if (contact() && contact()->localId() == contactManager()->selfContactId()
-        && contactManager()->selfContactId() != 0 && contact()->details().count() <= 4 || mContact->localId()== 0)
-    {
-        menu()->removeAction(actions()->baseAction("cnt:deletecontact"));
-    }
-
-    // Save and Discard all changes options only available once changes have been made
-    if (xcontact == contactManager()->contact(mContact->localId()))
-    {
-        actions()->baseAction("cnt:discardallchanges")->setEnabled(false);
-        actions()->baseAction("cnt:save")->setEnabled(false);
-    }
+    Q_D(CntEditView);
+    d->activate(aMgr,aArgs);
 }
 
-void CntEditView::prepareItems()
+void CntEditView::deactivate()
 {
-    QList<QContactPhoneNumber> numberDetails = mContact->details<QContactPhoneNumber>();
-    QList<QContactEmailAddress> emailDetails = mContact->details<QContactEmailAddress>();
-    QList<QContactAddress> addressDetails = mContact->details<QContactAddress>();
-    QList<QContactOnlineAccount> chatDetails = mContact->details<QContactOnlineAccount>();
-    QList<QContactUrl> urlDetails = mContact->details<QContactUrl>();
-
-    // phone numbers
-    if (numberDetails.count())
-    {
-        for (int i = 0;i < numberDetails.count();i++)
-        {
-            createItem(numberDetails.at(i));
-        }
-    }
-    else
-    {
-        QContactPhoneNumber number;
-        createItem(number);
-    }
-
-    // email addresses
-    if (emailDetails.count())
-    {
-        for (int i = 0;i < emailDetails.count();i++)
-        {
-            createItem(emailDetails.at(i));
-        }
-    }
-    else
-    {
-        QContactEmailAddress email;
-        createItem(email);
-    }
-
-    // postal addresses
-    if (!addressDetails.count())
-    {
-        QContactAddress address;
-        createItem(address);
-    }
-    else
-    {
-        mAddressItemIndex = mContainerLayout->count();
-    }
-
-    // IM accounts
-    if (chatDetails.count())
-    {
-        for (int i = 0;i < chatDetails.count();i++)
-        {
-            createItem(chatDetails.at(i));
-        }
-    }
-    else
-    {
-        QContactOnlineAccount account;
-        createItem(account);
-    }
-
-    // URL addresses
-    if (urlDetails.count())
-    {
-        for (int i = 0;i < urlDetails.count();i++)
-        {
-            createItem(urlDetails.at(i));
-        }
-    }
-    else
-    {
-        QContactUrl url;
-        createItem(url);
-    }
-
-    QList<QContactOrganization> companyDetails = mContact->details<QContactOrganization>();
-    QList<QContactBirthday> birthdayDetails = mContact->details<QContactBirthday>();
-    QList<QContactAnniversary> anniversaryDetails = mContact->details<QContactAnniversary>();
-    QList<QContactNote> noteDetails = mContact->details<QContactNote>();
-    QList<QContactFamily> familyDetails = mContact->details<QContactFamily>();
-
-    QList<QContactAvatar> ringingtoneDetails = mContact->details<QContactAvatar>();
-    bool hasRingingtone = false;
-    for (int i = 0;i < ringingtoneDetails.count();i++)
-    {
-        if (ringingtoneDetails.at(i).subType() == QContactAvatar::SubTypeAudioRingtone)
-        {
-            hasRingingtone = true;
-            break;
-        }
-    }
-
-    if (addressDetails.count() || companyDetails.count() || birthdayDetails.count() ||
-        anniversaryDetails.count() || noteDetails.count() || familyDetails.count() || hasRingingtone)
-    {
-        mDetailItem = new HbGroupBox(this);
-        mDetailItem->setHeading(hbTrId("Details"));
-        mContainerLayout->addItem(mDetailItem);
-        mDetailItemIndex = mContainerLayout->count();
-
-        // address details
-        if (addressDetails.count())
-        {
-            for (int i = 0;i < addressDetails.count();i++)
-            {
-                createItem(addressDetails.at(i));
-            }
-        }
-
-        // company details
-        if (companyDetails.count())
-        {
-            for (int i = 0;i < companyDetails.count();i++)
-            {
-                if (!companyDetails.at(i).title().isEmpty() ||
-                        !companyDetails.at(i).name().isEmpty() ||
-                        !companyDetails.at(i).department().isEmpty())
-                {
-                    mExcludeList.append(QContactOrganization::DefinitionName);
-                    createItem(companyDetails.at(i), QContactOrganization::DefinitionName);
-                }
-                if (!companyDetails.at(i).assistantName().isEmpty())
-                {
-                    mExcludeList.append(QContactOrganization::FieldAssistantName);
-                    createItem(companyDetails.at(i), QContactOrganization::FieldAssistantName);
-                }
-            }
-        }
-
-        // birthday
-        if (birthdayDetails.count())
-        {
-            mExcludeList.append(QContactBirthday::DefinitionName);
-            for (int i = 0;i < birthdayDetails.count();i++)
-            {
-                createItem(birthdayDetails.at(i));
-            }
-        }
-
-        // anniversary
-        if (anniversaryDetails.count())
-        {
-            mExcludeList.append(QContactAnniversary::DefinitionName);
-            for (int i = 0;i < anniversaryDetails.count();i++)
-            {
-                createItem(anniversaryDetails.at(i));
-            }
-        }
-
-        // ringing tone
-        if (ringingtoneDetails.count())
-        {
-            for (int i = 0;i < ringingtoneDetails.count();i++)
-            {
-                if (ringingtoneDetails.at(i).subType() == QContactAvatar::SubTypeAudioRingtone)
-                {
-                    mExcludeList.append(QContactAvatar::SubTypeAudioRingtone);
-                    createItem(ringingtoneDetails.at(i));
-                }
-            }
-        }
-
-        // notes
-        if (noteDetails.count())
-        {
-            mExcludeList.append(QContactNote::DefinitionName);
-            for (int i = 0;i < noteDetails.count();i++)
-            {
-                createItem(noteDetails.at(i));
-            }
-        }
-
-        // family details
-        if (familyDetails.count())
-        {
-            for (int i = 0;i < familyDetails.count();i++)
-            {
-                if (!familyDetails.at(i).spouse().isEmpty())
-                {
-                    mExcludeList.append(QContactFamily::FieldSpouse);
-                    createItem(familyDetails.at(i), QContactFamily::FieldSpouse);
-                }
-                if (familyDetails.at(i).children().count())
-                {
-                    mExcludeList.append(QContactFamily::FieldChildren);
-                    createItem(familyDetails.at(i), QContactFamily::FieldChildren);
-                }
-            }
-        }
-    }
-}
-
-void CntEditView::onLongPressed(const QPointF &point)
-{
-    CntEditViewDetailItem *item = qobject_cast<CntEditViewDetailItem*>(sender());
-    QContactDetail detail = item->detail();
-
-    HbMenu *menu = new HbMenu();
-    HbAction *addDetailAction = 0;
-    HbAction *editAction = 0;
-    HbAction *deleteAction = 0;
-
-    // not possible for some of the details or when detail type doesn't exist yet
-    if (detail.definitionName() != QContactAddress::DefinitionName &&
-        detail.definitionName() != QContactFamily::DefinitionName &&
-        detail.definitionName() != QContactOrganization::DefinitionName &&
-        detail.definitionName() != QContactBirthday::DefinitionName &&
-        detail.definitionName() != QContactAnniversary::DefinitionName &&
-        detail.definitionName() != QContactAvatar::DefinitionName &&
-        !detail.isEmpty())
-    {
-        addDetailAction = menu->addAction(hbTrId("Add detail"));
-    }
-
-    editAction = menu->addAction(hbTrId("Edit"));
-
-    // only add this if details contains something to delete
-    if (!detail.isEmpty())
-    {
-        deleteAction = menu->addAction(hbTrId("Delete detail"));
-    }
-    
-    HbAction *selectedAction = menu->exec(point);
-
-    if (selectedAction)
-    {
-        if (selectedAction == editAction)
-        {
-            onItemActivated();
-        }
-        else if (selectedAction == deleteAction)
-        {
-            deleteDetail();
-        }
-        else if (selectedAction == addDetailAction)
-        {
-            addDetail();
-        }
-    }
-    menu->deleteLater();
+    Q_D(CntEditView);
+    d->deactivate();
 }
 
-void CntEditView::onItemActivated()
+bool CntEditView::isDefault() const
 {
-    CntEditViewDetailItem *item = qobject_cast<CntEditViewDetailItem*>(sender());
-    QContactDetail detail = item->detail();
-
-    QString field = detail.definitionName();
-
-    // check the context (needed for editing postal address)
-    // or the index of the detail (needed for other editors for correct VKB handling)
-    QString context;
-    if (detail.contexts().count() && field == QContactAddress::DefinitionName)
-    {
-        context = detail.contexts().at(0);
-    }
-    // Phone number
-    else if (field == QContactPhoneNumber::DefinitionName)
-    {
-        int index = mContact->details<QContactPhoneNumber>().indexOf(detail);
-        context.setNum(index);
-    }
-    // Email address
-    else if (field == QContactEmailAddress::DefinitionName)
-    {
-        int index = mContact->details<QContactEmailAddress>().indexOf(detail);
-        context.setNum(index);
-    }
-    // Online account (IM)
-    else if (field == QContactOnlineAccount::DefinitionName)
-    {
-        int index = mContact->details<QContactOnlineAccount>().indexOf(detail);
-        context.setNum(index);
-    }
-    // URL
-    else if (field == QContactUrl::DefinitionName)
-    {
-        int index = mContact->details<QContactUrl>().indexOf(detail);
-        context.setNum(index);
-    }
-    // Note
-    else if (field == QContactNote::DefinitionName)
-    {
-        int index = mContact->details<QContactNote>().indexOf(detail);
-        context.setNum(index);
-    }
-    // Family details
-    else if (field == QContactFamily::DefinitionName)
-    {
-        if (item->fieldType() == QContactFamily::FieldSpouse)
-        {
-            context = "spouse";
-        }
-    }
-    // Company details
-    else if (field == QContactOrganization::DefinitionName)
-    {
-        if (item->fieldType() == field)
-        {
-            context = "company";
-        }
-    }
-    // Ringing tone
-    else if (field == QContactAvatar::DefinitionName)
-    {
-        // launch ringtone picker service
-    }
-
-    CntViewParameters viewParameters(CntViewParameters::noView);
-    viewParameters = prepareToEditContact(field, context);
-    viewParameters.setSelectedContact(*contact());
-    if (viewParameters.nextViewId() != CntViewParameters::noView)
-    {
-        viewManager()->changeView(viewParameters);
-    }
-}
-
-/*!
-Open the editor for the selected detail and add a new empty field with default subtype & context
-*/
-void CntEditView::addDetail()
-{
-    CntEditViewDetailItem *item = qobject_cast<CntEditViewDetailItem*>(sender());
-    QContactDetail detail = item->detail();
-    QString field = detail.definitionName();
-
-    CntViewParameters viewParameters(CntViewParameters::noView);
-    QString action("add");
-    viewParameters = prepareToEditContact(field, action);
-    viewParameters.setSelectedContact(*contact());
-    if (viewParameters.nextViewId() != CntViewParameters::noView)
-    {
-        viewManager()->changeView(viewParameters);
-    }
+    return false;
 }
 
-/*!
-Delete the selected (via longtap menu) detail
-*/
-void CntEditView::deleteDetail()
+HbView* CntEditView::view() const
 {
-    CntEditViewDetailItem *item = qobject_cast<CntEditViewDetailItem*>(sender());
-    QContactDetail detail = item->detail();
-
-    // family detail needs special checking as it is split in multiple items in the list
-    if (detail.definitionName() == QContactFamily::DefinitionName)
-    {
-        QContactFamily family(detail);
-
-        if (item->fieldType() == QContactFamily::FieldSpouse)
-        {
-            family.setSpouse(QString());
-            mExcludeList.removeOne(QContactFamily::FieldSpouse);
-        }
-        else
-        {
-            family.setChildren(QStringList());
-            mExcludeList.removeOne(QContactFamily::FieldChildren);
-        }
-        contact()->saveDetail(&family);
-    }
-    // same goes for company details
-    else if (detail.definitionName() == QContactOrganization::DefinitionName)
-    {
-        QContactOrganization company(detail);
-
-        if (item->fieldType() == QContactOrganization::DefinitionName)
-        {
-            company.setTitle(QString());
-            company.setDepartment(QStringList());
-            company.setName(QString());
-            mExcludeList.removeOne(QContactOrganization::DefinitionName);
-        }
-        else
-        {
-            company.setAssistantName(QString());
-            mExcludeList.removeOne(QContactOrganization::FieldAssistantName);
-        }
-        contact()->saveDetail(&company);
-    }
-    else if (detail.definitionName() == QContactBirthday::DefinitionName)
-    {
-        mExcludeList.removeOne(QContactBirthday::DefinitionName);
-        contact()->removeDetail(&detail);
-    }
-    else if (detail.definitionName() == QContactAnniversary::DefinitionName)
-    {
-        mExcludeList.removeOne(QContactAnniversary::DefinitionName);
-        contact()->removeDetail(&detail);
-    }
-    else if (detail.definitionName() == QContactAvatar::DefinitionName)
-    {
-        mExcludeList.removeOne(QContactAvatar::SubTypeAudioRingtone);
-        contact()->removeDetail(&detail);
-    }
-    else if (detail.definitionName() == QContactNote::DefinitionName)
-    {
-        contact()->removeDetail(&detail);
-        if (!contact()->details<QContactNote>().count())
-        {
-            mExcludeList.removeOne(QContactNote::DefinitionName);
-        }
-    }
-    else
-    {
-        contact()->removeDetail(&detail);
-    }
-
-    // if removed detail was the last of its type, create an empty one as a replacement (else decrease detail item index)
-    if (detail.definitionName() == QContactPhoneNumber::DefinitionName)
-    {
-        if (contact()->details<QContactPhoneNumber>().count())
-        {
-            mDetailItemIndex--;
-            mAddressItemIndex--;
-            mContainerLayout->removeItem(item);
-            item->deleteLater();
-        }
-        else
-        {
-            QContactPhoneNumber number;
-            item->setDetail(number);
-        }
-    }
-    else if (detail.definitionName() == QContactEmailAddress::DefinitionName)
-    {
-        if (contact()->details<QContactEmailAddress>().count())
-        {
-            mDetailItemIndex--;
-            mAddressItemIndex--;
-            mContainerLayout->removeItem(item);
-            item->deleteLater();
-        }
-        else
-        {
-            QContactEmailAddress email;
-            item->setDetail(email);
-        }
-    }
-    else if (detail.definitionName() == QContactAddress::DefinitionName)
-    {
-        mContainerLayout->removeItem(item);
-        item->deleteLater();
-
-        if (!contact()->details<QContactAddress>().count())
-        {
-            QContactAddress address;
-            createItem(address, QString(), mAddressItemIndex);
-            mDetailItemIndex++;
-        }
-    }
-    else if (detail.definitionName() == QContactOnlineAccount::DefinitionName)
-    {
-        if (contact()->details<QContactOnlineAccount>().count())
-        {
-            mDetailItemIndex--;
-            mContainerLayout->removeItem(item);
-            item->deleteLater();
-        }
-        else
-        {
-            QContactOnlineAccount account;
-            item->setDetail(account);
-        }
-    }
-    else if (detail.definitionName() == QContactUrl::DefinitionName)
-    {
-        if (contact()->details<QContactUrl>().count())
-        {
-            mDetailItemIndex--;
-            mContainerLayout->removeItem(item);
-            item->deleteLater();
-        }
-        else
-        {
-            QContactUrl url;
-            item->setDetail(url);
-        }
-    }
-    else
-    {
-        mContainerLayout->removeItem(item);
-        item->deleteLater();
-    }
-
-    if (mContainerLayout->count() == mDetailItemIndex)
-    {
-        mContainerLayout->removeItem(mDetailItem);
-        mDetailItem->deleteLater();
-        mDetailItemIndex = -1;
-    }
-
-    actions()->baseAction("cnt:discardallchanges")->setEnabled(true);
-    actions()->baseAction("cnt:save")->setEnabled(true);
-}
-
-/*!
-Add actions also to toolbar
-*/
-void CntEditView::addActionsToToolBar()
-{
-    //Add Action to the toolbar
-    actions()->clearActionList();
-    actions()->actionList() << actions()->baseAction("cnt:addfield");
-    actions()->addActionsToToolBar(toolBar());
-    
-    connect(actions()->baseAction("cnt:addfield"), SIGNAL(triggered()),
-            this, SLOT(addField()));
-}
-
-/*!
-Add actions to options menu
-*/
-void CntEditView::addMenuItems()
-{
-    actions()->clearActionList();
-    actions()->actionList() << actions()->baseAction("cnt:save") << actions()->baseAction("cnt:discardallchanges") << 
-        actions()->baseAction("cnt:deletecontact");
-    actions()->addActionsToMenu(menu());
-    
-    connect(actions()->baseAction("cnt:discardallchanges"), SIGNAL(triggered()),
-            this, SLOT(discardAllChanges()));
-
-    connect(actions()->baseAction("cnt:deletecontact"), SIGNAL(triggered()),
-            this, SLOT(deleteContact()));
-    
-    connect(actions()->baseAction("cnt:save"), SIGNAL(triggered()),
-            this, SLOT(aboutToCloseView()));
+    Q_D( const CntEditView );
+    return d->mView;
 }
 
-/*!
-Cancel all changes made and return to names view
-*/
-void CntEditView::discardAllChanges()
-{
-    CntViewParameters viewParameters(CntViewParameters::namesView);
-    viewManager()->back(viewParameters);
-}
-
-/*!
-Launch delete query
-*/
-void CntEditView::deleteContact()
-{
-    commands()->deleteContact(*contact());
-}
-
-/*!
-Open the "Add field" popup and launch a specific detail editor view if needed
-*/
-void CntEditView::addField()
-{
-    QString detail = CntDetailPopup::selectDetail(mExcludeList);
-    
-    if (detail == QContactNote::DefinitionName)
-    {
-        CntViewParameters viewParameters(CntViewParameters::noteEditorView);
-        viewParameters.setSelectedContact(*contact());
-        viewManager()->changeView(viewParameters);
-    }
-    else if (detail == QContactAvatar::SubTypeAudioRingtone)
-    {
-        // launch ringtone selection service
-    }
-    else if (detail == QContactAnniversary::DefinitionName)
-    {
-        CntViewParameters viewParameters(CntViewParameters::dateEditorView);
-        viewParameters.setSelectedContact(*contact());
-        viewManager()->changeView(viewParameters);
-    }
-    else if (detail == QContactOrganization::DefinitionName)
-    {
-        CntViewParameters viewParameters(CntViewParameters::companyEditorView);
-        viewParameters.setSelectedContact(*contact());
-        viewParameters.setSelectedAction("company");
-        viewManager()->changeView(viewParameters);
-    }
-    else if (detail == QContactFamily::FieldSpouse)
-    {
-        CntViewParameters viewParameters(CntViewParameters::familyDetailEditorView);
-        viewParameters.setSelectedContact(*contact());
-        viewParameters.setSelectedAction("spouse");
-        viewManager()->changeView(viewParameters);
-    }
-    else if (detail == "some-synch-id") // TODO: change to real synch id when backend done
-    {
-        // Synchronization detail editor view to be done (lacks engine support)
-    }
-}
-
-/*!
-Opens the name detail editor view
-*/
-void CntEditView::openNameEditor()
-{
-    CntViewParameters viewParameters(CntViewParameters::namesEditorView);
-    viewParameters.setSelectedContact(*contact());
-    viewManager()->changeView(viewParameters);
-}
-
-/*!
-Opens the image detail editor view
-*/
-void CntEditView::openImageEditor()
-{
-    CntViewParameters viewParameters(CntViewParameters::imageEditorView);
-    viewParameters.setSelectedContact(*contact());
-    viewManager()->changeView(viewParameters);
-}
-
-/*
-Handle signals emitted from CntCommands, only used for delete command for now.
-*/
-int CntEditView::handleExecutedCommand(QString aCommand, const QContact &aContact)
+int CntEditView::viewId() const
 {
-    Q_UNUSED(aContact);
-    int result=-1;
-    if (aCommand == "delete")
-    {
-        CntViewParameters viewParameters(CntViewParameters::namesView);
-        viewParameters.setSelectedContact(*contact());
-        viewParameters.setSelectedAction("delete");
-        viewManager()->changeView(viewParameters);
-        result=0;
-    }
-    return result;
-}
-
-/*!
-Set correct next view id and possible action string (used for "Add detail" longtap menu command
-and when opening postal address editor view)
-*/
-CntViewParameters CntEditView::prepareToEditContact(const QString &aViewType, const QString &aAction)
-{
-    CntViewParameters viewParameters(CntViewParameters::noView);
-    
-    // open name editor
-    if (aViewType == QContactName::DefinitionName)
-    {
-        viewParameters.setNextViewId(CntViewParameters::namesEditorView);
-    }
-    // open number editor
-    else if (aViewType == QContactPhoneNumber::DefinitionName)
-    {
-        viewParameters.setNextViewId(CntViewParameters::phoneNumberEditorView);
-    }
-    // open email editor
-    else if (aViewType == QContactEmailAddress::DefinitionName)
-    {
-        viewParameters.setNextViewId(CntViewParameters::emailEditorView);
-    }
-    // open address editor
-    else if (aViewType == QContactAddress::DefinitionName)
-    {
-        viewParameters.setNextViewId(CntViewParameters::addressEditorView);
-    }
-    // open online account editor
-    else if (aViewType == QContactOnlineAccount::DefinitionName)
-    {
-        viewParameters.setNextViewId(CntViewParameters::phoneNumberEditorView);
-    }
-    // open URL editor
-    else if (aViewType == QContactUrl::DefinitionName)
-    {
-        viewParameters.setNextViewId(CntViewParameters::urlEditorView);
-    }
-    // open note editor
-    else if (aViewType == QContactNote::DefinitionName)
-    {
-        viewParameters.setNextViewId(CntViewParameters::noteEditorView);
-    }
-    // open family detail editor
-    else if (aViewType == QContactFamily::DefinitionName)
-    {
-        viewParameters.setNextViewId(CntViewParameters::familyDetailEditorView);
-    }
-    // open company detail editor
-    else if (aViewType == QContactOrganization::DefinitionName)
-    {
-        viewParameters.setNextViewId(CntViewParameters::companyEditorView);
-    }
-    // open date detail editor
-    else if (aViewType == QContactBirthday::DefinitionName)
-    {
-        viewParameters.setNextViewId(CntViewParameters::dateEditorView);
-    }
-    // open date detail editor
-    else if (aViewType == QContactAnniversary::DefinitionName)
-    {
-        viewParameters.setNextViewId(CntViewParameters::dateEditorView);
-    }
-    else 
-    {
-        viewParameters.setNextViewId(CntViewParameters::noView);
-    }
-    
-    viewParameters.setSelectedAction(aAction);
-    
-    return viewParameters;
-}
-
-void CntEditView::createItem(const QContactDetail &detail, const QString &type, int position)
-{
-    CntEditViewDetailItem *item = new CntEditViewDetailItem(mContainerWidget);
-    item->setDetail(detail, type);
-    mContainerLayout->insertItem(position, item);
-    connect(item, SIGNAL(longPressed(const QPointF&)), this, SLOT(onLongPressed(const QPointF&)));
-    connect(item, SIGNAL(clicked()), this, SLOT(onItemActivated()));
-}
-
-QContact *CntEditView::contact()
-{
-    return mContact;
-}
-
-void CntEditView::setContact(QContact* aContact)
-{
-    if (contact())
-    {
-        delete mContact;
-    }
-    mContact=aContact;
-}
-
+    return editView;
+} 
 // EOF