phonebookui/phonebookservices/src/cntserviceviewmanager.cpp
changeset 25 76a2435edfd4
parent 24 0ba2181d7c28
child 27 de1630741fbe
--- a/phonebookui/phonebookservices/src/cntserviceviewmanager.cpp	Fri Mar 19 09:27:18 2010 +0200
+++ b/phonebookui/phonebookservices/src/cntserviceviewmanager.cpp	Fri Apr 16 14:53:18 2010 +0300
@@ -31,7 +31,7 @@
 Constructor
 */
 CntServiceViewManager::CntServiceViewManager(CntMainWindow *mainWindow, CntViewParameters::ViewId defaultView, CntServiceHandler *aHandler):
-    CntViewManager(mainWindow, defaultView),
+    CntDefaultViewManager(mainWindow, defaultView),
     mServiceHandler(aHandler)
 {
     connect(mServiceHandler, SIGNAL(launchFetch(const QString&, const QString&, const QString&)), 
@@ -56,16 +56,13 @@
 */
 void CntServiceViewManager::launchFetch(const QString &title, const QString &action, const QString &filter)
 {
-    CntBaseView *view = getView(CntViewParameters::serviceContactFetchView);
-    if (view)
-    {
-        //add view to main window
-        addViewToWindow(view);
-        view->setTitle(title);
-        static_cast<CntServiceContactFetchView*>(view)->setActionFilter(action, filter);
-        CntViewParameters viewParameters(CntViewParameters::noView);
-        view->activateView(viewParameters);
-    }
+    CntViewParameters params(CntViewParameters::serviceContactFetchView);
+    QMap<int,QVariant> map;
+    map.insert(CntViewParameters::Action, QVariant(action));
+    map.insert(CntViewParameters::Filter, QVariant(filter));
+    map.insert(CntViewParameters::Title, QVariant(title));
+    params.setParameters(map);
+    changeView(params);
 }
 
 /*!
@@ -73,15 +70,9 @@
 */
 void CntServiceViewManager::launchEditor(QContact contact)
 {
-    CntBaseView *view = getView(CntViewParameters::serviceEditView);
-    if (view)
-    {
-        //add view to main window
-        addViewToWindow(view);
-        CntViewParameters viewParameters(CntViewParameters::noView);
-        viewParameters.setSelectedContact(contact);   
-        view->activateView(viewParameters);
-    }
+    CntViewParameters params(CntViewParameters::serviceEditView);
+    params.setSelectedContact(contact);
+    changeView(params);
 }
 
 /*!
@@ -89,15 +80,9 @@
 */
 void CntServiceViewManager::launchContactSelection(QContactDetail detail)
 {
-    CntBaseView *view = getView(CntViewParameters::serviceContactSelectionView);
-    if (view)
-    {
-        //add view to main window
-        addViewToWindow(view);
-        CntViewParameters viewParameters(CntViewParameters::noView);
-        viewParameters.setSelectedDetail(detail);   
-        view->activateView(viewParameters);
-    }
+    CntViewParameters params(CntViewParameters::serviceContactSelectionView);
+    params.setSelectedDetail(detail);
+    changeView(params);
 }
 
 /*!
@@ -105,15 +90,9 @@
 */
 void CntServiceViewManager::launchContactCard(QContact contact)
 {
-    CntBaseView *view = getView(CntViewParameters::serviceContactCardView);
-    if (view)
-    {
-        //add view to main window
-        addViewToWindow(view);
-        CntViewParameters viewParameters(CntViewParameters::noView);
-        viewParameters.setSelectedContact(contact);   
-        view->activateView(viewParameters);
-    }
+    CntViewParameters params(CntViewParameters::serviceContactCardView);
+    params.setSelectedContact(contact);
+    changeView(params);
 }
 
 /*!
@@ -121,24 +100,20 @@
 */
 void CntServiceViewManager::launchAssignContactCard(QContact contact, QContactDetail detail)
 {
-    CntBaseView *view = getView(CntViewParameters::serviceAssignContactCardView);
-    if (view)
-    {
-        //add view to main window
-        addViewToWindow(view);
-        CntViewParameters viewParameters(CntViewParameters::noView);
-        viewParameters.setSelectedContact(contact);   
-        viewParameters.setSelectedDetail(detail);
-        view->activateView(viewParameters);
-    }
+    CntViewParameters params(CntViewParameters::serviceAssignContactCardView);
+    params.setSelectedContact(contact);   
+    params.setSelectedDetail(detail);
+    changeView(params);
 }
 
 /*!
 Create a view based on ID. \Return pointer to new object if success, 0 if not.
 */
-CntBaseView *CntServiceViewManager::getView(CntViewParameters::ViewId id)
+CntBaseView *CntServiceViewManager::getView(const CntViewParameters &aArgs)
 {
     CntBaseView* view(0);
+	
+	CntViewParameters::ViewId id = aArgs.nextViewId();
 
     switch (id)
     {
@@ -180,7 +155,7 @@
         }
     default:
         {
-        view = CntViewManager::getView(id);
+        view = CntDefaultViewManager::getView( aArgs );
         break;
         }
     }