--- a/phonebookui/phonebookservices/src/cntserviceviewmanager.cpp Fri Apr 16 14:53:18 2010 +0300
+++ b/phonebookui/phonebookservices/src/cntserviceviewmanager.cpp Mon May 03 12:24:20 2010 +0300
@@ -17,7 +17,6 @@
#include "cntserviceviewmanager.h"
-#include "cntbaseview.h"
#include "cntservicehandler.h"
#include "cntservicecontactfetchview.h"
@@ -26,16 +25,25 @@
#include "cntservicecontactcardview.h"
#include "cntservicesubeditview.h"
#include "cntserviceassigncontactcardview.h"
+#include "cntserviceviewfactory.h"
+#include <hbabstractitemview.h>
/*!
Constructor
*/
-CntServiceViewManager::CntServiceViewManager(CntMainWindow *mainWindow, CntViewParameters::ViewId defaultView, CntServiceHandler *aHandler):
- CntDefaultViewManager(mainWindow, defaultView),
+CntServiceViewManager::CntServiceViewManager(HbMainWindow *mainWindow, CntServiceHandler *aHandler):
+ CntDefaultViewManager(mainWindow),
mServiceHandler(aHandler)
{
+
+ setViewFactory( new CntServiceViewFactory(mServiceHandler) );
connect(mServiceHandler, SIGNAL(launchFetch(const QString&, const QString&, const QString&)),
- this, SLOT(launchFetch(const QString&, const QString&, const QString&)));
+ this, SLOT(handleFetch(const QString&, const QString&, const QString&)));
+
+ // Handles signal with mode selected.
+ connect(mServiceHandler, SIGNAL(launchFetchVerified(const QString&, const QString&, const QString&, const QString&)),
+ this, SLOT(launchFetch(const QString&, const QString&, const QString&, const QString&)));
+
connect(mServiceHandler, SIGNAL(launchEditor(QContact)), this, SLOT(launchEditor(QContact)));
connect(mServiceHandler, SIGNAL(launchContactSelection(QContactDetail)), this, SLOT(launchContactSelection(QContactDetail)));
connect(mServiceHandler, SIGNAL(launchContactCard(QContact)), this, SLOT(launchContactCard(QContact)));
@@ -52,16 +60,30 @@
}
/*!
-Launch fetch service view
+Launch fetch service view.
*/
-void CntServiceViewManager::launchFetch(const QString &title, const QString &action, const QString &filter)
+void CntServiceViewManager::handleFetch(const QString &title, const QString &action, const QString &filter)
+{
+ launchFetch(title,action,filter);
+}
+
+/*!
+Launch fetch service view. Uses a mode to determine fetching type.
+*/
+void CntServiceViewManager::launchFetch(const QString &title, const QString &action, const QString &filter, const QString &mode)
{
- 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);
+ CntViewParameters params;
+ params.insert(EViewId, serviceContactFetchView);
+ params.insert(ESelectionMode, action);
+ params.insert(CntServiceHandler::EFilter, filter);
+ params.insert(CntServiceHandler::ETitle, title);
+
+ if (!mode.compare(KCntSingleSelectionMode, Qt::CaseSensitive)) {
+ params.insert(ESelectionMode, HbAbstractItemView::SingleSelection);
+ }
+ else {
+ params.insert(ESelectionMode, HbAbstractItemView::MultiSelection);
+ }
changeView(params);
}
@@ -70,8 +92,11 @@
*/
void CntServiceViewManager::launchEditor(QContact contact)
{
- CntViewParameters params(CntViewParameters::serviceEditView);
- params.setSelectedContact(contact);
+ CntViewParameters params;
+ params.insert(EViewId, serviceEditView);
+ QVariant var;
+ var.setValue(contact);
+ params.insert(ESelectedContact, var);
changeView(params);
}
@@ -80,8 +105,11 @@
*/
void CntServiceViewManager::launchContactSelection(QContactDetail detail)
{
- CntViewParameters params(CntViewParameters::serviceContactSelectionView);
- params.setSelectedDetail(detail);
+ CntViewParameters params;
+ params.insert(EViewId, serviceContactSelectionView);
+ QVariant var;
+ var.setValue(detail);
+ params.insert(ESelectedDetail, var);
changeView(params);
}
@@ -90,8 +118,11 @@
*/
void CntServiceViewManager::launchContactCard(QContact contact)
{
- CntViewParameters params(CntViewParameters::serviceContactCardView);
- params.setSelectedContact(contact);
+ CntViewParameters params;
+ params.insert(EViewId, serviceContactCardView);
+ QVariant var;
+ var.setValue(contact);
+ params.insert(ESelectedContact, var);
changeView(params);
}
@@ -100,67 +131,15 @@
*/
void CntServiceViewManager::launchAssignContactCard(QContact contact, QContactDetail detail)
{
- CntViewParameters params(CntViewParameters::serviceAssignContactCardView);
- params.setSelectedContact(contact);
- params.setSelectedDetail(detail);
+ CntViewParameters params;
+ params.insert(EViewId, serviceAssignContactCardView);
+ QVariant var;
+ var.setValue(contact);
+ params.insert(ESelectedContact, var);
+ QVariant varDetail;
+ varDetail.setValue(detail);
+ params.insert(ESelectedDetail, varDetail);
changeView(params);
}
-/*!
-Create a view based on ID. \Return pointer to new object if success, 0 if not.
-*/
-CntBaseView *CntServiceViewManager::getView(const CntViewParameters &aArgs)
-{
- CntBaseView* view(0);
-
- CntViewParameters::ViewId id = aArgs.nextViewId();
-
- switch (id)
- {
- // contact fetch service view (fetching contacts from for example messaging)
- case CntViewParameters::serviceContactFetchView:
- {
- view = new CntServiceContactFetchView(mServiceHandler, this);
- break;
- }
- // contact selection service view (selecting contact to edit when updating existing contact)
- case CntViewParameters::serviceContactSelectionView:
- {
- view = new CntServiceContactSelectionView(mServiceHandler, this);
- break;
- }
- // communication launcher service view
- case CntViewParameters::serviceContactCardView:
- {
- view = new CntServiceContactCardView(mServiceHandler, this);
- break;
- }
- // communication launcher service view
- case CntViewParameters::serviceAssignContactCardView:
- {
- view = new CntServiceAssignContactCardView(mServiceHandler, this);
- break;
- }
- // contact edit service view (editing a contact from outside phonebook app)
- case CntViewParameters::serviceEditView:
- {
- view = new CntServiceEditView(mServiceHandler, this);
- break;
- }
- // edit view when editor opened from comm laucher service view
- case CntViewParameters::serviceSubEditView:
- {
- view = new CntServiceSubEditView(mServiceHandler, this);
- break;
- }
- default:
- {
- view = CntDefaultViewManager::getView( aArgs );
- break;
- }
- }
-
- return view;
-}
-
// end of file