phonebookui/phonebookservices/src/cntservicecontactselectionview.cpp
changeset 27 de1630741fbe
parent 25 76a2435edfd4
child 37 fd64c38c277d
--- a/phonebookui/phonebookservices/src/cntservicecontactselectionview.cpp	Fri Apr 16 14:53:18 2010 +0300
+++ b/phonebookui/phonebookservices/src/cntservicecontactselectionview.cpp	Mon May 03 12:24:20 2010 +0300
@@ -17,14 +17,19 @@
 
 #include "cntservicecontactselectionview.h"
 
+#include <QCoreApplication>
+#include <QModelIndex>
 #include "cntservicehandler.h"
+#include <hblistview.h>
+#include <mobcntmodel.h>
 
-CntServiceContactSelectionView::CntServiceContactSelectionView(CntServiceHandler *aServiceHandler, CntViewManager *aViewManager, 
-        QGraphicsItem *aParent, HbAbstractItemView::SelectionMode newMode):
-    CntBaseSelectionView(aViewManager, aParent, newMode),
-    mServiceHandler(aServiceHandler)
+CntServiceContactSelectionView::CntServiceContactSelectionView(CntServiceHandler *aServiceHandler):
+CntBaseSelectionView(),
+mServiceHandler(aServiceHandler)
 {
-
+    connect(mListView, SIGNAL(activated(const QModelIndex&)), this, SLOT(onListViewActivated(const QModelIndex&)));
+    connect( this, SIGNAL(viewClosed()), this, SLOT(aboutToCloseView()) );
+    connect( this, SIGNAL(viewOpened(const CntViewParameters)), this, SLOT(aboutToOpenView(const CntViewParameters)) );
 }
 
 CntServiceContactSelectionView::~CntServiceContactSelectionView()
@@ -34,11 +39,15 @@
 
 void CntServiceContactSelectionView::onListViewActivated(const QModelIndex &aIndex)
 {
-    CntViewParameters viewParameters(CntViewParameters::serviceEditView);
-    QContact contact = contactModel()->contact(aIndex);
+    QContact contact = mListModel->contact(aIndex);
     contact.saveDetail(&mDetail);
-    viewParameters.setSelectedContact(contact);   
-    viewManager()->changeView(viewParameters);
+    
+    CntViewParameters params;
+    params.insert(EViewId, serviceEditView);
+    QVariant var;
+    var.setValue(contact);
+    params.insert(ESelectedContact, var);
+    mMgr->changeView(params);
 }
 
 void CntServiceContactSelectionView::aboutToCloseView()
@@ -47,21 +56,19 @@
     mServiceHandler->completeEdit(0);
 }
 
-void CntServiceContactSelectionView::activateView(const CntViewParameters &viewParameters)
+void CntServiceContactSelectionView::aboutToOpenView(const CntViewParameters viewParameters)
 {
     QContactDetailFilter filter;
     filter.setDetailDefinitionName(QContactType::DefinitionName, QContactType::FieldType);
     QString typeContact = QContactType::TypeContact;
     filter.setValue(typeContact);
-    contactModel()->setFilterAndSortOrder(filter);
+    mListModel->setFilterAndSortOrder(filter);
     // hide my card if it's not set
-    if (contactManager()->selfContactId() == 0)
+    if (mListModel->myCardId() == 0)
     {
-        contactModel()->showMyCard(false);
+        mListModel->showMyCard(false);
     }
-    mDetail = viewParameters.selectedDetail();
-    
-    CntBaseSelectionView::activateView(viewParameters);
+    mDetail = viewParameters.value(ESelectedDetail).value<QContactDetail>();
 }
 
 // EOF