201031
authorhgs
Thu, 05 Aug 2010 14:31:09 +0300
changeset 54 47627ab5d7a4
parent 53 e6aff7b69165
child 56 d508aa856878
201031
contacts_plat/contacts_ui_api/inc/cntviewparams.h
phonebookui/bwins/pbkcommonuiu.def
phonebookui/eabi/pbkcommonuiu.def
phonebookui/pbkcommonui/inc/cntbaseselectionview.h
phonebookui/pbkcommonui/inc/cntcontactcardview_p.h
phonebookui/pbkcommonui/inc/cntdetailconst.h
phonebookui/pbkcommonui/inc/cntgroupactionsview.h
phonebookui/pbkcommonui/inc/cntgroupdeletepopup.h
phonebookui/pbkcommonui/inc/cntgroupmemberview.h
phonebookui/pbkcommonui/inc/cntgroupmemberview_p.h
phonebookui/pbkcommonui/inc/cntimportsview.h
phonebookui/pbkcommonui/inc/cntkeygrabber.h
phonebookui/pbkcommonui/inc/cntmainwindow.h
phonebookui/pbkcommonui/inc/cntmycardselectionview.h
phonebookui/pbkcommonui/inc/cntvcarddetailhandler.h
phonebookui/pbkcommonui/pbkcommonui.pro
phonebookui/pbkcommonui/resources/contacts_actions.docml
phonebookui/pbkcommonui/resources/pbkcommonui.qrc
phonebookui/pbkcommonui/src/cntbaseselectionview.cpp
phonebookui/pbkcommonui/src/cntcollectionview.cpp
phonebookui/pbkcommonui/src/cntcontactcardview_p.cpp
phonebookui/pbkcommonui/src/cntdefaultviewfactory.cpp
phonebookui/pbkcommonui/src/cntdefaultviewmanager.cpp
phonebookui/pbkcommonui/src/cntfetchcontactpopup.cpp
phonebookui/pbkcommonui/src/cntfetchmarkall.cpp
phonebookui/pbkcommonui/src/cntgroupactionsview.cpp
phonebookui/pbkcommonui/src/cntgroupdeletepopup.cpp
phonebookui/pbkcommonui/src/cntgroupeditormodel.cpp
phonebookui/pbkcommonui/src/cntgroupmemberview.cpp
phonebookui/pbkcommonui/src/cntgroupmemberview_p.cpp
phonebookui/pbkcommonui/src/cntimageeditorview.cpp
phonebookui/pbkcommonui/src/cntimportsview.cpp
phonebookui/pbkcommonui/src/cntkeygrabber.cpp
phonebookui/pbkcommonui/src/cntmainwindow.cpp
phonebookui/pbkcommonui/src/cntmycardselectionview.cpp
phonebookui/pbkcommonui/src/cntnamesview_p.cpp
phonebookui/phonebookapp/phonebookapp.pro
phonebookui/phonebookapp/src/main.cpp
phonebookui/phonebookservices/inc/cntservicecontactfetchview.h
phonebookui/phonebookservices/inc/cntservicegroupmemberview.h
phonebookui/phonebookservices/inc/cntserviceproviderviewing.h
phonebookui/phonebookservices/inc/cntservices.h
phonebookui/phonebookservices/phonebookservices.pro
phonebookui/phonebookservices/src/cntservicecontactcardview.cpp
phonebookui/phonebookservices/src/cntservicecontactfetchview.cpp
phonebookui/phonebookservices/src/cntservicecontactselectionview.cpp
phonebookui/phonebookservices/src/cntservicegroupmemberview.cpp
phonebookui/phonebookservices/src/cntserviceproviderviewing.cpp
phonebookui/phonebookservices/src/cntservices.cpp
phonebookui/phonebookservices/src/cntserviceviewfactory.cpp
phonebookui/phonebookservices/src/main.cpp
phonebookui/phonebookservices/tsrc/qtpbkservicestestapp/main.cpp
phonebookui/phonebookservices/tsrc/qtpbkservicestestapp/testpbkservices.cpp
phonebookui/phonebookservices/tsrc/qtpbkservicestestapp/testpbkservices.h
--- a/contacts_plat/contacts_ui_api/inc/cntviewparams.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/contacts_plat/contacts_ui_api/inc/cntviewparams.h	Thu Aug 05 14:31:09 2010 +0300
@@ -77,6 +77,7 @@
     importsView,
     settingsView,
     ringToneFetcherView,
+    serviceGroupMemberView,
     customPhonebookView = 100, // reserved for internal view plugins, DO NOT USE THESE
     customView = 200 // for all other view plugins
 };
--- a/phonebookui/bwins/pbkcommonuiu.def	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/bwins/pbkcommonuiu.def	Thu Aug 05 14:31:09 2010 +0300
@@ -2,142 +2,172 @@
 	?trUtf8@CntDefaultViewManager@@SA?AVQString@@PBD0@Z @ 1 NONAME ; class QString CntDefaultViewManager::trUtf8(char const *, char const *)
 	?setViewNavigator@CntDefaultViewManager@@QAEXPAVCntViewNavigator@@@Z @ 2 NONAME ; void CntDefaultViewManager::setViewNavigator(class CntViewNavigator *)
 	?tr@CntActionPopup@@SA?AVQString@@PBD0@Z @ 3 NONAME ; class QString CntActionPopup::tr(char const *, char const *)
-	?cleanup@CntDefaultViewManager@@AAEXXZ @ 4 NONAME ; void CntDefaultViewManager::cleanup(void)
-	??0CntDefaultViewFactory@@QAE@XZ @ 5 NONAME ; CntDefaultViewFactory::CntDefaultViewFactory(void)
-	??1CntMainWindow@@UAE@XZ @ 6 NONAME ; CntMainWindow::~CntMainWindow(void)
-	?viewActivated@CntContactCardView@@IAEXPAVCntAbstractViewManager@@V?$QMap@HVQVariant@@@@@Z @ 7 NONAME ; void CntContactCardView::viewActivated(class CntAbstractViewManager *, class QMap<int, class QVariant>)
-	?view@CntEditView@@UBEPAVHbView@@XZ @ 8 NONAME ; class HbView * CntEditView::view(void) const
-	?qt_metacall@CntBaseSelectionView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 9 NONAME ; int CntBaseSelectionView::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?closeView@CntBaseSelectionView@@AAEXXZ @ 10 NONAME ; void CntBaseSelectionView::closeView(void)
+	?currentViewId@CntDefaultViewManager@@QAEHXZ @ 4 NONAME ; int CntDefaultViewManager::currentViewId(void)
+	?cleanup@CntDefaultViewManager@@AAEXXZ @ 5 NONAME ; void CntDefaultViewManager::cleanup(void)
+	??0CntDefaultViewFactory@@QAE@XZ @ 6 NONAME ; CntDefaultViewFactory::CntDefaultViewFactory(void)
+	??1CntMainWindow@@UAE@XZ @ 7 NONAME ; CntMainWindow::~CntMainWindow(void)
+	?viewActivated@CntContactCardView@@IAEXPAVCntAbstractViewManager@@V?$QMap@HVQVariant@@@@@Z @ 8 NONAME ; void CntContactCardView::viewActivated(class CntAbstractViewManager *, class QMap<int, class QVariant>)
+	?view@CntEditView@@UBEPAVHbView@@XZ @ 9 NONAME ; class HbView * CntEditView::view(void) const
+	?qt_metacall@CntBaseSelectionView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10 NONAME ; int CntBaseSelectionView::qt_metacall(enum QMetaObject::Call, int, void * *)
 	?tr@CntMainWindow@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString CntMainWindow::tr(char const *, char const *)
 	?staticMetaObject@CntBaseSelectionView@@2UQMetaObject@@B @ 12 NONAME ; struct QMetaObject const CntBaseSelectionView::staticMetaObject
 	?d_func@CntEditView@@AAEPAVCntEditViewPrivate@@XZ @ 13 NONAME ; class CntEditViewPrivate * CntEditView::d_func(void)
 	?changesDiscarded@CntEditView@@IAEXXZ @ 14 NONAME ; void CntEditView::changesDiscarded(void)
-	?keyPressEvent@CntMainWindow@@UAEXPAVQKeyEvent@@@Z @ 15 NONAME ; void CntMainWindow::keyPressEvent(class QKeyEvent *)
-	??_ECntDefaultViewManager@@UAE@I@Z @ 16 NONAME ; CntDefaultViewManager::~CntDefaultViewManager(unsigned int)
-	??_ECntBaseSelectionView@@UAE@I@Z @ 17 NONAME ; CntBaseSelectionView::~CntBaseSelectionView(unsigned int)
-	?view@CntBaseSelectionView@@UBEPAVHbView@@XZ @ 18 NONAME ; class HbView * CntBaseSelectionView::view(void) const
-	??1CntDefaultViewFactory@@UAE@XZ @ 19 NONAME ; CntDefaultViewFactory::~CntDefaultViewFactory(void)
-	??_ECntDefaultViewFactory@@UAE@I@Z @ 20 NONAME ; CntDefaultViewFactory::~CntDefaultViewFactory(unsigned int)
-	?trUtf8@CntDefaultViewManager@@SA?AVQString@@PBD0H@Z @ 21 NONAME ; class QString CntDefaultViewManager::trUtf8(char const *, char const *, int)
-	?qt_metacast@CntActionPopup@@UAEPAXPBD@Z @ 22 NONAME ; void * CntActionPopup::qt_metacast(char const *)
-	?deleteOldView@CntDefaultViewManager@@AAEXXZ @ 23 NONAME ; void CntDefaultViewManager::deleteOldView(void)
-	?trUtf8@CntMainWindow@@SA?AVQString@@PBD0H@Z @ 24 NONAME ; class QString CntMainWindow::trUtf8(char const *, char const *, int)
-	?trUtf8@CntEditView@@SA?AVQString@@PBD0H@Z @ 25 NONAME ; class QString CntEditView::trUtf8(char const *, char const *, int)
-	??1CntEditView@@UAE@XZ @ 26 NONAME ; CntEditView::~CntEditView(void)
-	?qt_metacast@CntBaseSelectionView@@UAEPAXPBD@Z @ 27 NONAME ; void * CntBaseSelectionView::qt_metacast(char const *)
-	?metaObject@CntBaseSelectionView@@UBEPBUQMetaObject@@XZ @ 28 NONAME ; struct QMetaObject const * CntBaseSelectionView::metaObject(void) const
-	?back@CntDefaultViewManager@@UAEXV?$QMap@HVQVariant@@@@_N@Z @ 29 NONAME ; void CntDefaultViewManager::back(class QMap<int, class QVariant>, bool)
+	??_ECntDefaultViewManager@@UAE@I@Z @ 15 NONAME ; CntDefaultViewManager::~CntDefaultViewManager(unsigned int)
+	??_ECntBaseSelectionView@@UAE@I@Z @ 16 NONAME ; CntBaseSelectionView::~CntBaseSelectionView(unsigned int)
+	?view@CntBaseSelectionView@@UBEPAVHbView@@XZ @ 17 NONAME ; class HbView * CntBaseSelectionView::view(void) const
+	??1CntDefaultViewFactory@@UAE@XZ @ 18 NONAME ; CntDefaultViewFactory::~CntDefaultViewFactory(void)
+	??_ECntDefaultViewFactory@@UAE@I@Z @ 19 NONAME ; CntDefaultViewFactory::~CntDefaultViewFactory(unsigned int)
+	?trUtf8@CntDefaultViewManager@@SA?AVQString@@PBD0H@Z @ 20 NONAME ; class QString CntDefaultViewManager::trUtf8(char const *, char const *, int)
+	?qt_metacast@CntActionPopup@@UAEPAXPBD@Z @ 21 NONAME ; void * CntActionPopup::qt_metacast(char const *)
+	?deleteOldView@CntDefaultViewManager@@AAEXXZ @ 22 NONAME ; void CntDefaultViewManager::deleteOldView(void)
+	?trUtf8@CntMainWindow@@SA?AVQString@@PBD0H@Z @ 23 NONAME ; class QString CntMainWindow::trUtf8(char const *, char const *, int)
+	?trUtf8@CntEditView@@SA?AVQString@@PBD0H@Z @ 24 NONAME ; class QString CntEditView::trUtf8(char const *, char const *, int)
+	??1CntEditView@@UAE@XZ @ 25 NONAME ; CntEditView::~CntEditView(void)
+	?qt_metacast@CntBaseSelectionView@@UAEPAXPBD@Z @ 26 NONAME ; void * CntBaseSelectionView::qt_metacast(char const *)
+	?metaObject@CntBaseSelectionView@@UBEPBUQMetaObject@@XZ @ 27 NONAME ; struct QMetaObject const * CntBaseSelectionView::metaObject(void) const
+	?back@CntDefaultViewManager@@UAEXV?$QMap@HVQVariant@@@@_N@Z @ 28 NONAME ; void CntDefaultViewManager::back(class QMap<int, class QVariant>, bool)
+	??0CntKeyGrabber@@QAE@PAVHbMainWindow@@PAVQObject@@@Z @ 29 NONAME ; CntKeyGrabber::CntKeyGrabber(class HbMainWindow *, class QObject *)
 	?backPressed@CntContactCardView@@IAEXXZ @ 30 NONAME ; void CntContactCardView::backPressed(void)
 	?qt_metacall@CntViewNavigator@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 31 NONAME ; int CntViewNavigator::qt_metacall(enum QMetaObject::Call, int, void * *)
 	?activate@CntBaseSelectionView@@UAEXPAVCntAbstractViewManager@@V?$QMap@HVQVariant@@@@@Z @ 32 NONAME ; void CntBaseSelectionView::activate(class CntAbstractViewManager *, class QMap<int, class QVariant>)
-	?tr@CntDefaultViewManager@@SA?AVQString@@PBD0H@Z @ 33 NONAME ; class QString CntDefaultViewManager::tr(char const *, char const *, int)
-	?viewId@CntEditView@@UBEHXZ @ 34 NONAME ; int CntEditView::viewId(void) const
-	?qt_metacast@CntContactCardView@@UAEPAXPBD@Z @ 35 NONAME ; void * CntContactCardView::qt_metacast(char const *)
-	?activate@CntEditView@@UAEXPAVCntAbstractViewManager@@V?$QMap@HVQVariant@@@@@Z @ 36 NONAME ; void CntEditView::activate(class CntAbstractViewManager *, class QMap<int, class QVariant>)
-	?viewClosed@CntBaseSelectionView@@IAEXXZ @ 37 NONAME ; void CntBaseSelectionView::viewClosed(void)
-	?showActionPopup@CntActionPopup@@QAE_NVQString@@@Z @ 38 NONAME ; bool CntActionPopup::showActionPopup(class QString)
-	?trUtf8@CntActionPopup@@SA?AVQString@@PBD0@Z @ 39 NONAME ; class QString CntActionPopup::trUtf8(char const *, char const *)
-	?keyPressed@CntMainWindow@@IAEXPAVQKeyEvent@@@Z @ 40 NONAME ; void CntMainWindow::keyPressed(class QKeyEvent *)
-	?tr@CntBaseSelectionView@@SA?AVQString@@PBD0H@Z @ 41 NONAME ; class QString CntBaseSelectionView::tr(char const *, char const *, int)
-	?metaObject@CntContactCardView@@UBEPBUQMetaObject@@XZ @ 42 NONAME ; struct QMetaObject const * CntContactCardView::metaObject(void) const
-	??0CntViewNavigator@@QAE@PAVQObject@@@Z @ 43 NONAME ; CntViewNavigator::CntViewNavigator(class QObject *)
-	?d_func@CntContactCardView@@ABEPBVCntContactCardViewPrivate@@XZ @ 44 NONAME ; class CntContactCardViewPrivate const * CntContactCardView::d_func(void) const
-	?trUtf8@CntBaseSelectionView@@SA?AVQString@@PBD0H@Z @ 45 NONAME ; class QString CntBaseSelectionView::trUtf8(char const *, char const *, int)
-	?getStaticMetaObject@CntBaseSelectionView@@SAABUQMetaObject@@XZ @ 46 NONAME ; struct QMetaObject const & CntBaseSelectionView::getStaticMetaObject(void)
-	??0CntDefaultViewManager@@QAE@PAVHbMainWindow@@@Z @ 47 NONAME ; CntDefaultViewManager::CntDefaultViewManager(class HbMainWindow *)
-	?actionPopupCancelPressed@CntActionPopup@@IAEXXZ @ 48 NONAME ; void CntActionPopup::actionPopupCancelPressed(void)
-	?getStaticMetaObject@CntActionPopup@@SAABUQMetaObject@@XZ @ 49 NONAME ; struct QMetaObject const & CntActionPopup::getStaticMetaObject(void)
-	?next@CntViewNavigator@@QAEXABHAAV?$QFlags@W4ViewSwitchFlag@Hb@@@@@Z @ 50 NONAME ; void CntViewNavigator::next(int const &, class QFlags<enum Hb::ViewSwitchFlag> &)
-	?createView@CntDefaultViewFactory@@UAEPAVCntAbstractView@@H@Z @ 51 NONAME ; class CntAbstractView * CntDefaultViewFactory::createView(int)
-	?qt_metacast@CntEditView@@UAEPAXPBD@Z @ 52 NONAME ; void * CntEditView::qt_metacast(char const *)
-	??0CntContactCardView@@QAE@_N@Z @ 53 NONAME ; CntContactCardView::CntContactCardView(bool)
-	?contactRemoved@CntEditView@@IAEX_N@Z @ 54 NONAME ; void CntEditView::contactRemoved(bool)
-	?d_func@CntActionPopup@@ABEPBVCntActionPopupPrivate@@XZ @ 55 NONAME ; class CntActionPopupPrivate const * CntActionPopup::d_func(void) const
-	?trUtf8@CntContactCardView@@SA?AVQString@@PBD0@Z @ 56 NONAME ; class QString CntContactCardView::trUtf8(char const *, char const *)
-	?metaObject@CntActionPopup@@UBEPBUQMetaObject@@XZ @ 57 NONAME ; struct QMetaObject const * CntActionPopup::metaObject(void) const
-	?staticMetaObject@CntDefaultViewManager@@2UQMetaObject@@B @ 58 NONAME ; struct QMetaObject const CntDefaultViewManager::staticMetaObject
-	?removeException@CntViewNavigator@@QAEXABH@Z @ 59 NONAME ; void CntViewNavigator::removeException(int const &)
-	?trUtf8@CntViewNavigator@@SA?AVQString@@PBD0@Z @ 60 NONAME ; class QString CntViewNavigator::trUtf8(char const *, char const *)
-	?metaObject@CntMainWindow@@UBEPBUQMetaObject@@XZ @ 61 NONAME ; struct QMetaObject const * CntMainWindow::metaObject(void) const
-	??_ECntMainWindow@@UAE@I@Z @ 62 NONAME ; CntMainWindow::~CntMainWindow(unsigned int)
-	?metaObject@CntDefaultViewManager@@UBEPBUQMetaObject@@XZ @ 63 NONAME ; struct QMetaObject const * CntDefaultViewManager::metaObject(void) const
-	?changeView@CntDefaultViewManager@@UAEXV?$QMap@HVQVariant@@@@@Z @ 64 NONAME ; void CntDefaultViewManager::changeView(class QMap<int, class QVariant>)
-	??_ECntContactCardView@@UAE@I@Z @ 65 NONAME ; CntContactCardView::~CntContactCardView(unsigned int)
-	?staticMetaObject@CntViewNavigator@@2UQMetaObject@@B @ 66 NONAME ; struct QMetaObject const CntViewNavigator::staticMetaObject
-	?qt_metacall@CntContactCardView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 67 NONAME ; int CntContactCardView::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacall@CntMainWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 68 NONAME ; int CntMainWindow::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?trUtf8@CntMainWindow@@SA?AVQString@@PBD0@Z @ 69 NONAME ; class QString CntMainWindow::trUtf8(char const *, char const *)
-	?staticMetaObject@CntMainWindow@@2UQMetaObject@@B @ 70 NONAME ; struct QMetaObject const CntMainWindow::staticMetaObject
-	?isDefault@CntContactCardView@@UBE_NXZ @ 71 NONAME ; bool CntContactCardView::isDefault(void) const
-	??1CntContactCardView@@UAE@XZ @ 72 NONAME ; CntContactCardView::~CntContactCardView(void)
-	?qt_metacall@CntActionPopup@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 73 NONAME ; int CntActionPopup::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??0CntBaseSelectionView@@QAE@XZ @ 74 NONAME ; CntBaseSelectionView::CntBaseSelectionView(void)
-	??0CntMainWindow@@QAE@PAVQWidget@@H@Z @ 75 NONAME ; CntMainWindow::CntMainWindow(class QWidget *, int)
-	??1CntActionPopup@@UAE@XZ @ 76 NONAME ; CntActionPopup::~CntActionPopup(void)
-	?viewId@CntContactCardView@@UBEHXZ @ 77 NONAME ; int CntContactCardView::viewId(void) const
-	?removeEffect@CntViewNavigator@@QAEXABH@Z @ 78 NONAME ; void CntViewNavigator::removeEffect(int const &)
-	?getStaticMetaObject@CntContactCardView@@SAABUQMetaObject@@XZ @ 79 NONAME ; struct QMetaObject const & CntContactCardView::getStaticMetaObject(void)
-	?activate@CntContactCardView@@UAEXPAVCntAbstractViewManager@@V?$QMap@HVQVariant@@@@@Z @ 80 NONAME ; void CntContactCardView::activate(class CntAbstractViewManager *, class QMap<int, class QVariant>)
-	?staticMetaObject@CntActionPopup@@2UQMetaObject@@B @ 81 NONAME ; struct QMetaObject const CntActionPopup::staticMetaObject
-	?staticMetaObject@CntEditView@@2UQMetaObject@@B @ 82 NONAME ; struct QMetaObject const CntEditView::staticMetaObject
-	?viewOpened@CntBaseSelectionView@@IAEXPAVCntAbstractViewManager@@V?$QMap@HVQVariant@@@@@Z @ 83 NONAME ; void CntBaseSelectionView::viewOpened(class CntAbstractViewManager *, class QMap<int, class QVariant>)
-	?isDefault@CntEditView@@UBE_NXZ @ 84 NONAME ; bool CntEditView::isDefault(void) const
-	??_ECntViewNavigator@@UAE@I@Z @ 85 NONAME ; CntViewNavigator::~CntViewNavigator(unsigned int)
-	?trUtf8@CntContactCardView@@SA?AVQString@@PBD0H@Z @ 86 NONAME ; class QString CntContactCardView::trUtf8(char const *, char const *, int)
-	?addException@CntViewNavigator@@QAEXABH0@Z @ 87 NONAME ; void CntViewNavigator::addException(int const &, int const &)
-	?closeApp@CntDefaultViewManager@@MAEXXZ @ 88 NONAME ; void CntDefaultViewManager::closeApp(void)
-	?deactivate@CntBaseSelectionView@@UAEXXZ @ 89 NONAME ; void CntBaseSelectionView::deactivate(void)
-	?d_func@CntEditView@@ABEPBVCntEditViewPrivate@@XZ @ 90 NONAME ; class CntEditViewPrivate const * CntEditView::d_func(void) const
-	?setViewFactory@CntDefaultViewManager@@QAEXPAVCntAbstractViewFactory@@@Z @ 91 NONAME ; void CntDefaultViewManager::setViewFactory(class CntAbstractViewFactory *)
-	?getStaticMetaObject@CntViewNavigator@@SAABUQMetaObject@@XZ @ 92 NONAME ; struct QMetaObject const & CntViewNavigator::getStaticMetaObject(void)
-	?tr@CntViewNavigator@@SA?AVQString@@PBD0@Z @ 93 NONAME ; class QString CntViewNavigator::tr(char const *, char const *)
-	?trUtf8@CntActionPopup@@SA?AVQString@@PBD0H@Z @ 94 NONAME ; class QString CntActionPopup::trUtf8(char const *, char const *, int)
-	?tr@CntViewNavigator@@SA?AVQString@@PBD0H@Z @ 95 NONAME ; class QString CntViewNavigator::tr(char const *, char const *, int)
-	?tr@CntActionPopup@@SA?AVQString@@PBD0H@Z @ 96 NONAME ; class QString CntActionPopup::tr(char const *, char const *, int)
-	?qt_metacast@CntDefaultViewManager@@UAEPAXPBD@Z @ 97 NONAME ; void * CntDefaultViewManager::qt_metacast(char const *)
-	?qt_metacall@CntDefaultViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 98 NONAME ; int CntDefaultViewManager::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??0CntEditView@@QAE@XZ @ 99 NONAME ; CntEditView::CntEditView(void)
-	?qt_metacast@CntViewNavigator@@UAEPAXPBD@Z @ 100 NONAME ; void * CntViewNavigator::qt_metacast(char const *)
-	?view@CntContactCardView@@UBEPAVHbView@@XZ @ 101 NONAME ; class HbView * CntContactCardView::view(void) const
-	?addToContacts@CntContactCardView@@IAEXXZ @ 102 NONAME ; void CntContactCardView::addToContacts(void)
-	?tr@CntContactCardView@@SA?AVQString@@PBD0H@Z @ 103 NONAME ; class QString CntContactCardView::tr(char const *, char const *, int)
-	?addRoot@CntViewNavigator@@QAEXABH@Z @ 104 NONAME ; void CntViewNavigator::addRoot(int const &)
-	?tr@CntContactCardView@@SA?AVQString@@PBD0@Z @ 105 NONAME ; class QString CntContactCardView::tr(char const *, char const *)
-	?tr@CntEditView@@SA?AVQString@@PBD0@Z @ 106 NONAME ; class QString CntEditView::tr(char const *, char const *)
-	?d_func@CntContactCardView@@AAEPAVCntContactCardViewPrivate@@XZ @ 107 NONAME ; class CntContactCardViewPrivate * CntContactCardView::d_func(void)
-	?metaObject@CntViewNavigator@@UBEPBUQMetaObject@@XZ @ 108 NONAME ; struct QMetaObject const * CntViewNavigator::metaObject(void) const
-	?staticMetaObject@CntContactCardView@@2UQMetaObject@@B @ 109 NONAME ; struct QMetaObject const CntContactCardView::staticMetaObject
-	?tr@CntBaseSelectionView@@SA?AVQString@@PBD0@Z @ 110 NONAME ; class QString CntBaseSelectionView::tr(char const *, char const *)
-	?trUtf8@CntBaseSelectionView@@SA?AVQString@@PBD0@Z @ 111 NONAME ; class QString CntBaseSelectionView::trUtf8(char const *, char const *)
-	?switchView@CntDefaultViewManager@@AAEXV?$QMap@HVQVariant@@@@V?$QFlags@W4ViewSwitchFlag@Hb@@@@@Z @ 112 NONAME ; void CntDefaultViewManager::switchView(class QMap<int, class QVariant>, class QFlags<enum Hb::ViewSwitchFlag>)
-	?deactivate@CntEditView@@UAEXXZ @ 113 NONAME ; void CntEditView::deactivate(void)
-	?contactManager@CntDefaultViewManager@@UAEPAVQContactManager@QtMobility@@ABVQString@@@Z @ 114 NONAME ; class QtMobility::QContactManager * CntDefaultViewManager::contactManager(class QString const &)
-	?addEffect@CntViewNavigator@@QAEXABH0@Z @ 115 NONAME ; void CntViewNavigator::addEffect(int const &, int const &)
-	??_ECntActionPopup@@UAE@I@Z @ 116 NONAME ; CntActionPopup::~CntActionPopup(unsigned int)
-	?d_func@CntActionPopup@@AAEPAVCntActionPopupPrivate@@XZ @ 117 NONAME ; class CntActionPopupPrivate * CntActionPopup::d_func(void)
-	?metaObject@CntEditView@@UBEPBUQMetaObject@@XZ @ 118 NONAME ; struct QMetaObject const * CntEditView::metaObject(void) const
-	?contactUpdated@CntEditView@@IAEXH@Z @ 119 NONAME ; void CntEditView::contactUpdated(int)
-	??1CntDefaultViewManager@@UAE@XZ @ 120 NONAME ; CntDefaultViewManager::~CntDefaultViewManager(void)
-	?deactivate@CntContactCardView@@UAEXXZ @ 121 NONAME ; void CntContactCardView::deactivate(void)
-	?getStaticMetaObject@CntDefaultViewManager@@SAABUQMetaObject@@XZ @ 122 NONAME ; struct QMetaObject const & CntDefaultViewManager::getStaticMetaObject(void)
-	?trUtf8@CntViewNavigator@@SA?AVQString@@PBD0H@Z @ 123 NONAME ; class QString CntViewNavigator::trUtf8(char const *, char const *, int)
-	?qt_metacall@CntEditView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 124 NONAME ; int CntEditView::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?tr@CntEditView@@SA?AVQString@@PBD0H@Z @ 125 NONAME ; class QString CntEditView::tr(char const *, char const *, int)
-	?getStaticMetaObject@CntEditView@@SAABUQMetaObject@@XZ @ 126 NONAME ; struct QMetaObject const & CntEditView::getStaticMetaObject(void)
-	??1CntViewNavigator@@UAE@XZ @ 127 NONAME ; CntViewNavigator::~CntViewNavigator(void)
-	?qt_metacast@CntMainWindow@@UAEPAXPBD@Z @ 128 NONAME ; void * CntMainWindow::qt_metacast(char const *)
-	?trUtf8@CntEditView@@SA?AVQString@@PBD0@Z @ 129 NONAME ; class QString CntEditView::trUtf8(char const *, char const *)
-	?isDefault@CntBaseSelectionView@@UBE_NXZ @ 130 NONAME ; bool CntBaseSelectionView::isDefault(void) const
-	?back@CntViewNavigator@@QAEABHAAV?$QFlags@W4ViewSwitchFlag@Hb@@@@_N@Z @ 131 NONAME ; int const & CntViewNavigator::back(class QFlags<enum Hb::ViewSwitchFlag> &, bool)
-	??1CntBaseSelectionView@@UAE@XZ @ 132 NONAME ; CntBaseSelectionView::~CntBaseSelectionView(void)
-	?tr@CntMainWindow@@SA?AVQString@@PBD0H@Z @ 133 NONAME ; class QString CntMainWindow::tr(char const *, char const *, int)
-	?createPluginView@CntDefaultViewFactory@@AAEPAVCntAbstractView@@H@Z @ 134 NONAME ; class CntAbstractView * CntDefaultViewFactory::createPluginView(int)
-	??_ECntEditView@@UAE@I@Z @ 135 NONAME ; CntEditView::~CntEditView(unsigned int)
-	??0CntActionPopup@@QAE@PAVQContact@QtMobility@@@Z @ 136 NONAME ; CntActionPopup::CntActionPopup(class QtMobility::QContact *)
-	?executeContactAction@CntActionPopup@@IAEXAAVQContact@QtMobility@@VQContactDetail@3@VQString@@@Z @ 137 NONAME ; void CntActionPopup::executeContactAction(class QtMobility::QContact &, class QtMobility::QContactDetail, class QString)
-	?getStaticMetaObject@CntMainWindow@@SAABUQMetaObject@@XZ @ 138 NONAME ; struct QMetaObject const & CntMainWindow::getStaticMetaObject(void)
-	?tr@CntDefaultViewManager@@SA?AVQString@@PBD0@Z @ 139 NONAME ; class QString CntDefaultViewManager::tr(char const *, char const *)
-	?removeCurrentView@CntDefaultViewManager@@AAEXXZ @ 140 NONAME ; void CntDefaultViewManager::removeCurrentView(void)
-	?currentViewId@CntDefaultViewManager@@QAEHXZ @ 141 NONAME ; int CntDefaultViewManager::currentViewId(void)
+	?tr@CntKeyGrabber@@SA?AVQString@@PBD0H@Z @ 33 NONAME ; class QString CntKeyGrabber::tr(char const *, char const *, int)
+	?tr@CntDefaultViewManager@@SA?AVQString@@PBD0H@Z @ 34 NONAME ; class QString CntDefaultViewManager::tr(char const *, char const *, int)
+	?viewId@CntEditView@@UBEHXZ @ 35 NONAME ; int CntEditView::viewId(void) const
+	?qt_metacast@CntContactCardView@@UAEPAXPBD@Z @ 36 NONAME ; void * CntContactCardView::qt_metacast(char const *)
+	?activate@CntEditView@@UAEXPAVCntAbstractViewManager@@V?$QMap@HVQVariant@@@@@Z @ 37 NONAME ; void CntEditView::activate(class CntAbstractViewManager *, class QMap<int, class QVariant>)
+	?viewClosed@CntBaseSelectionView@@IAEXXZ @ 38 NONAME ; void CntBaseSelectionView::viewClosed(void)
+	??1CntKeyGrabber@@UAE@XZ @ 39 NONAME ; CntKeyGrabber::~CntKeyGrabber(void)
+	?showActionPopup@CntActionPopup@@QAE_NVQString@@@Z @ 40 NONAME ; bool CntActionPopup::showActionPopup(class QString)
+	?trUtf8@CntActionPopup@@SA?AVQString@@PBD0@Z @ 41 NONAME ; class QString CntActionPopup::trUtf8(char const *, char const *)
+	?tr@CntBaseSelectionView@@SA?AVQString@@PBD0H@Z @ 42 NONAME ; class QString CntBaseSelectionView::tr(char const *, char const *, int)
+	?metaObject@CntContactCardView@@UBEPBUQMetaObject@@XZ @ 43 NONAME ; struct QMetaObject const * CntContactCardView::metaObject(void) const
+	??0CntViewNavigator@@QAE@PAVQObject@@@Z @ 44 NONAME ; CntViewNavigator::CntViewNavigator(class QObject *)
+	?d_func@CntContactCardView@@ABEPBVCntContactCardViewPrivate@@XZ @ 45 NONAME ; class CntContactCardViewPrivate const * CntContactCardView::d_func(void) const
+	?trUtf8@CntBaseSelectionView@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString CntBaseSelectionView::trUtf8(char const *, char const *, int)
+	?getStaticMetaObject@CntBaseSelectionView@@SAABUQMetaObject@@XZ @ 47 NONAME ; struct QMetaObject const & CntBaseSelectionView::getStaticMetaObject(void)
+	??0CntDefaultViewManager@@QAE@PAVHbMainWindow@@@Z @ 48 NONAME ; CntDefaultViewManager::CntDefaultViewManager(class HbMainWindow *)
+	?actionPopupCancelPressed@CntActionPopup@@IAEXXZ @ 49 NONAME ; void CntActionPopup::actionPopupCancelPressed(void)
+	?getStaticMetaObject@CntActionPopup@@SAABUQMetaObject@@XZ @ 50 NONAME ; struct QMetaObject const & CntActionPopup::getStaticMetaObject(void)
+	?next@CntViewNavigator@@QAEXABHAAV?$QFlags@W4ViewSwitchFlag@Hb@@@@@Z @ 51 NONAME ; void CntViewNavigator::next(int const &, class QFlags<enum Hb::ViewSwitchFlag> &)
+	?createView@CntDefaultViewFactory@@UAEPAVCntAbstractView@@H@Z @ 52 NONAME ; class CntAbstractView * CntDefaultViewFactory::createView(int)
+	?qt_metacast@CntEditView@@UAEPAXPBD@Z @ 53 NONAME ; void * CntEditView::qt_metacast(char const *)
+	??0CntContactCardView@@QAE@_N@Z @ 54 NONAME ; CntContactCardView::CntContactCardView(bool)
+	?contactRemoved@CntEditView@@IAEX_N@Z @ 55 NONAME ; void CntEditView::contactRemoved(bool)
+	?d_func@CntActionPopup@@ABEPBVCntActionPopupPrivate@@XZ @ 56 NONAME ; class CntActionPopupPrivate const * CntActionPopup::d_func(void) const
+	?trUtf8@CntContactCardView@@SA?AVQString@@PBD0@Z @ 57 NONAME ; class QString CntContactCardView::trUtf8(char const *, char const *)
+	?metaObject@CntActionPopup@@UBEPBUQMetaObject@@XZ @ 58 NONAME ; struct QMetaObject const * CntActionPopup::metaObject(void) const
+	?staticMetaObject@CntDefaultViewManager@@2UQMetaObject@@B @ 59 NONAME ; struct QMetaObject const CntDefaultViewManager::staticMetaObject
+	?removeException@CntViewNavigator@@QAEXABH@Z @ 60 NONAME ; void CntViewNavigator::removeException(int const &)
+	?trUtf8@CntViewNavigator@@SA?AVQString@@PBD0@Z @ 61 NONAME ; class QString CntViewNavigator::trUtf8(char const *, char const *)
+	?getStaticMetaObject@CntKeyGrabber@@SAABUQMetaObject@@XZ @ 62 NONAME ; struct QMetaObject const & CntKeyGrabber::getStaticMetaObject(void)
+	?metaObject@CntMainWindow@@UBEPBUQMetaObject@@XZ @ 63 NONAME ; struct QMetaObject const * CntMainWindow::metaObject(void) const
+	??_ECntMainWindow@@UAE@I@Z @ 64 NONAME ; CntMainWindow::~CntMainWindow(unsigned int)
+	?metaObject@CntDefaultViewManager@@UBEPBUQMetaObject@@XZ @ 65 NONAME ; struct QMetaObject const * CntDefaultViewManager::metaObject(void) const
+	?changeView@CntDefaultViewManager@@UAEXV?$QMap@HVQVariant@@@@@Z @ 66 NONAME ; void CntDefaultViewManager::changeView(class QMap<int, class QVariant>)
+	??_ECntContactCardView@@UAE@I@Z @ 67 NONAME ; CntContactCardView::~CntContactCardView(unsigned int)
+	?staticMetaObject@CntViewNavigator@@2UQMetaObject@@B @ 68 NONAME ; struct QMetaObject const CntViewNavigator::staticMetaObject
+	?qt_metacall@CntContactCardView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 69 NONAME ; int CntContactCardView::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacall@CntMainWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 70 NONAME ; int CntMainWindow::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?trUtf8@CntMainWindow@@SA?AVQString@@PBD0@Z @ 71 NONAME ; class QString CntMainWindow::trUtf8(char const *, char const *)
+	?trUtf8@CntKeyGrabber@@SA?AVQString@@PBD0H@Z @ 72 NONAME ; class QString CntKeyGrabber::trUtf8(char const *, char const *, int)
+	?staticMetaObject@CntMainWindow@@2UQMetaObject@@B @ 73 NONAME ; struct QMetaObject const CntMainWindow::staticMetaObject
+	?isDefault@CntContactCardView@@UBE_NXZ @ 74 NONAME ; bool CntContactCardView::isDefault(void) const
+	??1CntContactCardView@@UAE@XZ @ 75 NONAME ; CntContactCardView::~CntContactCardView(void)
+	?qt_metacall@CntActionPopup@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 76 NONAME ; int CntActionPopup::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0CntBaseSelectionView@@QAE@XZ @ 77 NONAME ; CntBaseSelectionView::CntBaseSelectionView(void)
+	?tr@CntKeyGrabber@@SA?AVQString@@PBD0@Z @ 78 NONAME ; class QString CntKeyGrabber::tr(char const *, char const *)
+	??0CntMainWindow@@QAE@PAVQWidget@@H@Z @ 79 NONAME ; CntMainWindow::CntMainWindow(class QWidget *, int)
+	??1CntActionPopup@@UAE@XZ @ 80 NONAME ; CntActionPopup::~CntActionPopup(void)
+	?viewId@CntContactCardView@@UBEHXZ @ 81 NONAME ; int CntContactCardView::viewId(void) const
+	?removeEffect@CntViewNavigator@@QAEXABH@Z @ 82 NONAME ; void CntViewNavigator::removeEffect(int const &)
+	?getStaticMetaObject@CntContactCardView@@SAABUQMetaObject@@XZ @ 83 NONAME ; struct QMetaObject const & CntContactCardView::getStaticMetaObject(void)
+	?activate@CntContactCardView@@UAEXPAVCntAbstractViewManager@@V?$QMap@HVQVariant@@@@@Z @ 84 NONAME ; void CntContactCardView::activate(class CntAbstractViewManager *, class QMap<int, class QVariant>)
+	?staticMetaObject@CntActionPopup@@2UQMetaObject@@B @ 85 NONAME ; struct QMetaObject const CntActionPopup::staticMetaObject
+	?staticMetaObject@CntEditView@@2UQMetaObject@@B @ 86 NONAME ; struct QMetaObject const CntEditView::staticMetaObject
+	?staticMetaObject@CntKeyGrabber@@2UQMetaObject@@B @ 87 NONAME ; struct QMetaObject const CntKeyGrabber::staticMetaObject
+	?viewOpened@CntBaseSelectionView@@IAEXPAVCntAbstractViewManager@@V?$QMap@HVQVariant@@@@@Z @ 88 NONAME ; void CntBaseSelectionView::viewOpened(class CntAbstractViewManager *, class QMap<int, class QVariant>)
+	?isDefault@CntEditView@@UBE_NXZ @ 89 NONAME ; bool CntEditView::isDefault(void) const
+	?qt_metacall@CntKeyGrabber@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 90 NONAME ; int CntKeyGrabber::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??_ECntViewNavigator@@UAE@I@Z @ 91 NONAME ; CntViewNavigator::~CntViewNavigator(unsigned int)
+	?trUtf8@CntContactCardView@@SA?AVQString@@PBD0H@Z @ 92 NONAME ; class QString CntContactCardView::trUtf8(char const *, char const *, int)
+	?metaObject@CntKeyGrabber@@UBEPBUQMetaObject@@XZ @ 93 NONAME ; struct QMetaObject const * CntKeyGrabber::metaObject(void) const
+	?addException@CntViewNavigator@@QAEXABH0@Z @ 94 NONAME ; void CntViewNavigator::addException(int const &, int const &)
+	?closeApp@CntDefaultViewManager@@MAEXXZ @ 95 NONAME ; void CntDefaultViewManager::closeApp(void)
+	??_ECntKeyGrabber@@UAE@I@Z @ 96 NONAME ; CntKeyGrabber::~CntKeyGrabber(unsigned int)
+	?deactivate@CntBaseSelectionView@@UAEXXZ @ 97 NONAME ; void CntBaseSelectionView::deactivate(void)
+	?d_func@CntEditView@@ABEPBVCntEditViewPrivate@@XZ @ 98 NONAME ; class CntEditViewPrivate const * CntEditView::d_func(void) const
+	?setViewFactory@CntDefaultViewManager@@QAEXPAVCntAbstractViewFactory@@@Z @ 99 NONAME ; void CntDefaultViewManager::setViewFactory(class CntAbstractViewFactory *)
+	?getStaticMetaObject@CntViewNavigator@@SAABUQMetaObject@@XZ @ 100 NONAME ; struct QMetaObject const & CntViewNavigator::getStaticMetaObject(void)
+	?tr@CntViewNavigator@@SA?AVQString@@PBD0@Z @ 101 NONAME ; class QString CntViewNavigator::tr(char const *, char const *)
+	?trUtf8@CntActionPopup@@SA?AVQString@@PBD0H@Z @ 102 NONAME ; class QString CntActionPopup::trUtf8(char const *, char const *, int)
+	?tr@CntViewNavigator@@SA?AVQString@@PBD0H@Z @ 103 NONAME ; class QString CntViewNavigator::tr(char const *, char const *, int)
+	?tr@CntActionPopup@@SA?AVQString@@PBD0H@Z @ 104 NONAME ; class QString CntActionPopup::tr(char const *, char const *, int)
+	?qt_metacast@CntDefaultViewManager@@UAEPAXPBD@Z @ 105 NONAME ; void * CntDefaultViewManager::qt_metacast(char const *)
+	?qt_metacall@CntDefaultViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 106 NONAME ; int CntDefaultViewManager::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0CntEditView@@QAE@XZ @ 107 NONAME ; CntEditView::CntEditView(void)
+	?qt_metacast@CntViewNavigator@@UAEPAXPBD@Z @ 108 NONAME ; void * CntViewNavigator::qt_metacast(char const *)
+	?view@CntContactCardView@@UBEPAVHbView@@XZ @ 109 NONAME ; class HbView * CntContactCardView::view(void) const
+	?addToContacts@CntContactCardView@@IAEXXZ @ 110 NONAME ; void CntContactCardView::addToContacts(void)
+	?tr@CntContactCardView@@SA?AVQString@@PBD0H@Z @ 111 NONAME ; class QString CntContactCardView::tr(char const *, char const *, int)
+	?addRoot@CntViewNavigator@@QAEXABH@Z @ 112 NONAME ; void CntViewNavigator::addRoot(int const &)
+	?tr@CntContactCardView@@SA?AVQString@@PBD0@Z @ 113 NONAME ; class QString CntContactCardView::tr(char const *, char const *)
+	?tr@CntEditView@@SA?AVQString@@PBD0@Z @ 114 NONAME ; class QString CntEditView::tr(char const *, char const *)
+	?d_func@CntContactCardView@@AAEPAVCntContactCardViewPrivate@@XZ @ 115 NONAME ; class CntContactCardViewPrivate * CntContactCardView::d_func(void)
+	?metaObject@CntViewNavigator@@UBEPBUQMetaObject@@XZ @ 116 NONAME ; struct QMetaObject const * CntViewNavigator::metaObject(void) const
+	?staticMetaObject@CntContactCardView@@2UQMetaObject@@B @ 117 NONAME ; struct QMetaObject const CntContactCardView::staticMetaObject
+	?tr@CntBaseSelectionView@@SA?AVQString@@PBD0@Z @ 118 NONAME ; class QString CntBaseSelectionView::tr(char const *, char const *)
+	?trUtf8@CntBaseSelectionView@@SA?AVQString@@PBD0@Z @ 119 NONAME ; class QString CntBaseSelectionView::trUtf8(char const *, char const *)
+	?trUtf8@CntKeyGrabber@@SA?AVQString@@PBD0@Z @ 120 NONAME ; class QString CntKeyGrabber::trUtf8(char const *, char const *)
+	?switchView@CntDefaultViewManager@@AAEXV?$QMap@HVQVariant@@@@V?$QFlags@W4ViewSwitchFlag@Hb@@@@@Z @ 121 NONAME ; void CntDefaultViewManager::switchView(class QMap<int, class QVariant>, class QFlags<enum Hb::ViewSwitchFlag>)
+	?deactivate@CntEditView@@UAEXXZ @ 122 NONAME ; void CntEditView::deactivate(void)
+	?contactManager@CntDefaultViewManager@@UAEPAVQContactManager@QtMobility@@ABVQString@@@Z @ 123 NONAME ; class QtMobility::QContactManager * CntDefaultViewManager::contactManager(class QString const &)
+	?addEffect@CntViewNavigator@@QAEXABH0@Z @ 124 NONAME ; void CntViewNavigator::addEffect(int const &, int const &)
+	??_ECntActionPopup@@UAE@I@Z @ 125 NONAME ; CntActionPopup::~CntActionPopup(unsigned int)
+	?d_func@CntActionPopup@@AAEPAVCntActionPopupPrivate@@XZ @ 126 NONAME ; class CntActionPopupPrivate * CntActionPopup::d_func(void)
+	?metaObject@CntEditView@@UBEPBUQMetaObject@@XZ @ 127 NONAME ; struct QMetaObject const * CntEditView::metaObject(void) const
+	?contactUpdated@CntEditView@@IAEXH@Z @ 128 NONAME ; void CntEditView::contactUpdated(int)
+	??1CntDefaultViewManager@@UAE@XZ @ 129 NONAME ; CntDefaultViewManager::~CntDefaultViewManager(void)
+	?deactivate@CntContactCardView@@UAEXXZ @ 130 NONAME ; void CntContactCardView::deactivate(void)
+	?getStaticMetaObject@CntDefaultViewManager@@SAABUQMetaObject@@XZ @ 131 NONAME ; struct QMetaObject const & CntDefaultViewManager::getStaticMetaObject(void)
+	?trUtf8@CntViewNavigator@@SA?AVQString@@PBD0H@Z @ 132 NONAME ; class QString CntViewNavigator::trUtf8(char const *, char const *, int)
+	?qt_metacall@CntEditView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 133 NONAME ; int CntEditView::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?tr@CntEditView@@SA?AVQString@@PBD0H@Z @ 134 NONAME ; class QString CntEditView::tr(char const *, char const *, int)
+	?getStaticMetaObject@CntEditView@@SAABUQMetaObject@@XZ @ 135 NONAME ; struct QMetaObject const & CntEditView::getStaticMetaObject(void)
+	?trUtf8@CntEditView@@SA?AVQString@@PBD0@Z @ 136 NONAME ; class QString CntEditView::trUtf8(char const *, char const *)
+	??1CntViewNavigator@@UAE@XZ @ 137 NONAME ; CntViewNavigator::~CntViewNavigator(void)
+	?qt_metacast@CntMainWindow@@UAEPAXPBD@Z @ 138 NONAME ; void * CntMainWindow::qt_metacast(char const *)
+	?isDefault@CntBaseSelectionView@@UBE_NXZ @ 139 NONAME ; bool CntBaseSelectionView::isDefault(void) const
+	?back@CntViewNavigator@@QAEABHAAV?$QFlags@W4ViewSwitchFlag@Hb@@@@_N@Z @ 140 NONAME ; int const & CntViewNavigator::back(class QFlags<enum Hb::ViewSwitchFlag> &, bool)
+	??1CntBaseSelectionView@@UAE@XZ @ 141 NONAME ; CntBaseSelectionView::~CntBaseSelectionView(void)
+	?tr@CntMainWindow@@SA?AVQString@@PBD0H@Z @ 142 NONAME ; class QString CntMainWindow::tr(char const *, char const *, int)
+	?createPluginView@CntDefaultViewFactory@@AAEPAVCntAbstractView@@H@Z @ 143 NONAME ; class CntAbstractView * CntDefaultViewFactory::createPluginView(int)
+	??_ECntEditView@@UAE@I@Z @ 144 NONAME ; CntEditView::~CntEditView(unsigned int)
+	??0CntActionPopup@@QAE@PAVQContact@QtMobility@@@Z @ 145 NONAME ; CntActionPopup::CntActionPopup(class QtMobility::QContact *)
+	?executeContactAction@CntActionPopup@@IAEXAAVQContact@QtMobility@@VQContactDetail@3@VQString@@@Z @ 146 NONAME ; void CntActionPopup::executeContactAction(class QtMobility::QContact &, class QtMobility::QContactDetail, class QString)
+	?getStaticMetaObject@CntMainWindow@@SAABUQMetaObject@@XZ @ 147 NONAME ; struct QMetaObject const & CntMainWindow::getStaticMetaObject(void)
+	?eventFilter@CntKeyGrabber@@MAE_NPAVQObject@@PAVQEvent@@@Z @ 148 NONAME ; bool CntKeyGrabber::eventFilter(class QObject *, class QEvent *)
+	?qt_metacast@CntKeyGrabber@@UAEPAXPBD@Z @ 149 NONAME ; void * CntKeyGrabber::qt_metacast(char const *)
+	?tr@CntDefaultViewManager@@SA?AVQString@@PBD0@Z @ 150 NONAME ; class QString CntDefaultViewManager::tr(char const *, char const *)
+	?removeCurrentView@CntDefaultViewManager@@AAEXXZ @ 151 NONAME ; void CntDefaultViewManager::removeCurrentView(void)
+	?trUtf8@CntGroupMemberView@@SA?AVQString@@PBD0H@Z @ 152 NONAME ; class QString CntGroupMemberView::trUtf8(char const *, char const *, int)
+	?d_func@CntGroupMemberView@@AAEPAVCntGroupMemberViewPrivate@@XZ @ 153 NONAME ; class CntGroupMemberViewPrivate * CntGroupMemberView::d_func(void)
+	?view@CntGroupMemberView@@UBEPAVHbView@@XZ @ 154 NONAME ; class HbView * CntGroupMemberView::view(void) const
+	?staticMetaObject@CntGroupMemberView@@2UQMetaObject@@B @ 155 NONAME ; struct QMetaObject const CntGroupMemberView::staticMetaObject
+	??1CntGroupMemberView@@UAE@XZ @ 156 NONAME ; CntGroupMemberView::~CntGroupMemberView(void)
+	?tr@CntGroupMemberView@@SA?AVQString@@PBD0H@Z @ 157 NONAME ; class QString CntGroupMemberView::tr(char const *, char const *, int)
+	?activate@CntGroupMemberView@@UAEXPAVCntAbstractViewManager@@V?$QMap@HVQVariant@@@@@Z @ 158 NONAME ; void CntGroupMemberView::activate(class CntAbstractViewManager *, class QMap<int, class QVariant>)
+	??_ECntGroupMemberView@@UAE@I@Z @ 159 NONAME ; CntGroupMemberView::~CntGroupMemberView(unsigned int)
+	?viewId@CntGroupMemberView@@UBEHXZ @ 160 NONAME ; int CntGroupMemberView::viewId(void) const
+	?isDefault@CntGroupMemberView@@UBE_NXZ @ 161 NONAME ; bool CntGroupMemberView::isDefault(void) const
+	?qt_metacast@CntGroupMemberView@@UAEPAXPBD@Z @ 162 NONAME ; void * CntGroupMemberView::qt_metacast(char const *)
+	?trUtf8@CntGroupMemberView@@SA?AVQString@@PBD0@Z @ 163 NONAME ; class QString CntGroupMemberView::trUtf8(char const *, char const *)
+	?d_func@CntGroupMemberView@@ABEPBVCntGroupMemberViewPrivate@@XZ @ 164 NONAME ; class CntGroupMemberViewPrivate const * CntGroupMemberView::d_func(void) const
+	?getStaticMetaObject@CntGroupMemberView@@SAABUQMetaObject@@XZ @ 165 NONAME ; struct QMetaObject const & CntGroupMemberView::getStaticMetaObject(void)
+	??0CntGroupMemberView@@QAE@XZ @ 166 NONAME ; CntGroupMemberView::CntGroupMemberView(void)
+	?deactivate@CntGroupMemberView@@UAEXXZ @ 167 NONAME ; void CntGroupMemberView::deactivate(void)
+	?qt_metacall@CntGroupMemberView@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 168 NONAME ; int CntGroupMemberView::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?metaObject@CntGroupMemberView@@UBEPBUQMetaObject@@XZ @ 169 NONAME ; struct QMetaObject const * CntGroupMemberView::metaObject(void) const
+	?tr@CntGroupMemberView@@SA?AVQString@@PBD0@Z @ 170 NONAME ; class QString CntGroupMemberView::tr(char const *, char const *)
+	?backPressed@CntGroupMemberView@@IAEXXZ @ 171 NONAME ; void CntGroupMemberView::backPressed(void)
 
--- a/phonebookui/eabi/pbkcommonuiu.def	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/eabi/pbkcommonuiu.def	Thu Aug 05 14:31:09 2010 +0300
@@ -13,155 +13,190 @@
 	_ZN11CntEditViewD0Ev @ 12 NONAME
 	_ZN11CntEditViewD1Ev @ 13 NONAME
 	_ZN11CntEditViewD2Ev @ 14 NONAME
-	_ZN13CntMainWindow10keyPressedEP9QKeyEvent @ 15 NONAME
-	_ZN13CntMainWindow11qt_metacallEN11QMetaObject4CallEiPPv @ 16 NONAME
-	_ZN13CntMainWindow11qt_metacastEPKc @ 17 NONAME
-	_ZN13CntMainWindow13keyPressEventEP9QKeyEvent @ 18 NONAME
-	_ZN13CntMainWindow16staticMetaObjectE @ 19 NONAME DATA 16
-	_ZN13CntMainWindow19getStaticMetaObjectEv @ 20 NONAME
-	_ZN13CntMainWindowC1EP7QWidgeti @ 21 NONAME
-	_ZN13CntMainWindowC2EP7QWidgeti @ 22 NONAME
-	_ZN13CntMainWindowD0Ev @ 23 NONAME
-	_ZN13CntMainWindowD1Ev @ 24 NONAME
-	_ZN13CntMainWindowD2Ev @ 25 NONAME
-	_ZN14CntActionPopup11qt_metacallEN11QMetaObject4CallEiPPv @ 26 NONAME
-	_ZN14CntActionPopup11qt_metacastEPKc @ 27 NONAME
-	_ZN14CntActionPopup15showActionPopupE7QString @ 28 NONAME
-	_ZN14CntActionPopup16staticMetaObjectE @ 29 NONAME DATA 16
-	_ZN14CntActionPopup19getStaticMetaObjectEv @ 30 NONAME
-	_ZN14CntActionPopup20executeContactActionERN10QtMobility8QContactENS0_14QContactDetailE7QString @ 31 NONAME
-	_ZN14CntActionPopup24actionPopupCancelPressedEv @ 32 NONAME
-	_ZN14CntActionPopupC1EPN10QtMobility8QContactE @ 33 NONAME
-	_ZN14CntActionPopupC2EPN10QtMobility8QContactE @ 34 NONAME
-	_ZN14CntActionPopupD0Ev @ 35 NONAME
-	_ZN14CntActionPopupD1Ev @ 36 NONAME
-	_ZN14CntActionPopupD2Ev @ 37 NONAME
-	_ZN16CntViewNavigator11qt_metacallEN11QMetaObject4CallEiPPv @ 38 NONAME
-	_ZN16CntViewNavigator11qt_metacastEPKc @ 39 NONAME
-	_ZN16CntViewNavigator12addExceptionERKiS1_ @ 40 NONAME
-	_ZN16CntViewNavigator12removeEffectERKi @ 41 NONAME
-	_ZN16CntViewNavigator15removeExceptionERKi @ 42 NONAME
-	_ZN16CntViewNavigator16staticMetaObjectE @ 43 NONAME DATA 16
-	_ZN16CntViewNavigator19getStaticMetaObjectEv @ 44 NONAME
-	_ZN16CntViewNavigator4backER6QFlagsIN2Hb14ViewSwitchFlagEEb @ 45 NONAME
-	_ZN16CntViewNavigator4nextERKiR6QFlagsIN2Hb14ViewSwitchFlagEE @ 46 NONAME
-	_ZN16CntViewNavigator7addRootERKi @ 47 NONAME
-	_ZN16CntViewNavigator9addEffectERKiS1_ @ 48 NONAME
-	_ZN16CntViewNavigatorC1EP7QObject @ 49 NONAME
-	_ZN16CntViewNavigatorC2EP7QObject @ 50 NONAME
-	_ZN16CntViewNavigatorD0Ev @ 51 NONAME
-	_ZN16CntViewNavigatorD1Ev @ 52 NONAME
-	_ZN16CntViewNavigatorD2Ev @ 53 NONAME
-	_ZN18CntContactCardView10deactivateEv @ 54 NONAME
-	_ZN18CntContactCardView11backPressedEv @ 55 NONAME
-	_ZN18CntContactCardView11qt_metacallEN11QMetaObject4CallEiPPv @ 56 NONAME
-	_ZN18CntContactCardView11qt_metacastEPKc @ 57 NONAME
-	_ZN18CntContactCardView13addToContactsEv @ 58 NONAME
-	_ZN18CntContactCardView13viewActivatedEP22CntAbstractViewManager4QMapIi8QVariantE @ 59 NONAME
-	_ZN18CntContactCardView16staticMetaObjectE @ 60 NONAME DATA 16
-	_ZN18CntContactCardView19getStaticMetaObjectEv @ 61 NONAME
-	_ZN18CntContactCardView8activateEP22CntAbstractViewManager4QMapIi8QVariantE @ 62 NONAME
-	_ZN18CntContactCardViewC1Eb @ 63 NONAME
-	_ZN18CntContactCardViewC2Eb @ 64 NONAME
-	_ZN18CntContactCardViewD0Ev @ 65 NONAME
-	_ZN18CntContactCardViewD1Ev @ 66 NONAME
-	_ZN18CntContactCardViewD2Ev @ 67 NONAME
-	_ZN20CntBaseSelectionView10deactivateEv @ 68 NONAME
-	_ZN20CntBaseSelectionView10viewClosedEv @ 69 NONAME
-	_ZN20CntBaseSelectionView10viewOpenedEP22CntAbstractViewManager4QMapIi8QVariantE @ 70 NONAME
-	_ZN20CntBaseSelectionView11qt_metacallEN11QMetaObject4CallEiPPv @ 71 NONAME
-	_ZN20CntBaseSelectionView11qt_metacastEPKc @ 72 NONAME
-	_ZN20CntBaseSelectionView16staticMetaObjectE @ 73 NONAME DATA 16
-	_ZN20CntBaseSelectionView19getStaticMetaObjectEv @ 74 NONAME
-	_ZN20CntBaseSelectionView8activateEP22CntAbstractViewManager4QMapIi8QVariantE @ 75 NONAME
-	_ZN20CntBaseSelectionView9closeViewEv @ 76 NONAME
-	_ZN20CntBaseSelectionViewC2Ev @ 77 NONAME
-	_ZN20CntBaseSelectionViewD0Ev @ 78 NONAME
-	_ZN20CntBaseSelectionViewD1Ev @ 79 NONAME
-	_ZN20CntBaseSelectionViewD2Ev @ 80 NONAME
-	_ZN21CntDefaultViewFactory10createViewEi @ 81 NONAME
-	_ZN21CntDefaultViewFactory16createPluginViewEi @ 82 NONAME
-	_ZN21CntDefaultViewFactoryC1Ev @ 83 NONAME
-	_ZN21CntDefaultViewFactoryC2Ev @ 84 NONAME
-	_ZN21CntDefaultViewFactoryD0Ev @ 85 NONAME
-	_ZN21CntDefaultViewFactoryD1Ev @ 86 NONAME
-	_ZN21CntDefaultViewFactoryD2Ev @ 87 NONAME
-	_ZN21CntDefaultViewManager10changeViewE4QMapIi8QVariantE @ 88 NONAME
-	_ZN21CntDefaultViewManager10switchViewE4QMapIi8QVariantE6QFlagsIN2Hb14ViewSwitchFlagEE @ 89 NONAME
-	_ZN21CntDefaultViewManager11qt_metacallEN11QMetaObject4CallEiPPv @ 90 NONAME
-	_ZN21CntDefaultViewManager11qt_metacastEPKc @ 91 NONAME
-	_ZN21CntDefaultViewManager13currentViewIdEv @ 92 NONAME
-	_ZN21CntDefaultViewManager13deleteOldViewEv @ 93 NONAME
-	_ZN21CntDefaultViewManager14contactManagerERK7QString @ 94 NONAME
-	_ZN21CntDefaultViewManager14setViewFactoryEP22CntAbstractViewFactory @ 95 NONAME
-	_ZN21CntDefaultViewManager16setViewNavigatorEP16CntViewNavigator @ 96 NONAME
-	_ZN21CntDefaultViewManager16staticMetaObjectE @ 97 NONAME DATA 16
-	_ZN21CntDefaultViewManager17removeCurrentViewEv @ 98 NONAME
-	_ZN21CntDefaultViewManager19getStaticMetaObjectEv @ 99 NONAME
-	_ZN21CntDefaultViewManager4backE4QMapIi8QVariantEb @ 100 NONAME
-	_ZN21CntDefaultViewManager7cleanupEv @ 101 NONAME
-	_ZN21CntDefaultViewManager8closeAppEv @ 102 NONAME
-	_ZN21CntDefaultViewManagerC1EP12HbMainWindow @ 103 NONAME
-	_ZN21CntDefaultViewManagerC2EP12HbMainWindow @ 104 NONAME
-	_ZN21CntDefaultViewManagerD0Ev @ 105 NONAME
-	_ZN21CntDefaultViewManagerD1Ev @ 106 NONAME
-	_ZN21CntDefaultViewManagerD2Ev @ 107 NONAME
-	_ZNK11CntEditView10metaObjectEv @ 108 NONAME
-	_ZNK11CntEditView4viewEv @ 109 NONAME
-	_ZNK11CntEditView6viewIdEv @ 110 NONAME
-	_ZNK11CntEditView9isDefaultEv @ 111 NONAME
-	_ZNK13CntMainWindow10metaObjectEv @ 112 NONAME
-	_ZNK14CntActionPopup10metaObjectEv @ 113 NONAME
-	_ZNK16CntViewNavigator10metaObjectEv @ 114 NONAME
-	_ZNK18CntContactCardView10metaObjectEv @ 115 NONAME
-	_ZNK18CntContactCardView4viewEv @ 116 NONAME
-	_ZNK18CntContactCardView6viewIdEv @ 117 NONAME
-	_ZNK18CntContactCardView9isDefaultEv @ 118 NONAME
-	_ZNK20CntBaseSelectionView10metaObjectEv @ 119 NONAME
-	_ZNK20CntBaseSelectionView4viewEv @ 120 NONAME
-	_ZNK20CntBaseSelectionView9isDefaultEv @ 121 NONAME
-	_ZNK21CntDefaultViewManager10metaObjectEv @ 122 NONAME
-	_ZTI11CntEditView @ 123 NONAME
-	_ZTI13CntMainWindow @ 124 NONAME
-	_ZTI14CntActionPopup @ 125 NONAME
-	_ZTI16CntViewNavigator @ 126 NONAME
-	_ZTI18CntContactCardView @ 127 NONAME
-	_ZTI20CntBaseSelectionView @ 128 NONAME
-	_ZTI21CntDefaultViewFactory @ 129 NONAME
-	_ZTI21CntDefaultViewManager @ 130 NONAME
-	_ZTV11CntEditView @ 131 NONAME
-	_ZTV13CntMainWindow @ 132 NONAME
-	_ZTV14CntActionPopup @ 133 NONAME
-	_ZTV16CntViewNavigator @ 134 NONAME
-	_ZTV18CntContactCardView @ 135 NONAME
-	_ZTV20CntBaseSelectionView @ 136 NONAME
-	_ZTV21CntDefaultViewFactory @ 137 NONAME
-	_ZTV21CntDefaultViewManager @ 138 NONAME
-	_ZThn8_N11CntEditView10deactivateEv @ 139 NONAME
-	_ZThn8_N11CntEditView8activateEP22CntAbstractViewManager4QMapIi8QVariantE @ 140 NONAME
-	_ZThn8_N11CntEditViewD0Ev @ 141 NONAME
-	_ZThn8_N11CntEditViewD1Ev @ 142 NONAME
-	_ZThn8_N13CntMainWindowD0Ev @ 143 NONAME
-	_ZThn8_N13CntMainWindowD1Ev @ 144 NONAME
-	_ZThn8_N18CntContactCardView10deactivateEv @ 145 NONAME
-	_ZThn8_N18CntContactCardView8activateEP22CntAbstractViewManager4QMapIi8QVariantE @ 146 NONAME
-	_ZThn8_N18CntContactCardViewD0Ev @ 147 NONAME
-	_ZThn8_N18CntContactCardViewD1Ev @ 148 NONAME
-	_ZThn8_N20CntBaseSelectionView10deactivateEv @ 149 NONAME
-	_ZThn8_N20CntBaseSelectionView8activateEP22CntAbstractViewManager4QMapIi8QVariantE @ 150 NONAME
-	_ZThn8_N20CntBaseSelectionViewD0Ev @ 151 NONAME
-	_ZThn8_N20CntBaseSelectionViewD1Ev @ 152 NONAME
-	_ZThn8_N21CntDefaultViewManager10changeViewE4QMapIi8QVariantE @ 153 NONAME
-	_ZThn8_N21CntDefaultViewManager14contactManagerERK7QString @ 154 NONAME
-	_ZThn8_N21CntDefaultViewManager4backE4QMapIi8QVariantEb @ 155 NONAME
-	_ZThn8_N21CntDefaultViewManagerD0Ev @ 156 NONAME
-	_ZThn8_N21CntDefaultViewManagerD1Ev @ 157 NONAME
-	_ZThn8_NK11CntEditView4viewEv @ 158 NONAME
-	_ZThn8_NK11CntEditView6viewIdEv @ 159 NONAME
-	_ZThn8_NK11CntEditView9isDefaultEv @ 160 NONAME
-	_ZThn8_NK18CntContactCardView4viewEv @ 161 NONAME
-	_ZThn8_NK18CntContactCardView6viewIdEv @ 162 NONAME
-	_ZThn8_NK18CntContactCardView9isDefaultEv @ 163 NONAME
-	_ZThn8_NK20CntBaseSelectionView4viewEv @ 164 NONAME
-	_ZThn8_NK20CntBaseSelectionView9isDefaultEv @ 165 NONAME
+	_ZN13CntKeyGrabber11eventFilterEP7QObjectP6QEvent @ 15 NONAME
+	_ZN13CntKeyGrabber11qt_metacallEN11QMetaObject4CallEiPPv @ 16 NONAME
+	_ZN13CntKeyGrabber11qt_metacastEPKc @ 17 NONAME
+	_ZN13CntKeyGrabber16staticMetaObjectE @ 18 NONAME DATA 16
+	_ZN13CntKeyGrabber19getStaticMetaObjectEv @ 19 NONAME
+	_ZN13CntKeyGrabberC1EP12HbMainWindowP7QObject @ 20 NONAME
+	_ZN13CntKeyGrabberC2EP12HbMainWindowP7QObject @ 21 NONAME
+	_ZN13CntKeyGrabberD0Ev @ 22 NONAME
+	_ZN13CntKeyGrabberD1Ev @ 23 NONAME
+	_ZN13CntKeyGrabberD2Ev @ 24 NONAME
+	_ZN13CntMainWindow11qt_metacallEN11QMetaObject4CallEiPPv @ 25 NONAME
+	_ZN13CntMainWindow11qt_metacastEPKc @ 26 NONAME
+	_ZN13CntMainWindow16staticMetaObjectE @ 27 NONAME DATA 16
+	_ZN13CntMainWindow19getStaticMetaObjectEv @ 28 NONAME
+	_ZN13CntMainWindowC1EP7QWidgeti @ 29 NONAME
+	_ZN13CntMainWindowC2EP7QWidgeti @ 30 NONAME
+	_ZN13CntMainWindowD0Ev @ 31 NONAME
+	_ZN13CntMainWindowD1Ev @ 32 NONAME
+	_ZN13CntMainWindowD2Ev @ 33 NONAME
+	_ZN14CntActionPopup11qt_metacallEN11QMetaObject4CallEiPPv @ 34 NONAME
+	_ZN14CntActionPopup11qt_metacastEPKc @ 35 NONAME
+	_ZN14CntActionPopup15showActionPopupE7QString @ 36 NONAME
+	_ZN14CntActionPopup16staticMetaObjectE @ 37 NONAME DATA 16
+	_ZN14CntActionPopup19getStaticMetaObjectEv @ 38 NONAME
+	_ZN14CntActionPopup20executeContactActionERN10QtMobility8QContactENS0_14QContactDetailE7QString @ 39 NONAME
+	_ZN14CntActionPopup24actionPopupCancelPressedEv @ 40 NONAME
+	_ZN14CntActionPopupC1EPN10QtMobility8QContactE @ 41 NONAME
+	_ZN14CntActionPopupC2EPN10QtMobility8QContactE @ 42 NONAME
+	_ZN14CntActionPopupD0Ev @ 43 NONAME
+	_ZN14CntActionPopupD1Ev @ 44 NONAME
+	_ZN14CntActionPopupD2Ev @ 45 NONAME
+	_ZN16CntViewNavigator11qt_metacallEN11QMetaObject4CallEiPPv @ 46 NONAME
+	_ZN16CntViewNavigator11qt_metacastEPKc @ 47 NONAME
+	_ZN16CntViewNavigator12addExceptionERKiS1_ @ 48 NONAME
+	_ZN16CntViewNavigator12removeEffectERKi @ 49 NONAME
+	_ZN16CntViewNavigator15removeExceptionERKi @ 50 NONAME
+	_ZN16CntViewNavigator16staticMetaObjectE @ 51 NONAME DATA 16
+	_ZN16CntViewNavigator19getStaticMetaObjectEv @ 52 NONAME
+	_ZN16CntViewNavigator4backER6QFlagsIN2Hb14ViewSwitchFlagEEb @ 53 NONAME
+	_ZN16CntViewNavigator4nextERKiR6QFlagsIN2Hb14ViewSwitchFlagEE @ 54 NONAME
+	_ZN16CntViewNavigator7addRootERKi @ 55 NONAME
+	_ZN16CntViewNavigator9addEffectERKiS1_ @ 56 NONAME
+	_ZN16CntViewNavigatorC1EP7QObject @ 57 NONAME
+	_ZN16CntViewNavigatorC2EP7QObject @ 58 NONAME
+	_ZN16CntViewNavigatorD0Ev @ 59 NONAME
+	_ZN16CntViewNavigatorD1Ev @ 60 NONAME
+	_ZN16CntViewNavigatorD2Ev @ 61 NONAME
+	_ZN18CntContactCardView10deactivateEv @ 62 NONAME
+	_ZN18CntContactCardView11backPressedEv @ 63 NONAME
+	_ZN18CntContactCardView11qt_metacallEN11QMetaObject4CallEiPPv @ 64 NONAME
+	_ZN18CntContactCardView11qt_metacastEPKc @ 65 NONAME
+	_ZN18CntContactCardView13addToContactsEv @ 66 NONAME
+	_ZN18CntContactCardView13viewActivatedEP22CntAbstractViewManager4QMapIi8QVariantE @ 67 NONAME
+	_ZN18CntContactCardView16staticMetaObjectE @ 68 NONAME DATA 16
+	_ZN18CntContactCardView19getStaticMetaObjectEv @ 69 NONAME
+	_ZN18CntContactCardView8activateEP22CntAbstractViewManager4QMapIi8QVariantE @ 70 NONAME
+	_ZN18CntContactCardViewC1Eb @ 71 NONAME
+	_ZN18CntContactCardViewC2Eb @ 72 NONAME
+	_ZN18CntContactCardViewD0Ev @ 73 NONAME
+	_ZN18CntContactCardViewD1Ev @ 74 NONAME
+	_ZN18CntContactCardViewD2Ev @ 75 NONAME
+	_ZN20CntBaseSelectionView10deactivateEv @ 76 NONAME
+	_ZN20CntBaseSelectionView10viewClosedEv @ 77 NONAME
+	_ZN20CntBaseSelectionView10viewOpenedEP22CntAbstractViewManager4QMapIi8QVariantE @ 78 NONAME
+	_ZN20CntBaseSelectionView11qt_metacallEN11QMetaObject4CallEiPPv @ 79 NONAME
+	_ZN20CntBaseSelectionView11qt_metacastEPKc @ 80 NONAME
+	_ZN20CntBaseSelectionView16staticMetaObjectE @ 81 NONAME DATA 16
+	_ZN20CntBaseSelectionView19getStaticMetaObjectEv @ 82 NONAME
+	_ZN20CntBaseSelectionView8activateEP22CntAbstractViewManager4QMapIi8QVariantE @ 83 NONAME
+	_ZN20CntBaseSelectionViewC2Ev @ 84 NONAME
+	_ZN20CntBaseSelectionViewD0Ev @ 85 NONAME
+	_ZN20CntBaseSelectionViewD1Ev @ 86 NONAME
+	_ZN20CntBaseSelectionViewD2Ev @ 87 NONAME
+	_ZN21CntDefaultViewFactory10createViewEi @ 88 NONAME
+	_ZN21CntDefaultViewFactory16createPluginViewEi @ 89 NONAME
+	_ZN21CntDefaultViewFactoryC1Ev @ 90 NONAME
+	_ZN21CntDefaultViewFactoryC2Ev @ 91 NONAME
+	_ZN21CntDefaultViewFactoryD0Ev @ 92 NONAME
+	_ZN21CntDefaultViewFactoryD1Ev @ 93 NONAME
+	_ZN21CntDefaultViewFactoryD2Ev @ 94 NONAME
+	_ZN21CntDefaultViewManager10changeViewE4QMapIi8QVariantE @ 95 NONAME
+	_ZN21CntDefaultViewManager10switchViewE4QMapIi8QVariantE6QFlagsIN2Hb14ViewSwitchFlagEE @ 96 NONAME
+	_ZN21CntDefaultViewManager11qt_metacallEN11QMetaObject4CallEiPPv @ 97 NONAME
+	_ZN21CntDefaultViewManager11qt_metacastEPKc @ 98 NONAME
+	_ZN21CntDefaultViewManager13currentViewIdEv @ 99 NONAME
+	_ZN21CntDefaultViewManager13deleteOldViewEv @ 100 NONAME
+	_ZN21CntDefaultViewManager14contactManagerERK7QString @ 101 NONAME
+	_ZN21CntDefaultViewManager14setViewFactoryEP22CntAbstractViewFactory @ 102 NONAME
+	_ZN21CntDefaultViewManager16setViewNavigatorEP16CntViewNavigator @ 103 NONAME
+	_ZN21CntDefaultViewManager16staticMetaObjectE @ 104 NONAME DATA 16
+	_ZN21CntDefaultViewManager17removeCurrentViewEv @ 105 NONAME
+	_ZN21CntDefaultViewManager19getStaticMetaObjectEv @ 106 NONAME
+	_ZN21CntDefaultViewManager4backE4QMapIi8QVariantEb @ 107 NONAME
+	_ZN21CntDefaultViewManager7cleanupEv @ 108 NONAME
+	_ZN21CntDefaultViewManager8closeAppEv @ 109 NONAME
+	_ZN21CntDefaultViewManagerC1EP12HbMainWindow @ 110 NONAME
+	_ZN21CntDefaultViewManagerC2EP12HbMainWindow @ 111 NONAME
+	_ZN21CntDefaultViewManagerD0Ev @ 112 NONAME
+	_ZN21CntDefaultViewManagerD1Ev @ 113 NONAME
+	_ZN21CntDefaultViewManagerD2Ev @ 114 NONAME
+	_ZNK11CntEditView10metaObjectEv @ 115 NONAME
+	_ZNK11CntEditView4viewEv @ 116 NONAME
+	_ZNK11CntEditView6viewIdEv @ 117 NONAME
+	_ZNK11CntEditView9isDefaultEv @ 118 NONAME
+	_ZNK13CntKeyGrabber10metaObjectEv @ 119 NONAME
+	_ZNK13CntMainWindow10metaObjectEv @ 120 NONAME
+	_ZNK14CntActionPopup10metaObjectEv @ 121 NONAME
+	_ZNK16CntViewNavigator10metaObjectEv @ 122 NONAME
+	_ZNK18CntContactCardView10metaObjectEv @ 123 NONAME
+	_ZNK18CntContactCardView4viewEv @ 124 NONAME
+	_ZNK18CntContactCardView6viewIdEv @ 125 NONAME
+	_ZNK18CntContactCardView9isDefaultEv @ 126 NONAME
+	_ZNK20CntBaseSelectionView10metaObjectEv @ 127 NONAME
+	_ZNK20CntBaseSelectionView4viewEv @ 128 NONAME
+	_ZNK20CntBaseSelectionView9isDefaultEv @ 129 NONAME
+	_ZNK21CntDefaultViewManager10metaObjectEv @ 130 NONAME
+	_ZTI11CntEditView @ 131 NONAME
+	_ZTI13CntKeyGrabber @ 132 NONAME
+	_ZTI13CntMainWindow @ 133 NONAME
+	_ZTI14CntActionPopup @ 134 NONAME
+	_ZTI16CntViewNavigator @ 135 NONAME
+	_ZTI18CntContactCardView @ 136 NONAME
+	_ZTI20CntBaseSelectionView @ 137 NONAME
+	_ZTI21CntDefaultViewFactory @ 138 NONAME
+	_ZTI21CntDefaultViewManager @ 139 NONAME
+	_ZTV11CntEditView @ 140 NONAME
+	_ZTV13CntKeyGrabber @ 141 NONAME
+	_ZTV13CntMainWindow @ 142 NONAME
+	_ZTV14CntActionPopup @ 143 NONAME
+	_ZTV16CntViewNavigator @ 144 NONAME
+	_ZTV18CntContactCardView @ 145 NONAME
+	_ZTV20CntBaseSelectionView @ 146 NONAME
+	_ZTV21CntDefaultViewFactory @ 147 NONAME
+	_ZTV21CntDefaultViewManager @ 148 NONAME
+	_ZThn8_N11CntEditView10deactivateEv @ 149 NONAME
+	_ZThn8_N11CntEditView8activateEP22CntAbstractViewManager4QMapIi8QVariantE @ 150 NONAME
+	_ZThn8_N11CntEditViewD0Ev @ 151 NONAME
+	_ZThn8_N11CntEditViewD1Ev @ 152 NONAME
+	_ZThn8_N13CntMainWindowD0Ev @ 153 NONAME
+	_ZThn8_N13CntMainWindowD1Ev @ 154 NONAME
+	_ZThn8_N18CntContactCardView10deactivateEv @ 155 NONAME
+	_ZThn8_N18CntContactCardView8activateEP22CntAbstractViewManager4QMapIi8QVariantE @ 156 NONAME
+	_ZThn8_N18CntContactCardViewD0Ev @ 157 NONAME
+	_ZThn8_N18CntContactCardViewD1Ev @ 158 NONAME
+	_ZThn8_N20CntBaseSelectionView10deactivateEv @ 159 NONAME
+	_ZThn8_N20CntBaseSelectionView8activateEP22CntAbstractViewManager4QMapIi8QVariantE @ 160 NONAME
+	_ZThn8_N20CntBaseSelectionViewD0Ev @ 161 NONAME
+	_ZThn8_N20CntBaseSelectionViewD1Ev @ 162 NONAME
+	_ZThn8_N21CntDefaultViewManager10changeViewE4QMapIi8QVariantE @ 163 NONAME
+	_ZThn8_N21CntDefaultViewManager14contactManagerERK7QString @ 164 NONAME
+	_ZThn8_N21CntDefaultViewManager4backE4QMapIi8QVariantEb @ 165 NONAME
+	_ZThn8_N21CntDefaultViewManagerD0Ev @ 166 NONAME
+	_ZThn8_N21CntDefaultViewManagerD1Ev @ 167 NONAME
+	_ZThn8_NK11CntEditView4viewEv @ 168 NONAME
+	_ZThn8_NK11CntEditView6viewIdEv @ 169 NONAME
+	_ZThn8_NK11CntEditView9isDefaultEv @ 170 NONAME
+	_ZThn8_NK18CntContactCardView4viewEv @ 171 NONAME
+	_ZThn8_NK18CntContactCardView6viewIdEv @ 172 NONAME
+	_ZThn8_NK18CntContactCardView9isDefaultEv @ 173 NONAME
+	_ZThn8_NK20CntBaseSelectionView4viewEv @ 174 NONAME
+	_ZThn8_NK20CntBaseSelectionView9isDefaultEv @ 175 NONAME
+	_ZN18CntGroupMemberView10deactivateEv @ 176 NONAME
+	_ZN18CntGroupMemberView11backPressedEv @ 177 NONAME
+	_ZN18CntGroupMemberView11qt_metacallEN11QMetaObject4CallEiPPv @ 178 NONAME
+	_ZN18CntGroupMemberView11qt_metacastEPKc @ 179 NONAME
+	_ZN18CntGroupMemberView16staticMetaObjectE @ 180 NONAME DATA 16
+	_ZN18CntGroupMemberView19getStaticMetaObjectEv @ 181 NONAME
+	_ZN18CntGroupMemberView8activateEP22CntAbstractViewManager4QMapIi8QVariantE @ 182 NONAME
+	_ZN18CntGroupMemberViewC1Ev @ 183 NONAME
+	_ZN18CntGroupMemberViewC2Ev @ 184 NONAME
+	_ZN18CntGroupMemberViewD0Ev @ 185 NONAME
+	_ZN18CntGroupMemberViewD1Ev @ 186 NONAME
+	_ZN18CntGroupMemberViewD2Ev @ 187 NONAME
+	_ZNK18CntGroupMemberView10metaObjectEv @ 188 NONAME
+	_ZNK18CntGroupMemberView4viewEv @ 189 NONAME
+	_ZNK18CntGroupMemberView6viewIdEv @ 190 NONAME
+	_ZNK18CntGroupMemberView9isDefaultEv @ 191 NONAME
+	_ZTI18CntGroupMemberView @ 192 NONAME
+	_ZTV18CntGroupMemberView @ 193 NONAME
+	_ZThn8_N18CntGroupMemberView10deactivateEv @ 194 NONAME
+	_ZThn8_N18CntGroupMemberView8activateEP22CntAbstractViewManager4QMapIi8QVariantE @ 195 NONAME
+	_ZThn8_N18CntGroupMemberViewD0Ev @ 196 NONAME
+	_ZThn8_N18CntGroupMemberViewD1Ev @ 197 NONAME
+	_ZThn8_NK18CntGroupMemberView4viewEv @ 198 NONAME
+	_ZThn8_NK18CntGroupMemberView6viewIdEv @ 199 NONAME
+	_ZThn8_NK18CntGroupMemberView9isDefaultEv @ 200 NONAME
 
--- a/phonebookui/pbkcommonui/inc/cntbaseselectionview.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/inc/cntbaseselectionview.h	Thu Aug 05 14:31:09 2010 +0300
@@ -48,10 +48,7 @@
     HbView* view() const;
     
     virtual int viewId() const = 0;
-    
-private slots:
-    void closeView();
-    
+
 protected:
     HbDocumentLoader* mDocument;
     HbListView* mListView;
--- a/phonebookui/pbkcommonui/inc/cntcontactcardview_p.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/inc/cntcontactcardview_p.h	Thu Aug 05 14:31:09 2010 +0300
@@ -25,7 +25,6 @@
 #include <QGraphicsSceneResizeEvent>
 #include "cntglobal.h"
 #include <cntmaptileservice.h>
-#include <xqappmgr.h>
 
 class HbView;
 class HbScrollArea;
@@ -48,7 +47,6 @@
 class HbSelectionDialog;
 class CntPresenceListener;
 class HbLabel;
-class XQAiwRequest;
 
 QTM_BEGIN_NAMESPACE
 class QContact;
@@ -82,7 +80,10 @@
 
 public:
     CntContactCardViewPrivate(bool isTemporary);
-    virtual ~CntContactCardViewPrivate();    
+    virtual ~CntContactCardViewPrivate();
+    
+protected:
+    bool eventFilter(QObject *obj, QEvent *event);
 
 public slots:
     void onItemActivated();
@@ -95,7 +96,6 @@
     void sendToHs();
     void onAddedToContacts();
     void mapTileStatusReceived(int contactid, int addressType, int status);
-    void keyPressed(QKeyEvent *event);
 
 private slots:
     void sendBusinessCard();
@@ -154,7 +154,7 @@
     void executeAction(QContact& aContact, const QContactDetail& aDetail, const QString& aAction, CntContactCardDetailItem* aItem);
     void executeDynamicAction(QContact& aContact, QContactDetail aDetail, QContactActionDescriptor aActionDescriptor);
     
-    void sendKeyPressed();
+    bool sendKeyPressed();
 #ifdef PBK_UNIT_TEST
 public:
 #else
@@ -180,9 +180,7 @@
     QContactAction              *mContactAction;
     HbAction                    *mBackKey;
     CntImageLabel               *mImageLabel;
-    XQApplicationManager        mAppManager;
-	XQServiceRequest            *mHighwayService;
-	XQAiwRequest                *mRequest; // own
+    XQServiceRequest            *mHighwayService;
     HbIcon                      *mVCardIcon;
     CntViewParameters           mArgs;
     ShareUi                     *mShareUi;
--- a/phonebookui/pbkcommonui/inc/cntdetailconst.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/inc/cntdetailconst.h	Thu Aug 05 14:31:09 2010 +0300
@@ -52,6 +52,8 @@
 const int CNT_SPOUSE_MAXLENGTH = 50;
 const int CNT_CHILDREN_MAXLENGTH = 250;
 
+const int CNT_GROUPNAME_MAXLENGTH = 50;
+
 const QDate CNT_DATEPICKER_FROM(1900,0,0);
 const QDate CNT_DATEPICKER_TO(2050,0,0);
 
--- a/phonebookui/pbkcommonui/inc/cntgroupactionsview.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/inc/cntgroupactionsview.h	Thu Aug 05 14:31:09 2010 +0300
@@ -35,6 +35,7 @@
 
 QTM_BEGIN_NAMESPACE
 class QContact;
+class QContactAction;
 QTM_END_NAMESPACE
 
 QTM_USE_NAMESPACE
@@ -50,6 +51,9 @@
     HbView* view() const { return mView; }
     int viewId() const { return groupActionsView; }
     
+protected:
+    bool eventFilter(QObject *obj, QEvent *event);
+    
 public:
     CntGroupActionsView();
     ~CntGroupActionsView();
@@ -66,6 +70,7 @@
     void executeAction(QContact&, QContactDetail, QString);
     void actionExecuted(CntActionLauncher* aAction);
     void actionCancelled();
+    void executeConferenceCallAction(QContact& aContact, const QContactDetail& aDetail, const QString& aAction);
 
 #ifdef PBK_UNIT_TEST
 public:
@@ -73,6 +78,7 @@
 private:
 #endif      
     void populatelist(QString label,HbIcon icon, QString secondaryText, QString action);
+    bool sendKeyPressed();
    
 #ifdef PBK_UNIT_TEST
 public:
@@ -92,6 +98,7 @@
     int                         mPopupCount;
     QStringList                 mEmailActionParams;
     QVariantMap                 mMessageActionParams;
+    bool                        mIsExecutingAction;
 };
 
 #endif // CNTGROUPACTIONSVIEW_H
--- a/phonebookui/pbkcommonui/inc/cntgroupdeletepopup.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/inc/cntgroupdeletepopup.h	Thu Aug 05 14:31:09 2010 +0300
@@ -35,6 +35,7 @@
 class CntGroupDeletePopup : public HbSelectionDialog
 {
     Q_OBJECT
+    friend class TestCntGroupDeletePopup;
 
 public:
     CntGroupDeletePopup(QContactManager *manager, QGraphicsItem *parent = 0);
@@ -43,12 +44,7 @@
     void populateListOfGroup();
     QList<QContactLocalId> deleteGroup() const;
 
-#ifdef PBK_UNIT_TEST
-public:
-#else
 private:
-#endif
-    HbListView               *mListView;
     QContactManager          *mContactManager;
     CntGroupDeletePopupModel *mModel;  
 };
--- a/phonebookui/pbkcommonui/inc/cntgroupmemberview.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/inc/cntgroupmemberview.h	Thu Aug 05 14:31:09 2010 +0300
@@ -19,32 +19,14 @@
 #define CNTGROUPMEMBERVIEW_H
 
 #include <QObject>
-#include <QList>
-#include <hbdocumentloader.h>
-#include <QSet>
 #include <cntabstractview.h>
+#include "cntglobal.h"
 
-class CntListModel;
-class CntAbstractViewManager;
-class CntContactCardHeadingItem;
+class CntGroupMemberViewPrivate;
 class HbView;
-class HbAction;
-class HbListView;
-class HbAbstractViewItem;
-class ThumbnailManager;
-class QModelIndex;
-class CntImageLabel;
-class HbDocumentLoader;
 
-QTM_BEGIN_NAMESPACE
-class QContact;
-QTM_END_NAMESPACE
-
-QTM_USE_NAMESPACE
-
-class CntGroupMemberView : public QObject, public CntAbstractView
+class QTPBK_EXPORT CntGroupMemberView : public QObject, public CntAbstractView
 {
-    friend class TestCntGroupMemberView;
     Q_OBJECT
 
 public:
@@ -54,62 +36,17 @@
 public: // From CntAbstractView
     void activate( CntAbstractViewManager* aMgr, const CntViewParameters aArgs );
     void deactivate();
-    bool isDefault() const { return false; }
-    HbView* view() const { return mView; }
-    int viewId() const { return groupMemberView; }
-
-public slots:
-    void setOrientation(Qt::Orientation orientation);
-
-
-private slots:
-    void showPreviousView();
-    void openGroupActions();
-    void manageMembers();
-    void handleManageMembers(QSet<QContactLocalId> aIds);
-    void editGroup();
-    void deleteGroup();
-    void handleDeleteGroup(int action);
-    
-    void showContextMenu(HbAbstractViewItem *item, const QPointF &coords);
-    void handleMenu(HbAction* action);
+    bool isDefault() const;
+    HbView* view() const;
+    int viewId() const;
 
-    void showContactView(const QModelIndex &index);
-    void removeFromGroup(const QModelIndex &index);
-    void editContact(const QModelIndex &index);
-    void thumbnailReady(const QPixmap& pixmap, void *data, int id, int error);
-    void openImageEditor();
-    
-    void drawImageMenu(const QPointF &aCoords);
-    void createModel();
-  
-    void removeImage();
-    void sendToHs(const QModelIndex &index);
-    
-private:
-    QContactManager* getContactManager();
-    void setRelationship(QSet<QContactLocalId>        &aLocalId,
-                         QList<QContactRelationship>  &aRelationshipList);
-    
+signals:
+    void backPressed();
+        
 private:
-    QContact*                   mGroupContact; // own
-    CntAbstractViewManager*     mViewManager;
-    HbDocumentLoader            mDocumentLoader;
-    HbView*                     mView; // own
-    HbAction*                   mSoftkey; // owned by view
-    CntContactCardHeadingItem*  mHeadingItem; // owned by layout
-    ThumbnailManager*           mThumbnailManager; // own
-    HbAction*                   mManageAction; // owned by view
-    HbAction*                   mDeleteAction; // owned by view
-    HbAction*                   mShowActionsAction; // owned by view
-    HbAction*                   mEditGroupAction; // owned by view
-    CntListModel*               mModel; // own
-    CntImageLabel*              mImageLabel;
-    HbListView*                 mListView; // owned by layout
-    HbDocumentLoader*           mDocument;
-    QList<QContactLocalId>      mOriginalGroupMembers;
-    QContactAvatar*             mAvatar;
-    CntViewParameters           mArgs;
+    CntGroupMemberViewPrivate* const d_ptr;
+    Q_DECLARE_PRIVATE_D(d_ptr, CntGroupMemberView)
+    Q_DISABLE_COPY(CntGroupMemberView)
 };
 
 #endif // CNTGROUPMEMBERVIEW_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/pbkcommonui/inc/cntgroupmemberview_p.h	Thu Aug 05 14:31:09 2010 +0300
@@ -0,0 +1,119 @@
+/*
+* 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:
+*
+*/
+
+#ifndef CNTGROUPMEMBERVIEW_P_H
+#define CNTGROUPMEMBERVIEW_P_H
+
+#include "cntgroupmemberview.h"
+#include "cntglobal.h"
+
+#include <QObject>
+#include <QList>
+#include <hbdocumentloader.h>
+#include <QSet>
+#include <cntabstractview.h>
+
+class CntListModel;
+class CntAbstractViewManager;
+class CntContactCardHeadingItem;
+class HbView;
+class HbAction;
+class HbListView;
+class HbAbstractViewItem;
+class ThumbnailManager;
+class QModelIndex;
+class CntImageLabel;
+class HbDocumentLoader;
+
+QTM_BEGIN_NAMESPACE
+class QContact;
+QTM_END_NAMESPACE
+
+QTM_USE_NAMESPACE
+
+class CntGroupMemberViewPrivate : public QObject
+{
+    Q_OBJECT
+
+public:
+    CntGroupMemberViewPrivate();
+    ~CntGroupMemberViewPrivate();
+    
+    void activate( CntAbstractViewManager* aMgr, const CntViewParameters aArgs );
+    void deactivate();
+    
+public:
+    CntGroupMemberView* q_ptr;
+    
+private slots:
+    void showPreviousView();
+    void openGroupActions();
+    void manageMembers();
+    void handleManageMembers(QSet<QContactLocalId> aIds);
+    void editGroup();
+    void deleteGroup();
+    void handleDeleteGroup(int action); // Delete action
+    
+    void showContextMenu(HbAbstractViewItem *item, const QPointF &coords); // item owned by HbListView
+    void handleMenu(HbAction* action);
+
+    void showContactView(const QModelIndex &index);
+    void removeFromGroup(const QModelIndex &index);
+    void editContact(const QModelIndex &index);
+    void thumbnailReady(const QPixmap& pixmap, void *data, int id, int error);
+    void openImageEditor();
+    void setOrientation(Qt::Orientation orientation);
+    
+    void drawImageMenu(const QPointF &aCoords);
+    void createModel();
+  
+    void removeImage();
+    void sendToHs(const QModelIndex &index);
+   
+private:
+    QContactManager* getContactManager();
+    void setRelationship(QSet<QContactLocalId>        &aLocalId,
+                         QList<QContactRelationship>  &aRelationshipList);
+    
+private:
+    Q_DECLARE_PUBLIC(CntGroupMemberView)
+    friend class TestCntGroupMemberView;
+    
+private:
+    QContact*                   mGroupContact; // own
+    CntAbstractViewManager*     mViewManager;
+    HbDocumentLoader            mDocumentLoader;
+    HbView*                     mView; // own
+    HbAction*                   mSoftkey; // owned by view
+    CntContactCardHeadingItem*  mHeadingItem; // owned by layout
+    ThumbnailManager*           mThumbnailManager; // own
+    HbAction*                   mManageAction; // owned by view
+    HbAction*                   mDeleteAction; // owned by view
+    HbAction*                   mShowActionsAction; // owned by view
+    HbAction*                   mEditGroupAction; // owned by view
+    CntListModel*               mModel; // own
+    CntImageLabel*              mImageLabel;
+    HbListView*                 mListView; // owned by layout
+    HbDocumentLoader*           mDocument;
+    QList<QContactLocalId>      mOriginalGroupMembers;
+    QContactAvatar*             mAvatar;
+    CntViewParameters           mArgs;
+};
+
+#endif // CNTGROUPMEMBERVIEW_P_H
+
+// EOF
--- a/phonebookui/pbkcommonui/inc/cntimportsview.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/inc/cntimportsview.h	Thu Aug 05 14:31:09 2010 +0300
@@ -53,6 +53,7 @@
     void importFetchResultReceivedADN();
     void importFetchResultReceivedSDN();
     void adnCacheStatusReady(CntSimUtility::CacheStatus& cacheStatus, int error);
+    void endKeyPressed();
      
 public:
 CntImportsView();
@@ -117,6 +118,7 @@
     int mSdnStoreEntries;
     bool mSimError;
     bool mWaitingForAdnCache;
+    bool mImportInProgress;
 };
 
 #endif /* CNTIMPORTSVIEW_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/pbkcommonui/inc/cntkeygrabber.h	Thu Aug 05 14:31:09 2010 +0300
@@ -0,0 +1,46 @@
+/*
+* 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:
+*
+*/
+
+#ifndef CNTKEYGRABBER_H
+#define CNTKEYGRABBER_H
+
+#include <QObject>
+
+#include "cntglobal.h"
+
+class HbMainWindow;
+class XQAiwRequest;
+
+class QTPBK_EXPORT CntKeyGrabber : public QObject
+{
+    Q_OBJECT
+    friend class TestCntKeyGrabber;
+
+public:
+    CntKeyGrabber(HbMainWindow *window, QObject *parent = NULL);
+    ~CntKeyGrabber();
+
+protected:
+    bool eventFilter(QObject *obj, QEvent *event);
+    
+private:
+    HbMainWindow    *mMainWindow;
+    XQAiwRequest    *mRequest;
+
+};
+
+#endif // CNTKEYGRABBER_H
--- a/phonebookui/pbkcommonui/inc/cntmainwindow.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/inc/cntmainwindow.h	Thu Aug 05 14:31:09 2010 +0300
@@ -19,7 +19,6 @@
 #define CNTMAINWINDOW_H
 
 #include <hbmainwindow.h>
-#include <QKeyEvent>
 
 #include "cntglobal.h"
 #include <cntviewparams.h>
@@ -29,28 +28,15 @@
 class QTPBK_EXPORT CntMainWindow : public HbMainWindow
 {
     Q_OBJECT
+    friend class TestCntMainWindow;
 
 public:
     CntMainWindow(QWidget *parent=0, int defaultView = namesView);
     virtual ~CntMainWindow();
 
-    void keyPressEvent(QKeyEvent *event);
-
-signals:
-
-    void keyPressed(QKeyEvent *event);
-
-public slots:
-
-private slots:
-
-#ifdef PBK_UNIT_TEST
-public:
-#else
-protected:
-#endif
+private:
     CntDefaultViewManager        *mViewManager;
-    int                          mDefaultView;
+    int                           mDefaultView;
 
 };
 
--- a/phonebookui/pbkcommonui/inc/cntmycardselectionview.h	Fri Jul 23 12:43:48 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* 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:  
-*
-*/
-
-#ifndef CNTMYCARDSELECTIONVIEW_H
-#define CNTMYCARDSELECTIONVIEW_H
-
-#include "cntbaseselectionview.h"
-
-class QModelIndex;
-
-class CntMyCardSelectionView : public CntBaseSelectionView
-{
-    Q_OBJECT
-public:
-    CntMyCardSelectionView();
-    ~CntMyCardSelectionView();
-
-public:
-    int viewId() const { return myCardSelectionView; }
-    
-private slots:
-    void onListViewActivated(const QModelIndex& index);
-    
-#ifdef PBK_UNIT_TEST
-public:
-#else
-private:
-#endif
-    void removeFromGroup(const QContact* contact);
-};
-
-#endif /* CNTMYCARDSELECTIONVIEW_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/pbkcommonui/inc/cntvcarddetailhandler.h	Thu Aug 05 14:31:09 2010 +0300
@@ -0,0 +1,69 @@
+/*
+* 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 <qversitcontactexporter.h>
+#include <qtcontacts.h>
+#include <qversitproperty.h>
+
+#ifndef CNTVCARDDETAILHANDLER_H
+#define CNTVCARDDETAILHANDLER_H
+
+class CntVCardDetailHandler : public QVersitContactExporterDetailHandlerV2 
+{
+public:
+    inline CntVCardDetailHandler(){}
+    inline void detailProcessed(const QContact& contact,
+                                 const QContactDetail& detail,
+                                 const QSet<QString>& processedFields,
+                                 const QVersitDocument& document,
+                                 QList<QVersitProperty>* toBeRemoved,
+                                 QList<QVersitProperty>* toBeAdded) 
+    {
+        Q_UNUSED(contact)
+        Q_UNUSED(detail)
+        Q_UNUSED(processedFields)
+        Q_UNUSED(document)
+        Q_UNUSED(toBeRemoved)
+        Q_UNUSED(toBeAdded)
+    }
+    
+    inline void contactProcessed(const QContact& contact,
+                                  QVersitDocument* document)
+    {
+        Q_UNUSED(contact)
+        // If there is not a FN or N value use an empty FN value. This ensures
+        // that the vCard created is valid. vCard standard requires a vCard to
+        // have atlease a name (N) of formatted name (FN) field to be valid.
+        bool vCardValid(false);
+        foreach (const QVersitProperty& property, document->properties()) {
+            const QString& name = property.name();
+            if (name == QLatin1String("FN") || name == QLatin1String("N")) {
+                vCardValid = true;
+                break;
+            }
+        }
+        
+        if (!vCardValid) {
+            QVersitProperty fnProperty;
+            fnProperty.setName(QLatin1String("FN"));
+            fnProperty.setValue(QString());
+            document->addProperty(fnProperty);
+        }
+    }
+};
+
+#endif
--- a/phonebookui/pbkcommonui/pbkcommonui.pro	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/pbkcommonui.pro	Thu Aug 05 14:31:09 2010 +0300
@@ -97,9 +97,9 @@
     inc/cnteditviewdetailitem.h \
     inc/cnteditviewheadingitem.h \
     inc/cntstringmapper.h \
-    inc/cntmycardselectionview.h \
     inc/cntmycardview.h \
     inc/cntgroupmemberview.h \
+    inc/cntgroupmemberview_p.h \
     inc/cntgroupactionsview.h \
     inc/cntgroupeditormodel.h \
     inc/cnthistoryview.h \
@@ -140,7 +140,8 @@
     ../../inc/cntdebug.h \
     inc/cntactionpopup_p.h \
     inc/cntactionpopup.h \
-    inc/cntsavemanager.h
+    inc/cntsavemanager.h \
+    inc/cntkeygrabber.h
     
     
 SOURCES += \
@@ -176,9 +177,9 @@
     src/cnteditviewdetailitem.cpp \
     src/cnteditviewheadingitem.cpp \
     src/cnteditviewseparator.cpp \
-    src/cntmycardselectionview.cpp \
     src/cntmycardview.cpp \
     src/cntgroupmemberview.cpp\
+    src/cntgroupmemberview_p.cpp\
     src/cntgroupactionsview.cpp \
     src/cntgroupeditormodel.cpp \
     src/cnthistoryview.cpp \
@@ -215,7 +216,26 @@
     src/cntcommondetailviewitem.cpp \
     src/cntactionpopup_p.cpp \
     src/cntactionpopup.cpp \
-    src/cntsavemanager.cpp
+    src/cntsavemanager.cpp \
+    src/cntkeygrabber.cpp
+
+DOCML += resources/contacts_contactcard.docml \
+         resources/contacts_ev.docml \
+         resources/contacts_mc.docml \
+         resources/contacts_if.docml \
+         resources/contacts_list.docml \
+         resources/contacts_namelist.docml \
+         resources/contacts_groupactions.docml \
+         resources/contacts_history.docml \
+         resources/contacts_editor.docml \
+         resources/contacts_sim.docml \
+         resources/contacts_favorite.docml \
+         resources/contacts_favmember.docml \
+         resources/contacts_collections.docml \
+         resources/contacts_groupmembers.docml \
+         resources/contacts_detail_editor.docml \
+         resources/contacts_fetchdialog.docml \
+         resources/contacts_settings.docml
     
 RESOURCES += resources/pbkcommonui.qrc
 
--- a/phonebookui/pbkcommonui/resources/contacts_actions.docml	Fri Jul 23 12:43:48 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="0.8">
-    <object name="cnt:nameslist" type="HbAction">
-      <icon iconName="qtg_mono_contact_all" name="icon"/>
-    </object>
-
-    <object name="cnt:collections" type="HbAction">
-      <icon iconName="qtg_mono_group" name="icon"/>
-    </object>
-    
-    <object name="cnt:addfavorites" type="HbAction">
-      <string name="text" value="Add favorites"/>
-    </object>
-    
-    <object name="cnt:savemycard" type="HbAction">
-      <string name="text" locid="txt_phob_opt_save_my_card"/>
-    </object>
-    
-    <object name="cnt:find" type="HbAction">
-      <icon iconName="qtg_mono_search" name="icon"/>
-    </object>
-    
-    <object name="cnt:newcontact" type="HbAction">
-      <string name="text" locid="txt_phob_opt_new_contact"/>
-    </object>
-    
-    <object name="cnt:import" type="HbAction">
-      <string name="text" locid="txt_phob_opt_import_contacts"/>
-    </object>
-    
-    <object name="cnt:newgroup" type="HbAction">
-      <icon iconName="qtg_mono_add_group" name="icon"/>
-    </object>
-    
-    <object name="cnt:discardchanges" type="HbAction">
-      <string name="text" locid="txt_phob_opt_discard_changes"/>
-    </object>
-
-    <object name="cnt:discardallchanges" type="HbAction">
-      <string name="text" value="Discard all changes"/>
-    </object>
-    
-    <object name="cnt:deletecontact" type="HbAction">
-      <string name="text" locid="txt_phob_opt_delete_contact"/>
-    </object>
-	
-    <object name="cnt:edit" type="HbAction">
-      <icon iconName="qtg_mono_add_field" name="icon"/>
-    </object>
-
-    <object name="cnt:save" type="HbAction">
-      <string name="text" locid="txt_phob_opt_save_contact_card"/>
-    </object>
-    
-    <object name="cnt:cancel" type="HbAction">
-      <string name="text" locid="txt_common_button_cancel"/>
-    </object>
-    
-    <object name="cnt:markall" type="HbAction">
-      <string name="text" locid="txt_phob_subtitle_mark_all"/>
-    </object>
-    
-    <object name="cnt:history" type="HbAction">
-      <icon iconName="qtg_mono_person_history" name="icon"/>
-    </object>
-    
-    <object name="cnt:activitystream" type="HbAction">
-      <icon iconName="qtg_mono_activitystream" name="icon"/>
-    </object>
-    
-    <object name="cnt:ccactivitystream" type="HbAction">
-      <icon iconName="qtg_mono_person_activitystream" name="icon"/>
-    </object>
-
-    <object name="cnt:addfield" type="HbAction">
-      <icon iconName="qtg_mono_plus" name="icon"/>
-      <string name="text" locid="txt_phob_button_add_field"/>
-    </object>
-	
-    <object name="cnt:addtocontacts" type="HbAction">
-      <string name="text" value="Add to Contacts"/>
-    </object>
-
-    <object name="cnt:editgroup" type="HbAction">
-      <icon iconName="qtg_mono_add_field" name="icon"/>
-    </object>
-     
-    <object name="cnt:managecontacts" type="HbAction">
-      <string name="text" locid="txt_phob_subtitle_manage_contacts"/>
-    </object>
-
-    <object name="cnt:addconferencenumber" type="HbAction">
-      <string name="text" value="Add Conference Number"/>
-    </object>
-
-    <object name="cnt:placegrouptohs" type="HbAction">
-      <string name="text" value="Place as a widget in HS"/>
-    </object>
-    
-    <object name="cnt:placecontacttohs" type="HbAction">
-      <string name="text" locid="txt_phob_opt_send_to_homescreen_as_widget"/>
-    </object>
-
-    <object name="cnt:deletegroupmenu" type="HbAction">
-      <string name="text" locid="txt_phob_menu_delete_group"/>
-    </object>
-    
-    <object name="cnt:deletegroup" type="HbAction">
-      <string name="text" locid="txt_phob_opt_delete_group"/>
-    </object>
-
-    <object name="cnt:groupactions" type="HbAction">
-      <icon iconName="qtg_mono_communication" name="icon"/>
-    </object>
-
-    <object name="cnt:groupmembers" type="HbAction">
-      <icon iconName="qtg_mono_details" name="icon"/>
-    </object>
-    
-    <object name="cnt:refresh" type="HbAction">
-      <icon iconName="qtg_mono_refresh" name="icon"/>
-    </object>
-
-    <object name="cnt:markUnmarkAll" type="HbAction">
-      <string name="text" value="Mark all / Unmark all"/>
-    </object>
-
-    <object name="cnt:managemembers" type="HbAction">
-      <icon iconName="qtg_mono_add_field" name="icon"/>
-    </object>
-    
-    <object name="cnt:managemembersmenu" type="HbAction">
-      <string name="text" value="Manage members"/>
-    </object>
-	
-    <object name="cnt:editgroupdetails" type="HbAction">
-      <string name="text" locid="txt_phob_opt_edit_group_details"/>
-    </object>
-    
-    <object name="cnt:editmembers" type="HbAction">
-      <icon iconName="qtg_mono_add_field" name="icon"/>
-    </object>
-    
-    <object name="cnt:reordergroups" type="HbAction">
-      <string name="text" locid="txt_phob_opt_reorder_groups"/>
-    </object>
-    
-    <object name="cnt:deletegroups" type="HbAction">
-      <string name="text" locid="txt_phob_opt_delete_groups"/>
-    </object>
-    
-    <object name="cnt:disconnectall" type="HbAction">
-      <string name="text" locid="txt_phob_opt_disconnect_all"/>
-    </object>
-    
-    <object name="cnt:sendbusinesscard" type="HbAction">
-      <string name="text" value="Send as a business card"/>
-    </object>
-    
-    <object name="cnt:editcontact" type="HbAction">
-      <string name="text" value="Edit"/>
-    </object>
-    
-    <object name="cnt:addtogroup" type="HbAction">
-      <string name="text" value="Add to group"/>
-    </object>
-    
-    <object name="cnt:clearhistory" type="HbAction">
-      <string name="text" locid="txt_phob_opt_clear_history"/>
-    </object>
-        
-    <object name="cnt:setasfavorite" type="HbAction">
-     <string name="text" locid="txt_phob_opt_set_as_favorite"/>
-    </object>    
-    
-    <object name="cnt:removefromfavorite" type="HbAction">
-     <string name="text" locid="txt_phob_menu_remove_from_favorites"/>
-    </object>   
-        
-</hbdocument>
\ No newline at end of file
--- a/phonebookui/pbkcommonui/resources/pbkcommonui.qrc	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/resources/pbkcommonui.qrc	Thu Aug 05 14:31:09 2010 +0300
@@ -1,24 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <RCC>
     <qresource prefix="/xml" >
-        <file alias="contacts_actions.docml" >contacts_actions.docml</file>
-        <file alias="contacts_contactcard.docml" >contacts_contactcard.docml</file>
-        <file alias="contacts_ev.docml" >contacts_ev.docml</file>
-        <file alias="contacts_mc.docml" >contacts_mc.docml</file>
-        <file alias="contacts_if.docml" >contacts_if.docml</file>
-        <file alias="contacts_list.docml" >contacts_list.docml</file>
-        <file alias="contacts_namelist.docml" >contacts_namelist.docml</file>
-        <file alias="contacts_groupactions.docml" >contacts_groupactions.docml</file>
-        <file alias="contacts_history.docml" >contacts_history.docml</file>
-        <file alias="contacts_editor.docml" >contacts_editor.docml</file>
-        <file alias="contacts_sim.docml">contacts_sim.docml</file>
-        <file alias="contacts_favorite.docml" >contacts_favorite.docml</file>
-        <file alias="contacts_favmember.docml" >contacts_favmember.docml</file>
-        <file alias="contacts_collections.docml" >contacts_collections.docml</file>
-        <file alias="contacts_groupmembers.docml" >contacts_groupmembers.docml</file>
-        <file alias="contacts_detail_editor.docml" >contacts_detail_editor.docml</file>
-        <file alias="contacts_fetchdialog.docml" >contacts_fetchdialog.docml</file>
-		<file alias="contacts_settings.docml" >contacts_settings.docml</file>
+        <file alias="contacts_contactcard.docml" >contacts_contactcard.docml.bin</file>
+        <file alias="contacts_ev.docml" >contacts_ev.docml.bin</file>
+        <file alias="contacts_mc.docml" >contacts_mc.docml.bin</file>
+        <file alias="contacts_if.docml" >contacts_if.docml.bin</file>
+        <file alias="contacts_list.docml" >contacts_list.docml.bin</file>
+        <file alias="contacts_namelist.docml" >contacts_namelist.docml.bin</file>
+        <file alias="contacts_groupactions.docml" >contacts_groupactions.docml.bin</file>
+        <file alias="contacts_history.docml" >contacts_history.docml.bin</file>
+        <file alias="contacts_editor.docml" >contacts_editor.docml.bin</file>
+        <file alias="contacts_sim.docml">contacts_sim.docml.bin</file>
+        <file alias="contacts_favorite.docml" >contacts_favorite.docml.bin</file>
+        <file alias="contacts_favmember.docml" >contacts_favmember.docml.bin</file>
+        <file alias="contacts_collections.docml" >contacts_collections.docml.bin</file>
+        <file alias="contacts_groupmembers.docml" >contacts_groupmembers.docml.bin</file>
+        <file alias="contacts_detail_editor.docml" >contacts_detail_editor.docml.bin</file>
+        <file alias="contacts_fetchdialog.docml" >contacts_fetchdialog.docml.bin</file>
+        <file alias="contacts_settings.docml" >contacts_settings.docml.bin</file>
     </qresource>
     <qresource prefix="/style">
         <file alias="cnteditviewlistitem.hblistviewitem.widgetml">style/cnteditviewlistitem.hblistviewitem.widgetml</file>
--- a/phonebookui/pbkcommonui/src/cntbaseselectionview.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntbaseselectionview.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -52,7 +52,7 @@
     indexFeedback->setItemView(mListView);
     
     mSoftkey = new HbAction(Hb::BackNaviAction, mView);
-    connect( mSoftkey, SIGNAL(triggered()), this, SLOT(closeView()) );
+    connect( mSoftkey, SIGNAL(triggered()), this, SIGNAL(viewClosed()) );
 }
 
 CntBaseSelectionView::~CntBaseSelectionView()
@@ -105,12 +105,4 @@
     return mView;
 }
 
-void CntBaseSelectionView::closeView()
-{
-    emit viewClosed();
-    
-    CntViewParameters args;
-    mMgr->back( args );
-}
-
 // EOF
--- a/phonebookui/pbkcommonui/src/cntcollectionview.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntcollectionview.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -22,6 +22,7 @@
 #include "cntextensionmanager.h"
 #include "cntglobal.h"
 #include "cntfavourite.h"
+#include "cntdetailconst.h"
 #include "cntdebug.h"
 
 #include <cntuiextensionfactory.h>
@@ -30,7 +31,7 @@
 #include <hblistview.h>
 #include <hblistviewitem.h>
 #include <hbmenu.h>
-#include <hbnotificationdialog.h>
+#include <hbdevicenotificationdialog.h>
 #include <hbinputdialog.h>
 #include <hbdialog.h>
 #include <hbaction.h>
@@ -41,6 +42,7 @@
 #include <hbparameterlengthlimiter.h>
 
 #include <QActionGroup>
+#include <QApplication>
 #include <QList>
 
 const char *CNT_COLLECTIONVIEW_XML = ":/xml/contacts_collections.docml";
@@ -99,6 +101,8 @@
     mFindAction = static_cast<HbAction*>(mDocumentLoader.findObject("cnt:find"));
     connect(mFindAction, SIGNAL(triggered()), this, SLOT(showNamesViewWithFinder()));
     mExtensionAction = static_cast<HbAction*> (mDocumentLoader.findObject("cnt:activity"));
+    
+    connect( qApp, SIGNAL(aboutToQuit()), this, SLOT(notifyNewGroup()));
 }
 
 /*!
@@ -308,6 +312,7 @@
     
     HbLineEdit *lineEdit = popup->lineEdit();
     lineEdit->setInputMethodHints(Qt::ImhNoPredictiveText);
+    lineEdit->setMaxLength( CNT_GROUPNAME_MAXLENGTH );
     
     popup->setPromptText(hbTrId("txt_phob_title_new_group_name"));
     popup->clearActions();
@@ -397,15 +402,19 @@
 
 void CntCollectionView::notifyNewGroup()
 {
-    QString groupNameCreated = mHandledContact->displayLabel();
-    if (groupNameCreated.isEmpty())
+    if (mHandledContact != NULL)
     {
-        groupNameCreated = hbTrId("txt_phob_list_unnamed");
+        QString groupNameCreated = mHandledContact->displayLabel();
+        if (groupNameCreated.isEmpty())
+        {
+            groupNameCreated = hbTrId("txt_phob_list_unnamed");
+        }
+        HbDeviceNotificationDialog::notification(QString(), 
+                HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_new_group_1_created")).arg(groupNameCreated));
+
+        delete mHandledContact;
+        mHandledContact = NULL;
     }
-    HbNotificationDialog::launchDialog(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_new_group_1_created")).arg(groupNameCreated));
-
-    delete mHandledContact;
-    mHandledContact = NULL;
 }
 
 void CntCollectionView::refreshDataModel()
--- a/phonebookui/pbkcommonui/src/cntcontactcardview_p.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntcontactcardview_p.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -46,10 +46,7 @@
 #include <qversitcontactexporter.h>
 #include <qversitwriter.h>
 #include <xqservicerequest.h>
-#include <xqaiwrequest.h>
-#include <xqaiwdecl.h>
 #include <QTimer>  //Progress indication icon
-#include <logsservices.h>
 
 #include <cntdebug.h>
 #include "cntcontactcarddatacontainer.h"
@@ -66,6 +63,7 @@
 #include "cntactionlauncher.h"
 #include "cntpresencelistener.h"
 #include "cntactionpopup.h"
+#include "cntvcarddetailhandler.h"
 
 #define CNT_MAPTILE_PROGRESS_TIMER  100 //100 msec
 #define CNT_UNKNOWN_MAPTILE_STATUS  -1
@@ -93,7 +91,6 @@
     mContactAction(NULL),
     mBackKey(NULL),
     mImageLabel(NULL),
-    mRequest(NULL),
     mVCardIcon(NULL),
     mShareUi(NULL),
     mAcceptSendKey(true),
@@ -175,9 +172,6 @@
     
     delete mPresenceListener;
     mPresenceListener = NULL;
-	
-    delete mRequest;
-    mRequest = NULL;
     
     delete mMaptile;
     mMaptile = NULL;
@@ -232,10 +226,13 @@
     mArgs = aArgs;
     
     HbMainWindow* window = mView->mainWindow();
-    connect(window, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(setOrientation(Qt::Orientation)));
-    connect(window, SIGNAL(keyPressed(QKeyEvent*)), this, SLOT(keyPressed(QKeyEvent*)));
-    
-    setOrientation(window->orientation());
+    if (window)
+    {
+        connect(window, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(setOrientation(Qt::Orientation)));
+        window->installEventFilter(this);
+        
+        setOrientation(window->orientation());
+    }
         
     QContact contact = aArgs.value(ESelectedContact).value<QContact>();
     mContact = new QContact( contact );
@@ -1247,12 +1244,19 @@
         }   
     }
            
-    QString vCardName = QString(mContact->displayLabel().append(".vcf"));
+    QString vCardName;
+    if ( mContact->displayLabel().isEmpty() ) {
+        vCardName = hbTrId("txt_phob_list_unnamed").append(".vcf");
+    } else
+        vCardName = mContact->displayLabel().append(".vcf");
+    
     QString vCardPath = dir.absolutePath().append(QDir::separator());
     vCardPath.append(vCardName);
     vCardPath = QDir::toNativeSeparators(vCardPath);
-        
+    
     QVersitContactExporter exporter;
+    CntVCardDetailHandler hanlder;
+    exporter.setDetailHandler(&hanlder);
     // The vCard version needs to be 2.1 due to backward compatiblity when sending 
     if (exporter.exportContacts(list, QVersitDocument::VCard21Type))
     {
@@ -1337,7 +1341,7 @@
 {
     HbMenu *menu = new HbMenu();
     menu->addAction(hbTrId("txt_phob_menu_change_picture"), this, SLOT(doChangeImage()) );
-    if (mAvatar)
+    if (mAvatar && !mAvatar->imageUrl().isEmpty())
     {
         menu->addAction(hbTrId("txt_phob_menu_remove_image"), this, SLOT(doRemoveImage()) );
     }
@@ -1366,17 +1370,24 @@
     return mViewManager->contactManager(SYMBIAN_BACKEND);
 }
 
-void CntContactCardViewPrivate::keyPressed(QKeyEvent *event)
+bool CntContactCardViewPrivate::eventFilter(QObject *obj, QEvent *event)
 {
-    if (event->key() == Qt::Key_Yes )
+    if (event->type() == QEvent::KeyPress && obj == mView->mainWindow())
     {
-        sendKeyPressed();
+        QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
+        if (keyEvent->key() == Qt::Key_Yes)
+        {
+            return sendKeyPressed();
+        }
     }
+    return false;
 }
 
-void CntContactCardViewPrivate::sendKeyPressed()
+bool CntContactCardViewPrivate::sendKeyPressed()
 {   
     int count = 0;
+    bool keyConsumed = false;
+    
     for (int index = 0; index < mDataContainer->itemCount(); index++)
     {
         CntContactCardDataItem* dataItem = mDataContainer->dataItem(index);
@@ -1385,41 +1396,23 @@
             count++;
         }
     }
-    if (!count)
-    {
-        if (mRequest)
-        {
-            delete mRequest;
-            mRequest = 0;
-        }
-             
-        mRequest = mAppManager.create("com.nokia.symbian.ILogsView", "show(QVariantMap)", false);
-        
-        if (mRequest)
-        {
-            QList<QVariant> args;
-            QVariantMap map;
-            map.insert("view_index", QVariant(int(LogsServices::ViewAll)));
-            map.insert("show_dialpad", QVariant(true));
-            map.insert("dialpad_text", QVariant(QString()));
-            args.append(QVariant(map));
-            mRequest->setArguments(args);
-            mRequest->send();
-        }
-    }
-    else
+
+    if (count)
     {
         QContactDetail preferredDetail = mContact->preferredDetail("call");
         if (!preferredDetail.isEmpty())
         {
-            executeAction(*mContact, preferredDetail, "call"); 
+            keyConsumed = true;
+            executeAction(*mContact, preferredDetail, "call");
         }
         else if (count == 1 )
         {
+            keyConsumed = true;
             executeAction( *mContact, mContact->details<QContactPhoneNumber>().first(), "call"); 
         }
         else if(count >= 2 && mAcceptSendKey)
-        {   
+        {
+            keyConsumed = true;
             mAcceptSendKey = false;
             CntActionPopup *actionPopup = new CntActionPopup(mContact);
             actionPopup->showActionPopup("call");
@@ -1433,6 +1426,8 @@
             //ignore
         }
     }
+    
+    return keyConsumed;
 }
 
 void CntContactCardViewPrivate::sendKeyCancelSlot()
--- a/phonebookui/pbkcommonui/src/cntdefaultviewfactory.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntdefaultviewfactory.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -34,7 +34,6 @@
 #include "cntgroupactionsview.h"
 #include "cnthistoryview.h"
 #include "cnteditview.h"
-#include "cntmycardselectionview.h"
 #include "cntimportsview.h"
 #include "cntsettingsview.h"
 #include "cntextensionmanager.h"
@@ -61,8 +60,6 @@
         return new CntContactCardView();
     case myCardView:
         return new CntMyCardView();
-    case myCardSelectionView:
-        return new CntMyCardSelectionView();
     case collectionView:
         return new CntCollectionView(*mExtensionManager);
     case collectionFavoritesView:
--- a/phonebookui/pbkcommonui/src/cntdefaultviewmanager.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntdefaultviewmanager.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -193,10 +193,6 @@
     {
         connect(mMainWindow, SIGNAL(viewReady()), this, SLOT(deleteOldView()));
     }
-    else
-    {
-        mMainWindow->setInteractive( true );
-    }
     
     CNT_EXIT
 }
@@ -211,7 +207,8 @@
     {
         mOldView->deactivate();
 
-        mMainWindow->removeView(mOldView->view());
+        HbView* oldView = mOldView->view();
+        mMainWindow->removeView( oldView );
 
         if (!mOldView->isDefault())
         {
@@ -225,8 +222,6 @@
             mDefaults.insert( mOldView->viewId(), mOldView );
         }
     }
-
-    mMainWindow->setInteractive(true);
     
     CNT_EXIT
 }
@@ -234,8 +229,7 @@
 void CntDefaultViewManager::switchView(const CntViewParameters aArgs, QFlags<Hb::ViewSwitchFlag> flags)
 {
     CNT_ENTRY
-    
-    mMainWindow->setInteractive(false);
+
     int id = aArgs.value(EViewId).toInt();
     if ( id != noView )
     {
--- a/phonebookui/pbkcommonui/src/cntfetchcontactpopup.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntfetchcontactpopup.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -83,6 +83,7 @@
 CntFetchContactPopup::~CntFetchContactPopup()
 {
     delete mDoc;
+    delete mModel;
 }
 
 CntFetchContactPopup* CntFetchContactPopup::createMultiSelectionPopup( QString aTitle, QString aAction, QContactManager& aManager )
@@ -212,7 +213,6 @@
     }
         
     mMarkAll->setSelectedContactCount( mIdList.size() );
-    
     CNT_EXIT
 }
 
@@ -370,6 +370,8 @@
         {
             mHeading = new HbLabel( mTitle );
             mPopup->setHeadingWidget( mHeading );
+            qreal popupHeight = mPopup->mainWindow()->layoutRect().height();
+            mPopup->setMinimumHeight(popupHeight);
             mDoc->load( CNT_FETCHLIST_XML, multi ? "find_list" : "find_list_single");
         }
     }
@@ -384,6 +386,8 @@
         {
             mHeading = new HbLabel( mTitle );
             mPopup->setHeadingWidget( mHeading );
+            qreal popupHeight = mPopup->mainWindow()->layoutRect().height();
+            mPopup->setMinimumHeight(popupHeight);
             mDoc->load( CNT_FETCHLIST_XML, multi ? "find_empty" : "find_empty_single" );
         }
      }
--- a/phonebookui/pbkcommonui/src/cntfetchmarkall.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntfetchmarkall.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -59,10 +59,23 @@
 {
     mSelectionCount = aSelectedCount;
     mCounterLabel->setText( QString("%1/%2").arg(mSelectionCount).arg(mContactCount) );
+    
+    if ( mSelectionCount < mContactCount )
+    {
+        blockSignals( true );
+        mCheckBox->setCheckState( Qt::Unchecked );
+        blockSignals( false );
+    }
 }
 
 CntFetchMarkAll::~CntFetchMarkAll()
 {
+    delete mCheckBox;
+    mCheckBox = NULL;
+    delete mCounterLabel;
+    mCounterLabel = NULL;
+    delete mFrame;
+    mFrame = NULL;
 }
 
 // EOF
--- a/phonebookui/pbkcommonui/src/cntgroupactionsview.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntgroupactionsview.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -34,7 +34,12 @@
 #include <cntlistmodel.h>
 #include <hbframebackground.h>
 #include <hbnumbergrouping.h>
+#include <QKeyEvent> 
+#include <qtcontacts.h>
+#include <hbmainwindow.h>
+#include "cntactionlauncher.h"
 
+#include <QEvent>
 #include <QStandardItemModel>
 
 const char *CNT_GROUPACTIONSVIEW_XML = ":/xml/contacts_groupactions.docml";
@@ -44,7 +49,8 @@
 mModel(NULL),
 mViewManager(NULL),
 mListView(NULL),
-mPopupCount(0)
+mPopupCount(0),
+mIsExecutingAction(false)
 {
     bool ok = false;
     mDocumentLoader.load(CNT_GROUPACTIONSVIEW_XML, &ok);
@@ -171,6 +177,11 @@
     connect(mListView, SIGNAL(activated(const QModelIndex&)),
                 this, SLOT(listItemSelected(const QModelIndex&)));
     
+    HbMainWindow* window = mView->mainWindow();
+    if (window)
+    {
+        window->installEventFilter(this);
+    }
 }
 
 void CntGroupActionsView::populatelist(QString primaryText,HbIcon icon,QString secondaryText,QString action)
@@ -294,6 +305,51 @@
         }
 }
 
+bool CntGroupActionsView::eventFilter(QObject *obj, QEvent *event)
+{
+    if (event->type() == QEvent::KeyPress && obj == mView->mainWindow())
+    {
+        QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
+        if (keyEvent->key() == Qt::Key_Yes)
+        {
+            return sendKeyPressed();
+        }
+    }
+    return false;
+}
+
+bool CntGroupActionsView::sendKeyPressed()
+{   
+    QList<QContactPhoneNumber> numberDetails = mGroupContact->details<QContactPhoneNumber>();
+    bool keyConsumed = false;
+        
+    // check if conference call number is present
+    if (!numberDetails.isEmpty()) 
+    { 
+        executeConferenceCallAction( *mGroupContact, mGroupContact->details<QContactPhoneNumber>().first(), "call");
+        
+        keyConsumed = true;
+    }
+    
+    return keyConsumed;
+}
+
+void CntGroupActionsView::executeConferenceCallAction(QContact& aContact, const QContactDetail& aDetail, const QString& aAction)
+{
+    if (mIsExecutingAction)
+    {
+        return;
+    }
+    else
+    {
+        mIsExecutingAction = true;
+    }
+    
+    CntActionLauncher* other = new CntActionLauncher(*mViewManager->contactManager(SYMBIAN_BACKEND), aAction);
+    connect(other, SIGNAL(actionExecuted(CntActionLauncher*)), this, SLOT(actionExecuted(CntActionLauncher*)));
+    other->execute(aContact, aDetail);  
+}
+
 void CntGroupActionsView::actionCancelled()
 {
     //actionpopup cancelled, decrement counter
@@ -305,5 +361,6 @@
 {
     //cleanup
     aAction->deleteLater();
+    mIsExecutingAction = false;
 }
 
--- a/phonebookui/pbkcommonui/src/cntgroupdeletepopup.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntgroupdeletepopup.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -22,10 +22,10 @@
 #include <hblistview.h>
 #include <hblistviewitem.h>
 #include <qtcontacts.h>
+#include <hbmainwindow.h>
 
 CntGroupDeletePopup::CntGroupDeletePopup(QContactManager *manager, QGraphicsItem *parent):
     HbSelectionDialog(parent),
-    mListView(0),
     mContactManager(manager),
     mModel(0)
 {
@@ -44,41 +44,30 @@
     headingLabel->setHeading(hbTrId("txt_phob_opt_delete_groups"));
     
     setHeadingWidget(headingLabel);
-    
-    mListView = new HbListView(this);
-    
+
+    setSelectionMode( HbAbstractItemView::MultiSelection );
     mModel->initializeGroupsList();
-
-    //Get the index of the contacts
-    // Set the select option for those contacts in the selectionModel
-    mListView->setModel(mModel);
-    // set the listview to multiSelection mode, this will bring MarkAll functionality (from Orbit)
-    mListView->setSelectionMode(HbAbstractItemView::MultiSelection);
-    mListView->setFrictionEnabled(true);
-    mListView->setScrollingStyle(HbScrollArea::PanWithFollowOn);
-    
-    HbListViewItem *prototype = mListView->listItemPrototype();
-    prototype->setGraphicsSize(HbListViewItem::Thumbnail);
-    prototype->setStretchingStyle(HbListViewItem::StretchLandscape);
-    
-    setContentWidget(mListView);
-    
-    setTimeout(HbDialog::NoTimeout);
-    setDismissPolicy(HbDialog::NoDismiss);
-    setModal(true);
-    setAttribute(Qt::WA_DeleteOnClose, true);
-    
+    setModel(mModel);
     clearActions(); 
     HbAction *mPrimaryAction = new HbAction(hbTrId("txt_phob_button_delete_selected"), this);
     addAction(mPrimaryAction);
     
     HbAction *mSecondaryAction = new HbAction(hbTrId("txt_common_button_cancel"), this);
     addAction(mSecondaryAction);
+    
+    setTimeout(HbDialog::NoTimeout);
+    setDismissPolicy(HbDialog::NoDismiss);
+    setAttribute(Qt::WA_DeleteOnClose, true);
+    setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum );
+    
+    qreal heightToSet = mainWindow()->layoutRect().height();
+    setMinimumHeight(heightToSet);
 }
 
 QList<QContactLocalId> CntGroupDeletePopup::deleteGroup() const
 {
-    QModelIndexList indexes = mListView->selectionModel()->selection().indexes();
+
+    QModelIndexList indexes = selectedModelIndexes();
     QList<QContactLocalId> selectionList;
     for (int i = 0; i < indexes.count(); i++)
     {
--- a/phonebookui/pbkcommonui/src/cntgroupeditormodel.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntgroupeditormodel.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -46,6 +46,7 @@
     iNumberItem = new HbDataFormModelItem(type, hbTrId("txt_phob_formlabel_conference_number"));
     
     iNameItem->setContentWidgetData("text", iGroupName.customLabel());
+    iNameItem->setContentWidgetData("maxLength", CNT_GROUPNAME_MAXLENGTH);
     iNumberItem->setContentWidgetData("text", iGroupConfCallNumber.number() );
     
     HbDataFormModelItem* root = invisibleRootItem();
--- a/phonebookui/pbkcommonui/src/cntgroupmemberview.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntgroupmemberview.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -16,31 +16,8 @@
 */
 
 #include "cntgroupmemberview.h"
-#include "cntfetchcontactpopup.h"
-#include "cntcontactcardheadingitem.h"
-#include "cntglobal.h"
-#include "cntimagelabel.h"
-#include "cntimageutility.h"
-#include <hbnotificationdialog.h>
-#include <hbmessagebox.h>
-#include <hbmenu.h>
-#include <hblistview.h>
-#include <hblistviewitem.h>
-#include <hbframebackground.h>
-#include <hbindexfeedback.h>
-#include <hbscrollbar.h>
-#include <hbview.h>
-#include <hbaction.h>
-#include <hblabel.h>
-#include <hbparameterlengthlimiter.h>
-#include <thumbnailmanager_qt.h>
-#include <cntlistmodel.h>
-#include <hbmainwindow.h>
-#include <xqservicerequest.h>
-
-#include "cntdocumentloader.h"
-
-const char *CNT_GROUPMEMBERVIEW_XML = ":/xml/contacts_groupmembers.docml";
+#include "cntgroupmemberview_p.h"
+#include "cntabstractviewmanager.h"
 
 /*!
 \class CntGroupMemberView
@@ -57,469 +34,44 @@
 \a viewManager is the parent that creates this view. \a parent is a pointer to parent QGraphicsItem (by default this is 0)
 
 */
-CntGroupMemberView::CntGroupMemberView() :
-    mGroupContact(NULL),
-    mViewManager(NULL),
-    mHeadingItem(NULL),
-    mModel(NULL),
-    mImageLabel(NULL), 
-    mListView(NULL),
-    mAvatar(NULL)
+CntGroupMemberView::CntGroupMemberView() : d_ptr(new CntGroupMemberViewPrivate())
 {
-    mDocument = new CntDocumentLoader;
-    
-    bool ok;
-    mDocument->load( CNT_GROUPMEMBERVIEW_XML, &ok );
-    if ( !ok ){
-        qFatal( "Unable to load %S", CNT_GROUPMEMBERVIEW_XML );
-    }
-
-    mView = static_cast<HbView*>( mDocument->findWidget("view") );
-    
-    //back button
-    mSoftkey = new HbAction(Hb::BackNaviAction, mView);
-    connect(mSoftkey, SIGNAL(triggered()), this, SLOT(showPreviousView()));
-    
-    mImageLabel = static_cast<CntImageLabel*>(mDocument->findWidget("editViewImage"));
-    connect( mImageLabel, SIGNAL(iconClicked()), this, SLOT(openImageEditor()) );
-    connect( mImageLabel, SIGNAL(iconLongPressed(const QPointF&)), this, SLOT(drawImageMenu(const QPointF&)) );
-    
-    mListView = static_cast<HbListView*>( mDocument->findWidget("listView") );
-    connect(mListView, SIGNAL(longPressed(HbAbstractViewItem*,QPointF)), this,
-        SLOT(showContextMenu(HbAbstractViewItem*,QPointF)));
-    connect(mListView, SIGNAL(activated (const QModelIndex&)), this,
-        SLOT(showContactView(const QModelIndex&)));
-    
-    mHeadingItem = static_cast<CntContactCardHeadingItem*>( mDocument->findWidget("editViewHeading") );
-    connect(mHeadingItem, SIGNAL(passShortPressed(const QPointF&)), this, SLOT(openImageEditor()) );
-    connect(mHeadingItem, SIGNAL(passLongPressed(const QPointF&)), this, SLOT(drawImageMenu(const QPointF&)));
-
-    // menu actions
-    mEditGroupAction = static_cast<HbAction*>( mDocument->findObject("cnt:editgroupdetails"));
-    connect(mEditGroupAction, SIGNAL(triggered()), this, SLOT(editGroup()));
-    
-    // toolbar actions
-    mManageAction = static_cast<HbAction*>( mDocument->findObject("cnt:managemembers"));
-    connect(mManageAction, SIGNAL(triggered()), this, SLOT(manageMembers()));
-    mDeleteAction = static_cast<HbAction*>( mDocument->findObject("cnt:deletegroup"));
-    connect(mDeleteAction, SIGNAL(triggered()), this, SLOT(deleteGroup()));
-    mShowActionsAction = static_cast<HbAction*>( mDocument->findObject("cnt:groupactions"));
-    connect(mShowActionsAction, SIGNAL(triggered()), this, SLOT(openGroupActions()));
-    
-    // thumbnail manager
-    mThumbnailManager = new ThumbnailManager(this);
-    mThumbnailManager->setMode(ThumbnailManager::Default);
-    mThumbnailManager->setQualityPreference(ThumbnailManager::OptimizeForQuality);
-    mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailLarge);
-   
-    connect(mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void*, int, int)),
-               this, SLOT(thumbnailReady(QPixmap, void*, int, int)));
+    Q_D( CntGroupMemberView );
+    d->q_ptr = this;
 }
 
-/*!
-Destructor
-*/
 CntGroupMemberView::~CntGroupMemberView()
 {
-    mView->deleteLater();
-    
-    delete mGroupContact;
-    mGroupContact = NULL;
-    
-    delete mModel;
-    mModel = NULL;
-    
-    delete mAvatar;
-    mAvatar = NULL;
+    Q_D(CntGroupMemberView);
+    delete d;
 }
-
-void CntGroupMemberView::setOrientation(Qt::Orientation orientation)
-{
-    if (orientation == Qt::Vertical) 
-    {
-        // reading "portrait" section
-        mDocument->load( CNT_GROUPMEMBERVIEW_XML, "portrait" );
-    } 
-    else 
-    {
-        // reading "landscape" section
-        mDocument->load( CNT_GROUPMEMBERVIEW_XML, "landscape" );
-    }
-}
-
+    
 void CntGroupMemberView::activate( CntAbstractViewManager* aMgr, const CntViewParameters aArgs )
 {
-    mViewManager = aMgr;
-    mArgs = aArgs;
-    
-    if (mView->navigationAction() != mSoftkey)
-        {
-        mView->setNavigationAction(mSoftkey);   
-        }
-        
-    QVariant contact = mArgs.value( ESelectedGroupContact );
-    mGroupContact = new QContact( contact.value<QContact>() );
-    
-    HbMainWindow* window = mView->mainWindow();
-    if ( window )
-    {
-        connect(window, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(setOrientation(Qt::Orientation)));
-        setOrientation(window->orientation());
-    }
-    
-    mHeadingItem->setGroupDetails(mGroupContact);
-
-    // avatar
-    QList<QContactAvatar> details = mGroupContact->details<QContactAvatar>();
-    for (int i = 0;i < details.count();i++)
-    {
-        if (details.at(i).imageUrl().isValid())
-            {
-            mAvatar = new QContactAvatar(details.at(i));
-            mThumbnailManager->getThumbnail(mAvatar->imageUrl().toString());
-            break;
-            }
-    }
-    
-    // create list & model
-    mListView->setFrictionEnabled(true);
-    mListView->setScrollingStyle(HbScrollArea::PanWithFollowOn);
-    mListView->verticalScrollBar()->setInteractive(true);
-    mListView->setUniformItemSizes(true);
-    mListView->listItemPrototype()->setGraphicsSize(HbListViewItem::Thumbnail);
-    HbIndexFeedback *indexFeedback = new HbIndexFeedback(mView);
-    indexFeedback->setIndexFeedbackPolicy(HbIndexFeedback::IndexFeedbackSingleCharacter);
-    indexFeedback->setItemView(mListView);
-
-    HbFrameBackground frame;
-    frame.setFrameGraphicsName("qtg_fr_list_normal");
-    frame.setFrameType(HbFrameDrawer::NinePieces);
-    mListView->itemPrototypes().first()->setDefaultFrame(frame);
-    
-    createModel();
-    
-    if (mArgs.value(ESelectedAction).toString() == CNT_SAVE_ACTION)
-    {
-        QString name = getContactManager()->synthesizedContactDisplayLabel(*mGroupContact);
-        HbNotificationDialog::launchDialog(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_new_group_1_created").arg(name)));
-    }
+    Q_D(CntGroupMemberView);
+    d->activate(aMgr,aArgs);
 }
 
 void CntGroupMemberView::deactivate()
 {
-    
-}
-
-void CntGroupMemberView::showPreviousView()
-{
-    //save the contact if avatar has been changed.
-    QContact contact = mViewManager->contactManager( SYMBIAN_BACKEND )->contact(mGroupContact->localId());
-    if ( contact != *mGroupContact )
-    {
-        getContactManager()->saveContact(mGroupContact);
-    }
-    mViewManager->back(mArgs);
-}
-
-void CntGroupMemberView::openGroupActions()
-{
-    QVariant var;
-    var.setValue(*mGroupContact);
-    
-    mArgs.insert(EViewId, groupActionsView);
-    mArgs.insert(ESelectedGroupContact, var);
-    mViewManager->changeView(mArgs);
-}
-
-void CntGroupMemberView::manageMembers()
-{
-    QContactRelationshipFilter membersFilter;
-    membersFilter.setRelationshipType(QContactRelationship::HasMember);
-    membersFilter.setRelatedContactRole(QContactRelationship::First);
-    membersFilter.setRelatedContactId(mGroupContact->id());   
-    
-    mOriginalGroupMembers = getContactManager()->contactIds(membersFilter);
-    
-    QContactName contactName = mGroupContact->detail( QContactName::DefinitionName );
-    QString groupName = contactName.value( QContactName::FieldCustomLabel );
-    if (groupName.isEmpty())
-    {
-        groupName = hbTrId("txt_phob_list_unnamed");
-    }
-    
-    CntFetchContactPopup* popup = CntFetchContactPopup::createMultiSelectionPopup(
-            HbParameterLengthLimiter(hbTrId("txt_phob_title_members_of_1_group")).arg(groupName),
-            hbTrId("txt_common_button_save"),
-            *mViewManager->contactManager(SYMBIAN_BACKEND));
-    connect( popup, SIGNAL(fetchReady(QSet<QContactLocalId>)),this, SLOT(handleManageMembers(QSet<QContactLocalId>)) );
-    popup->setSelectedContacts( mOriginalGroupMembers.toSet() );
-    popup->showPopup();
-}
-
-void CntGroupMemberView::handleManageMembers(QSet<QContactLocalId> aIds)
-{
-    QList<QContactRelationship> removedMemberships;
-    QList<QContactRelationship> addedMemberships;
-
-    QSet<QContactLocalId> removedMembers = mOriginalGroupMembers.toSet() - aIds;
-    setRelationship(removedMembers, removedMemberships);
-
-    QSet<QContactLocalId> addedMembers = aIds - mOriginalGroupMembers.toSet();
-    setRelationship(addedMembers, addedMemberships);
-    
-    QMap<int, QContactManager::Error> errors;
-    if (!addedMemberships.isEmpty()) 
-    {
-        getContactManager()->saveRelationships(&addedMemberships, &errors);
-    }
-    
-    if (!removedMemberships.isEmpty()) 
-    {
-        getContactManager()->removeRelationships(removedMemberships, &errors);
-    }
+    Q_D(CntGroupMemberView);
+    d->deactivate();
 }
 
-void CntGroupMemberView::createModel()
-{
-    QContactRelationshipFilter rFilter;
-    rFilter.setRelationshipType(QContactRelationship::HasMember);
-    rFilter.setRelatedContactRole(QContactRelationship::First);
-    rFilter.setRelatedContactId(mGroupContact->id());
-
-    mModel = new CntListModel(getContactManager(), rFilter, false);
-    mListView->setModel(mModel);
-}
-
-void CntGroupMemberView::editGroup()
-{
-    mArgs.insert(EViewId, groupEditorView);
-    QVariant var;
-    var.setValue(*mGroupContact);
-    mArgs.insert(ESelectedGroupContact, var);
-    mViewManager->changeView(mArgs);
-}
-
-void CntGroupMemberView::deleteGroup()
+bool CntGroupMemberView::isDefault() const
 {
-    QContactName contactName = mGroupContact->detail( QContactName::DefinitionName );
-    QString groupName = contactName.value( QContactName::FieldCustomLabel );
-    if (groupName.isNull())
-    {
-        groupName = hbTrId("txt_phob_list_unnamed");
-    }
-    
-    HbLabel *headingLabel = new HbLabel();
-    headingLabel->setPlainText(HbParameterLengthLimiter(hbTrId("txt_phob_dialog_delete_1_group")).arg(groupName));
-    
-    HbMessageBox::question(hbTrId("txt_phob_dialog_only_group_will_be_removed_contac"), this, SLOT(handleDeleteGroup(int)),
-            HbMessageBox::Delete | HbMessageBox::Cancel, headingLabel);
-}
-
-void CntGroupMemberView::handleDeleteGroup(int action)
-{
-    if (action == HbMessageBox::Delete)
-    {
-        getContactManager()->removeContact(mGroupContact->localId());
-        showPreviousView();
-    }
-}
-
-/*!
-Called when a list item is longpressed
-*/
-void CntGroupMemberView::showContextMenu(HbAbstractViewItem *aItem, const QPointF &aCoords)
-{
-    QVariant data( aItem->modelIndex().row() );
-   
-    QModelIndex index = aItem->modelIndex();
-
-    HbMenu *menu = new HbMenu();
-    menu->setAttribute(Qt::WA_DeleteOnClose);
-    menu->setPreferredPos( aCoords );
-    
-    HbAction *removeFromGroupAction = 0;
-    HbAction *openContactAction = 0;
-    HbAction *editContactAction = 0;
-    HbAction *sendToHsAction = 0;
-
-    openContactAction = menu->addAction(hbTrId("txt_common_menu_open"));
-    editContactAction = menu->addAction(hbTrId("txt_common_menu_edit"));
-    removeFromGroupAction = menu->addAction(hbTrId("txt_phob_menu_remove_from_group"));
-    sendToHsAction = menu->addAction(hbTrId("txt_phob_menu_send_to_homescreen"));
-    
-    openContactAction->setData( data );
-    editContactAction->setData( data );
-    removeFromGroupAction->setData( data );
-    sendToHsAction->setData( data );
-
-    menu->open(this, SLOT(handleMenu(HbAction*)));
+    return false;
 }
 
-void CntGroupMemberView::handleMenu(HbAction* action)
-{
-    int row = action->data().toInt();
-    HbMenu *menuItem = static_cast<HbMenu*>(sender());
-    QModelIndex index = mModel->index(row);
-    
-    if ( action == menuItem->actions().first() )
-        {
-        showContactView(index);
-        }
-    else if (action == menuItem->actions().at(1))
-        {
-        editContact(index);
-        }
-    else if (action == menuItem->actions().at(2))
-        {
-        removeFromGroup(index);
-        }
-    else if (action == menuItem->actions().at(3))
-        {
-        sendToHs(index);
-        }
-}
-
-/*!
-Called after user clicked on the listview.
-*/
-void CntGroupMemberView::sendToHs(const QModelIndex &index)
+HbView* CntGroupMemberView::view() const
 {
-    QVariantHash preferences;
-    preferences["contactId"] = mModel->contact(index).id().localId();
-    
-    XQServiceRequest snd("com.nokia.symbian.IHomeScreenClient",
-                         "addWidget(QString,QVariantHash)",
-                         false);
-    snd << QString("contactwidgethsplugin");
-    snd << preferences;
-    snd.send();
-}
-
-/*!
-Called after user clicked on the listview.
-*/
-void CntGroupMemberView::showContactView(const QModelIndex &index)
-{
-    mArgs.insert(EViewId, contactCardView);
-    QVariant var;
-    var.setValue(mModel->contact(index));
-    mArgs.insert(ESelectedContact, var);
-    QVariant varGroup;
-    varGroup.setValue(*mGroupContact);
-    mArgs.insert(ESelectedGroupContact, varGroup);
-    mViewManager->changeView(mArgs);
-        
-}
-
-void CntGroupMemberView::removeFromGroup(const QModelIndex &index)
-{
-    // get contact id using index
-    QContact selectedContact = mModel->contact(index);
-    QContactRelationship relationship;
-    relationship.setRelationshipType(QContactRelationship::HasMember);
-    relationship.setFirst(mGroupContact->id());
-    relationship.setSecond(selectedContact.id());
-    getContactManager()->removeRelationship(relationship);
-}
-
-void CntGroupMemberView::editContact(const QModelIndex &index)
-{
-
-    mArgs.insert(EViewId, editView);
-    QVariant var;
-    var.setValue(mModel->contact(index));
-    mArgs.insert(ESelectedContact, var);
-    mViewManager->changeView(mArgs);
+    Q_D( const CntGroupMemberView );
+    return d->mView;
 }
 
-void CntGroupMemberView::thumbnailReady(const QPixmap& pixmap, void *data, int id, int error)
-{
-    Q_UNUSED(data);
-    Q_UNUSED(id);
-    Q_UNUSED(error);
-    if (!error)
-    {
-        HbIcon icon(pixmap);
-        mHeadingItem->setIcon(icon);
-        
-        mImageLabel->clear();
-        mImageLabel->setIcon(pixmap);
-    }
-}
-
-void CntGroupMemberView::openImageEditor()
+int CntGroupMemberView::viewId() const
 {
-    QVariant var;
-    var.setValue(*mGroupContact);
-                
-    // SelectedGroupContact is needed so we know which group to show
-    // when we come back to this view, and selected contact is needed
-    // for image editor to be able to assign the image to correct contact.
-    mArgs.insert(ESelectedGroupContact, var);
-    mArgs.insert(ESelectedContact, var);
-    
-    mArgs.insert(EViewId, imageEditorView );
-        
-    mViewManager->changeView( mArgs );
-}
-
-QContactManager* CntGroupMemberView::getContactManager()
-{
-    return mViewManager->contactManager(SYMBIAN_BACKEND);
-}
-
-void CntGroupMemberView::setRelationship(QSet<QContactLocalId>        &aLocalId,
-                                         QList<QContactRelationship>  &aRelationshipList)
-{
-    foreach (QContactLocalId id, aLocalId) {
-        QContact contact = getContactManager()->contact(id);
+    return groupMemberView;
+} 
+// EOF
 
-        QContactRelationship membership;
-        membership.setRelationshipType(QContactRelationship::HasMember);
-        membership.setFirst(mGroupContact->id());
-        membership.setSecond(contact.id());
-        aRelationshipList.append(membership);
-    }
-}
-
-/*!
-Draw the image specific content menu
-*/
-void CntGroupMemberView::drawImageMenu(const QPointF &aCoords)
-{
-    HbMenu *menu = new HbMenu();
-    HbAction *changeImageAction = menu->addAction(hbTrId("txt_phob_menu_change_picture"), this, SLOT(openImageEditor()));
-    if (mAvatar)
-    {
-        HbAction *removeAction = menu->addAction(hbTrId("txt_phob_menu_remove_image"), this, SLOT(removeImage()));
-    }
-    menu->setPreferredPos(aCoords);
-    menu->open();
-}
-
-
-void CntGroupMemberView::removeImage()
-{
-    if (mAvatar) 
-    {
-        if (!mAvatar->imageUrl().isEmpty())
-        {
-            bool success = mGroupContact->removeDetail(mAvatar);
-            // Check if image removable.
-            CntImageUtility imageUtility;
-            if(imageUtility.isImageRemovable(mAvatar->imageUrl().toString()))
-            {
-                imageUtility.removeImage(mAvatar->imageUrl().toString());
-            }
-            mAvatar->setImageUrl(QUrl());
-            mImageLabel->clear();
-            mImageLabel->setAvatarIcon(HbIcon("qtg_large_add_group_picture"));
-            mHeadingItem->setIcon(HbIcon("qtg_large_add_group_picture"));
-            mViewManager->contactManager( SYMBIAN_BACKEND )->saveContact(mGroupContact);
-       }
-    }
-}
-
-
-
-// end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/pbkcommonui/src/cntgroupmemberview_p.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -0,0 +1,526 @@
+/*
+* 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 "cntgroupmemberview_p.h"
+#include "cntfetchcontactpopup.h"
+#include "cntcontactcardheadingitem.h"
+#include "cntglobal.h"
+#include "cntimagelabel.h"
+#include "cntimageutility.h"
+#include <hbnotificationdialog.h>
+#include <hbmessagebox.h>
+#include <hbmenu.h>
+#include <hblistview.h>
+#include <hblistviewitem.h>
+#include <hbframebackground.h>
+#include <hbindexfeedback.h>
+#include <hbscrollbar.h>
+#include <hbview.h>
+#include <hbaction.h>
+#include <hblabel.h>
+#include <hbparameterlengthlimiter.h>
+#include <thumbnailmanager_qt.h>
+#include <cntlistmodel.h>
+#include <hbmainwindow.h>
+#include <xqservicerequest.h>
+
+#include "cntdocumentloader.h"
+
+const char *CNT_GROUPMEMBERVIEW_XML = ":/xml/contacts_groupmembers.docml";
+
+/*!
+\class CntGroupMemberViewPrivate
+\brief
+
+This is the group members view class that shows list of contacts for a user group. View contains a listview that shows actual contacts that
+have been added to a particular group. There is also toolbar and menu for navigating between different views. Instance of this class is
+created by our viewmanager but view itself is owned by the mainwindow which will also delete it in the end.
+
+*/
+
+/*!
+Constructor, initialize member variables.
+\a viewManager is the parent that creates this view. \a parent is a pointer to parent QGraphicsItem (by default this is 0)
+
+*/
+CntGroupMemberViewPrivate::CntGroupMemberViewPrivate() :
+    mGroupContact(NULL),
+    mViewManager(NULL),
+    mHeadingItem(NULL),
+    mModel(NULL),
+    mImageLabel(NULL), 
+    mListView(NULL),
+    mAvatar(NULL)
+{
+    mDocument = new CntDocumentLoader;
+    
+    bool ok;
+    mDocument->load( CNT_GROUPMEMBERVIEW_XML, &ok );
+    if ( !ok ){
+        qFatal( "Unable to load %S", CNT_GROUPMEMBERVIEW_XML );
+    }
+
+    mView = static_cast<HbView*>( mDocument->findWidget("view") );
+    
+    //back button
+    mSoftkey = new HbAction(Hb::BackNaviAction, mView);
+    connect(mSoftkey, SIGNAL(triggered()), this, SLOT(showPreviousView()));
+    
+    mImageLabel = static_cast<CntImageLabel*>(mDocument->findWidget("editViewImage"));
+    connect( mImageLabel, SIGNAL(iconClicked()), this, SLOT(openImageEditor()) );
+    connect( mImageLabel, SIGNAL(iconLongPressed(const QPointF&)), this, SLOT(drawImageMenu(const QPointF&)) );
+    
+    mListView = static_cast<HbListView*>( mDocument->findWidget("listView") );
+    connect(mListView, SIGNAL(longPressed(HbAbstractViewItem*,QPointF)), this,
+        SLOT(showContextMenu(HbAbstractViewItem*,QPointF)));
+    connect(mListView, SIGNAL(activated (const QModelIndex&)), this,
+        SLOT(showContactView(const QModelIndex&)));
+    
+    mHeadingItem = static_cast<CntContactCardHeadingItem*>( mDocument->findWidget("editViewHeading") );
+    connect(mHeadingItem, SIGNAL(passShortPressed(const QPointF&)), this, SLOT(openImageEditor()) );
+    connect(mHeadingItem, SIGNAL(passLongPressed(const QPointF&)), this, SLOT(drawImageMenu(const QPointF&)));
+
+    // menu actions
+    mEditGroupAction = static_cast<HbAction*>( mDocument->findObject("cnt:editgroupdetails"));
+    connect(mEditGroupAction, SIGNAL(triggered()), this, SLOT(editGroup()));
+    
+    // toolbar actions
+    mManageAction = static_cast<HbAction*>( mDocument->findObject("cnt:managemembers"));
+    connect(mManageAction, SIGNAL(triggered()), this, SLOT(manageMembers()));
+    mDeleteAction = static_cast<HbAction*>( mDocument->findObject("cnt:deletegroup"));
+    connect(mDeleteAction, SIGNAL(triggered()), this, SLOT(deleteGroup()));
+    mShowActionsAction = static_cast<HbAction*>( mDocument->findObject("cnt:groupactions"));
+    connect(mShowActionsAction, SIGNAL(triggered()), this, SLOT(openGroupActions()));
+    
+    // thumbnail manager
+    mThumbnailManager = new ThumbnailManager(this);
+    mThumbnailManager->setMode(ThumbnailManager::Default);
+    mThumbnailManager->setQualityPreference(ThumbnailManager::OptimizeForQuality);
+    mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailLarge);
+   
+    connect(mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void*, int, int)),
+               this, SLOT(thumbnailReady(QPixmap, void*, int, int)));
+}
+
+/*!
+Destructor
+*/
+CntGroupMemberViewPrivate::~CntGroupMemberViewPrivate()
+{
+    mView->deleteLater();
+    
+    delete mGroupContact;
+    mGroupContact = NULL;
+    
+    delete mModel;
+    mModel = NULL;
+    
+    delete mAvatar;
+    mAvatar = NULL;
+}
+
+void CntGroupMemberViewPrivate::setOrientation(Qt::Orientation orientation)
+{
+    if (orientation == Qt::Vertical) 
+    {
+        // reading "portrait" section
+        mDocument->load( CNT_GROUPMEMBERVIEW_XML, "portrait" );
+    } 
+    else 
+    {
+        // reading "landscape" section
+        mDocument->load( CNT_GROUPMEMBERVIEW_XML, "landscape" );
+    }
+}
+
+void CntGroupMemberViewPrivate::activate( CntAbstractViewManager* aMgr, const CntViewParameters aArgs )
+{
+    mViewManager = aMgr;
+    mArgs = aArgs;
+    
+    if (mView->navigationAction() != mSoftkey)
+        {
+        mView->setNavigationAction(mSoftkey);   
+        }
+        
+    QVariant contact = mArgs.value( ESelectedGroupContact );
+    mGroupContact = new QContact( contact.value<QContact>() );
+    
+    HbMainWindow* window = mView->mainWindow();
+    if ( window )
+    {
+        connect(window, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(setOrientation(Qt::Orientation)));
+        setOrientation(window->orientation());
+    }
+    
+    mHeadingItem->setGroupDetails(mGroupContact);
+
+    // avatar
+    QList<QContactAvatar> details = mGroupContact->details<QContactAvatar>();
+    for (int i = 0;i < details.count();i++)
+    {
+        if (details.at(i).imageUrl().isValid())
+            {
+            mAvatar = new QContactAvatar(details.at(i));
+            mThumbnailManager->getThumbnail(mAvatar->imageUrl().toString());
+            break;
+            }
+    }
+    
+    // create list & model
+    mListView->setFrictionEnabled(true);
+    mListView->setScrollingStyle(HbScrollArea::PanWithFollowOn);
+    mListView->verticalScrollBar()->setInteractive(true);
+    mListView->setUniformItemSizes(true);
+    mListView->listItemPrototype()->setGraphicsSize(HbListViewItem::Thumbnail);
+    HbIndexFeedback *indexFeedback = new HbIndexFeedback(mView);
+    indexFeedback->setIndexFeedbackPolicy(HbIndexFeedback::IndexFeedbackSingleCharacter);
+    indexFeedback->setItemView(mListView);
+
+    HbFrameBackground frame;
+    frame.setFrameGraphicsName("qtg_fr_list_normal");
+    frame.setFrameType(HbFrameDrawer::NinePieces);
+    mListView->itemPrototypes().first()->setDefaultFrame(frame);
+    
+    createModel();
+    
+    if (mArgs.value(ESelectedAction).toString() == CNT_SAVE_ACTION)
+    {
+        QString name = getContactManager()->synthesizedContactDisplayLabel(*mGroupContact);
+        HbNotificationDialog::launchDialog(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_new_group_1_created").arg(name)));
+    }
+}
+
+void CntGroupMemberViewPrivate::deactivate()
+{
+}
+
+void CntGroupMemberViewPrivate::showPreviousView()
+{
+    Q_Q(CntGroupMemberView);
+    
+    emit q->backPressed();
+    
+    //save the contact if avatar has been changed.
+    QContact contact = mViewManager->contactManager( SYMBIAN_BACKEND )->contact(mGroupContact->localId());
+    if ( contact != *mGroupContact )
+    {
+        getContactManager()->saveContact(mGroupContact);
+    }
+    mViewManager->back(mArgs);
+}
+
+void CntGroupMemberViewPrivate::openGroupActions()
+{
+    QVariant var;
+    var.setValue(*mGroupContact);
+    
+    mArgs.insert(EViewId, groupActionsView);
+    mArgs.insert(ESelectedGroupContact, var);
+    mViewManager->changeView(mArgs);
+}
+
+void CntGroupMemberViewPrivate::manageMembers()
+{
+    QContactRelationshipFilter membersFilter;
+    membersFilter.setRelationshipType(QContactRelationship::HasMember);
+    membersFilter.setRelatedContactRole(QContactRelationship::First);
+    membersFilter.setRelatedContactId(mGroupContact->id());   
+    
+    mOriginalGroupMembers = getContactManager()->contactIds(membersFilter);
+    
+    QContactName contactName = mGroupContact->detail( QContactName::DefinitionName );
+    QString groupName = contactName.value( QContactName::FieldCustomLabel );
+    if (groupName.isEmpty())
+    {
+        groupName = hbTrId("txt_phob_list_unnamed");
+    }
+    
+    CntFetchContactPopup* popup = CntFetchContactPopup::createMultiSelectionPopup(
+            HbParameterLengthLimiter(hbTrId("txt_phob_title_members_of_1_group")).arg(groupName),
+            hbTrId("txt_common_button_save"),
+            *mViewManager->contactManager(SYMBIAN_BACKEND));
+    connect( popup, SIGNAL(fetchReady(QSet<QContactLocalId>)),this, SLOT(handleManageMembers(QSet<QContactLocalId>)) );
+    popup->setSelectedContacts( mOriginalGroupMembers.toSet() );
+    popup->showPopup();
+}
+
+void CntGroupMemberViewPrivate::handleManageMembers( QSet<QContactLocalId> aIds )
+{
+    QList<QContactRelationship> removedMemberships;
+    QList<QContactRelationship> addedMemberships;
+
+    QSet<QContactLocalId> removedMembers = mOriginalGroupMembers.toSet() - aIds;
+    setRelationship(removedMembers, removedMemberships);
+
+    QSet<QContactLocalId> addedMembers = aIds - mOriginalGroupMembers.toSet();
+    setRelationship(addedMembers, addedMemberships);
+    
+    QMap<int, QContactManager::Error> errors;
+    if (!addedMemberships.isEmpty()) 
+    {
+        getContactManager()->saveRelationships(&addedMemberships, &errors);
+    }
+    
+    if (!removedMemberships.isEmpty()) 
+    {
+        getContactManager()->removeRelationships(removedMemberships, &errors);
+    }
+}
+
+void CntGroupMemberViewPrivate::createModel()
+{
+    QContactRelationshipFilter rFilter;
+    rFilter.setRelationshipType(QContactRelationship::HasMember);
+    rFilter.setRelatedContactRole(QContactRelationship::First);
+    rFilter.setRelatedContactId(mGroupContact->id());
+
+    mModel = new CntListModel(getContactManager(), rFilter, false);
+    mListView->setModel(mModel);
+}
+
+void CntGroupMemberViewPrivate::editGroup()
+{
+    mArgs.insert(EViewId, groupEditorView);
+    QVariant var;
+    var.setValue(*mGroupContact);
+    mArgs.insert(ESelectedGroupContact, var);
+    mViewManager->changeView(mArgs);
+}
+
+void CntGroupMemberViewPrivate::deleteGroup()
+{
+    QContactName contactName = mGroupContact->detail( QContactName::DefinitionName );
+    QString groupName = contactName.value( QContactName::FieldCustomLabel );
+    if (groupName.isNull())
+    {
+        groupName = hbTrId("txt_phob_list_unnamed");
+    }
+    
+    HbLabel *headingLabel = new HbLabel();
+    headingLabel->setPlainText(HbParameterLengthLimiter(hbTrId("txt_phob_dialog_delete_1_group")).arg(groupName));
+    
+    HbMessageBox::question(hbTrId("txt_phob_dialog_only_group_will_be_removed_contac"), this, SLOT(handleDeleteGroup(int)),
+            HbMessageBox::Delete | HbMessageBox::Cancel, headingLabel);
+}
+
+void CntGroupMemberViewPrivate::handleDeleteGroup(int action)
+{
+    if (action == HbMessageBox::Delete)
+    {
+        getContactManager()->removeContact(mGroupContact->localId());
+        showPreviousView();
+    }
+}
+
+/*!
+Called when a list item is longpressed
+*/
+void CntGroupMemberViewPrivate::showContextMenu(HbAbstractViewItem *aItem, const QPointF &aCoords)
+{
+    QVariant data( aItem->modelIndex().row() );
+   
+    QModelIndex index = aItem->modelIndex();
+
+    HbMenu *menu = new HbMenu();
+    menu->setAttribute(Qt::WA_DeleteOnClose);
+    menu->setPreferredPos( aCoords );
+    
+    HbAction *removeFromGroupAction = 0;
+    HbAction *openContactAction = 0;
+    HbAction *editContactAction = 0;
+    HbAction *sendToHsAction = 0;
+
+    openContactAction = menu->addAction(hbTrId("txt_common_menu_open"));
+    editContactAction = menu->addAction(hbTrId("txt_common_menu_edit"));
+    removeFromGroupAction = menu->addAction(hbTrId("txt_phob_menu_remove_from_group"));
+    sendToHsAction = menu->addAction(hbTrId("txt_phob_menu_send_to_homescreen"));
+    
+    openContactAction->setData( data );
+    editContactAction->setData( data );
+    removeFromGroupAction->setData( data );
+    sendToHsAction->setData( data );
+
+    menu->open(this, SLOT(handleMenu(HbAction*)));
+}
+
+void CntGroupMemberViewPrivate::handleMenu(HbAction* action)
+{
+    int row = action->data().toInt();
+    HbMenu *menuItem = static_cast<HbMenu*>(sender());
+    QModelIndex index = mModel->index(row);
+    
+    if ( action == menuItem->actions().first() )
+        {
+        showContactView(index);
+        }
+    else if (action == menuItem->actions().at(1))
+        {
+        editContact(index);
+        }
+    else if (action == menuItem->actions().at(2))
+        {
+        removeFromGroup(index);
+        }
+    else if (action == menuItem->actions().at(3))
+        {
+        sendToHs(index);
+        }
+}
+
+/*!
+Called after user clicked on the listview.
+*/
+void CntGroupMemberViewPrivate::sendToHs(const QModelIndex &index)
+{
+    QVariantHash preferences;
+    preferences["contactId"] = mModel->contact(index).id().localId();
+    
+    XQServiceRequest snd("com.nokia.symbian.IHomeScreenClient",
+                         "addWidget(QString,QVariantHash)",
+                         false);
+    snd << QString("contactwidgethsplugin");
+    snd << preferences;
+    snd.send();
+}
+
+/*!
+Called after user clicked on the listview.
+*/
+void CntGroupMemberViewPrivate::showContactView(const QModelIndex &index)
+{
+    mArgs.insert(EViewId, contactCardView);
+    QVariant var;
+    var.setValue(mModel->contact(index));
+    mArgs.insert(ESelectedContact, var);
+    QVariant varGroup;
+    varGroup.setValue(*mGroupContact);
+    mArgs.insert(ESelectedGroupContact, varGroup);
+    mViewManager->changeView(mArgs);
+        
+}
+
+void CntGroupMemberViewPrivate::removeFromGroup(const QModelIndex &index)
+{
+    // get contact id using index
+    QContact selectedContact = mModel->contact(index);
+    QContactRelationship relationship;
+    relationship.setRelationshipType(QContactRelationship::HasMember);
+    relationship.setFirst(mGroupContact->id());
+    relationship.setSecond(selectedContact.id());
+    getContactManager()->removeRelationship(relationship);
+}
+
+void CntGroupMemberViewPrivate::editContact(const QModelIndex &index)
+{
+
+    mArgs.insert(EViewId, editView);
+    QVariant var;
+    var.setValue(mModel->contact(index));
+    mArgs.insert(ESelectedContact, var);
+    mViewManager->changeView(mArgs);
+}
+
+void CntGroupMemberViewPrivate::thumbnailReady(const QPixmap& pixmap, void *data, int id, int error)
+{
+    Q_UNUSED(data);
+    Q_UNUSED(id);
+    Q_UNUSED(error);
+    if (!error)
+    {
+        HbIcon icon(pixmap);
+        mHeadingItem->setIcon(icon);
+        
+        mImageLabel->clear();
+        mImageLabel->setIcon(pixmap);
+    }
+}
+
+void CntGroupMemberViewPrivate::openImageEditor()
+{
+    QVariant var;
+    var.setValue(*mGroupContact);
+       
+    // only group contact is assigned since we want to only
+    // change the groups image
+    mArgs.insert(ESelectedGroupContact, var);
+    
+    mArgs.insert(EViewId, imageEditorView );
+        
+    mViewManager->changeView( mArgs );
+}
+
+QContactManager* CntGroupMemberViewPrivate::getContactManager()
+{
+    return mViewManager->contactManager(SYMBIAN_BACKEND);
+}
+
+void CntGroupMemberViewPrivate::setRelationship(QSet<QContactLocalId>        &aLocalId,
+                                         QList<QContactRelationship>  &aRelationshipList)
+{
+    foreach (QContactLocalId id, aLocalId) {
+        QContact contact = getContactManager()->contact(id);
+
+        QContactRelationship membership;
+        membership.setRelationshipType(QContactRelationship::HasMember);
+        membership.setFirst(mGroupContact->id());
+        membership.setSecond(contact.id());
+        aRelationshipList.append(membership);
+    }
+}
+
+/*!
+Draw the image specific content menu
+*/
+void CntGroupMemberViewPrivate::drawImageMenu(const QPointF &aCoords)
+{
+    HbMenu *menu = new HbMenu();
+    HbAction *changeImageAction = menu->addAction(hbTrId("txt_phob_menu_change_picture"), this, SLOT(openImageEditor()));
+    if (mAvatar && !mAvatar->imageUrl().isEmpty())
+    {
+        HbAction *removeAction = menu->addAction(hbTrId("txt_phob_menu_remove_image"), this, SLOT(removeImage()));
+    }
+    menu->setPreferredPos(aCoords);
+    menu->open();
+}
+
+
+void CntGroupMemberViewPrivate::removeImage()
+{
+    if (mAvatar) 
+    {
+        if (!mAvatar->imageUrl().isEmpty())
+        {
+            bool success = mGroupContact->removeDetail(mAvatar);
+            // Check if image removable.
+            CntImageUtility imageUtility;
+            if(imageUtility.isImageRemovable(mAvatar->imageUrl().toString()))
+            {
+                imageUtility.removeImage(mAvatar->imageUrl().toString());
+            }
+            mAvatar->setImageUrl(QUrl());
+            mImageLabel->clear();
+            mImageLabel->setAvatarIcon(HbIcon("qtg_large_add_group_picture"));
+            mHeadingItem->setIcon(HbIcon("qtg_large_add_group_picture"));
+            getContactManager()->saveContact(mGroupContact);
+       }
+    }
+}
+
+
+
+// end of file
--- a/phonebookui/pbkcommonui/src/cntimageeditorview.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntimageeditorview.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -127,11 +127,19 @@
     HbMainWindow* window = mView->mainWindow();
     if ( window )
     {
-    connect(window, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(setOrientation(Qt::Orientation)));
-    setOrientation(window->orientation());
+        connect(window, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(setOrientation(Qt::Orientation)));
+        setOrientation(window->orientation());
     }
     
-    mContact = new QContact(mArgs.value(ESelectedContact).value<QContact>());
+    if ( mArgs.contains(ESelectedContact))
+    {
+        mContact = new QContact(mArgs.value(ESelectedContact).value<QContact>());
+    }
+    
+    if ( mArgs.contains(ESelectedGroupContact) && !mContact ) 
+    {
+        mContact = new QContact(mArgs.value(ESelectedGroupContact).value<QContact>());
+    }
     
     QString myCard = mArgs.value( EMyCard ).toString();
     QContactLocalId localId = mContact->localId();
@@ -288,8 +296,18 @@
     QVariant var;
     var.setValue(*mContact);
     
-    mArgs.insert(ESelectedContact, var);
-    mArgs.insert(ESelectedGroupContact, var);
+    // If the arguments didn't originally contain "normal" contact,
+    // then the group contact should be updated. This case applies only
+    // when group image is edited
+    if ( !mArgs.contains(ESelectedContact) )
+    {
+        mArgs.insert(ESelectedGroupContact, var);
+    }
+    else
+    {
+        mArgs.insert(ESelectedContact, var);
+    }
+    
     mArgs.insert(ECustomParam, viewId());
     mViewManager->back( mArgs );
 }
--- a/phonebookui/pbkcommonui/src/cntimportsview.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntimportsview.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -37,6 +37,8 @@
 #include <hbparameterlengthlimiter.h>
 #include <hblistviewitem.h>
 #include <hbstringutil.h>
+#include <QCoreApplication>
+#include <hbdevicenotificationdialog.h>
 
 const char *CNT_IMPORT_UI_XML = ":/xml/contacts_sim.docml";
 const int KTimerValue = 1; // used as 1 msec timer for saving ADN contacts from SIM   
@@ -59,7 +61,8 @@
     mAdnStoreEntries(0),
     mSdnStoreEntries(0),
     mSimError(0),
-    mWaitingForAdnCache(0)
+    mWaitingForAdnCache(0),
+    mImportInProgress(false)
 {
     bool ok = false;
     mDocumentLoader.load(CNT_IMPORT_UI_XML, &ok);
@@ -111,6 +114,7 @@
     Q_UNUSED(aArgs);
     //back button
     HbMainWindow* window = mView->mainWindow();
+          
     if (mView->navigationAction() != mSoftkey)
     {
         mView->setNavigationAction(mSoftkey);
@@ -290,6 +294,7 @@
     
     mListView->setModel(mModel);
     mListView->setSelectionMode(HbAbstractItemView::NoSelection);
+    connect(qApp, SIGNAL(aboutToQuit()), this, SLOT(endKeyPressed()));
 }
 
 void CntImportsView::simInfoErrorMessage(int infoError)
@@ -324,6 +329,7 @@
 {
 
     bool started = false;
+    mImportInProgress = true;
 
     delete mFetchRequestADN;
     mContactSimManagerADN = mViewManager->contactManager(SIM_BACKEND_ADN);
@@ -371,6 +377,7 @@
 void CntImportsView::stopSimImport()
 {
     mImportSimPopup->close();
+    mImportInProgress = false;
     if (mFetchIsDone)
     {
         // indicates that timer has been started
@@ -423,6 +430,7 @@
             mListView->reset();
         }
     }
+   
 }
 
 void CntImportsView::importFetchResultReceivedADN()
@@ -585,6 +593,7 @@
         // no SDN contacts to fetch
         showSimImportResults();
         mImportSimPopup->close();
+        mImportInProgress = false;
         // Importing finished, go back to NamesView
         showPreviousView();
     }
@@ -603,6 +612,7 @@
         showSimImportResults();
         mSaveSimContactsListSDN.clear(); 
         mImportSimPopup->close();
+        mImportInProgress = false;
         // Importing finished, go back to NamesView
         showPreviousView();
     }
@@ -669,6 +679,7 @@
         showSimImportResults();
         mSaveSimContactsListSDN.clear(); 
         mImportSimPopup->close();
+        mImportInProgress = false;
         // Importing finished, go back to NamesView
         showPreviousView();
     }   
@@ -708,6 +719,7 @@
         {
             //dismiss wait note
             mImportSimPopup->close();
+            mImportInProgress = false;
             //and show error note
             simInfoErrorMessage(KErrAccessDenied);
         }
@@ -735,4 +747,14 @@
     }
 }
 
+void CntImportsView::endKeyPressed()
+{   
+    if(mImportInProgress && !mSimError)
+    {
+        QString results = hbTrId("txt_phob_dpophead_ln_contacts_imported").arg(mSaveCount).arg(mAdnStoreEntries + mSdnStoreEntries);
+        HbDeviceNotificationDialog::notification(QString(),results);
+    }    
+}
+
+
 // EOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/pbkcommonui/src/cntkeygrabber.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -0,0 +1,101 @@
+/*
+* 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 "cntkeygrabber.h"
+
+#include <logsservices.h>
+#include <hbmainwindow.h>
+#include <xqaiwrequest.h>
+#include <xqaiwdecl.h>
+#include <xqappmgr.h>
+#include <QCoreApplication>
+#include <QKeyEvent>
+
+/*!
+    Key press event handler for default actions when pressing either send or end key.
+    End key closes the application and send key opens dialer. Default functionality
+    can be overwritten to have view-specific functionality by installing an additional 
+    event filter for the main window.
+    
+    See CntGroupActionsView for an example.
+*/
+CntKeyGrabber::CntKeyGrabber(HbMainWindow *window, QObject *parent) :
+    QObject(parent),
+    mMainWindow(window),
+    mRequest(NULL)
+{
+    mMainWindow->installEventFilter(this);
+}
+
+/*!
+    Destructor
+*/
+CntKeyGrabber::~CntKeyGrabber()
+{
+    delete mRequest;
+}
+
+/*!
+    Listens to events coming to the QObject obj (in this case HbMainWindow instance) and
+    grabs/handles the necessary ones.
+
+    \param obj QObject to which the event was sent to
+    \param event QEvent that happened (key press, mouse press etc...)
+    \return bool true if the event was handled (and thus it wont be passed on anymore)
+*/
+bool CntKeyGrabber::eventFilter(QObject *obj, QEvent *event)
+{
+    if (event->type() == QEvent::KeyPress && obj == mMainWindow)
+    {
+        QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
+        
+        if (keyEvent->key() == Qt::Key_No )
+        {
+            qApp->exit();
+            
+            return true;
+        }
+        else if (keyEvent->key() == Qt::Key_Yes)
+        {
+            XQApplicationManager appManager;
+            
+            if (mRequest)
+            {
+                delete mRequest;
+                mRequest = NULL;
+            }
+            
+            mRequest = appManager.create(XQI_LOGS_VIEW, XQOP_LOGS_SHOW, false);
+            
+            if (mRequest)
+            {
+                QList<QVariant> args;
+                QVariantMap map;
+                map.insert(XQLOGS_VIEW_INDEX, QVariant(int(LogsServices::ViewAll)));
+                map.insert(XQLOGS_SHOW_DIALPAD, QVariant(true));
+                map.insert(XQLOGS_DIALPAD_TEXT, QVariant(QString()));
+                args.append(QVariant(map));
+                mRequest->setArguments(args);
+                mRequest->send();
+            }
+            
+            return true;
+        }
+    }
+
+    return QObject::eventFilter(obj, event);
+}
--- a/phonebookui/pbkcommonui/src/cntmainwindow.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntmainwindow.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -18,11 +18,7 @@
 #include "cntmainwindow.h"
 #include "cntdefaultviewmanager.h"
 #include "cntviewnavigator.h"
-#include <QCoreApplication>
-#include <xqaiwrequest.h>
-#include <xqaiwdecl.h>
-#include <xqappmgr.h>
-#include <logsservices.h>
+#include "cntkeygrabber.h"
 #include <cntdebug.h>
 
 CntMainWindow::CntMainWindow(QWidget *parent, int defaultView)
@@ -32,6 +28,8 @@
 {
     CNT_ENTRY
     
+    CntKeyGrabber *keyGrabber = new CntKeyGrabber(this, this);
+    
     if (defaultView != noView)
     {
         CntViewNavigator* navigator = new CntViewNavigator(this);
@@ -67,40 +65,4 @@
     CNT_EXIT
 }
 
-/*
- * Lets let views handle send/end key press events, because if toolbar or menu has been focused
- * the view wont get the key press events
- */
-void CntMainWindow::keyPressEvent(QKeyEvent *event)
-{
-    if (event->key() == Qt::Key_Yes && mDefaultView != noView)
-    {
-        if (mViewManager->currentViewId() == contactCardView)
-        {
-            emit keyPressed(event);
-        }
-        else
-        {
-            XQApplicationManager appManager;   
-            XQAiwRequest* request = appManager.create("com.nokia.symbian.ILogsView", "show(QVariantMap)", false);
-            
-            if (request)
-            {
-                QList<QVariant> args;
-                QVariantMap map;
-                map.insert("view_index", QVariant(int(LogsServices::ViewAll)));
-                map.insert("show_dialpad", QVariant(true));
-                map.insert("dialpad_text", QVariant(QString()));
-                args.append(QVariant(map));
-                request->setArguments(args);
-                request->send();
-            }
-        }
-    }
-    else
-    {
-        HbMainWindow::keyPressEvent(event);
-    }
-}
-
 // end of file
--- a/phonebookui/pbkcommonui/src/cntmycardselectionview.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
-* 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 "cntmycardselectionview.h"
-#include <QModelIndex>
-#include <cntlistmodel.h>
-#include <hblistview.h>
-#include <qcontact.h>
-
-CntMyCardSelectionView::CntMyCardSelectionView() : CntBaseSelectionView()
-{
-    connect(mListView, SIGNAL(activated(const QModelIndex&)), this, SLOT(onListViewActivated(const QModelIndex&)));
-}
-
-CntMyCardSelectionView::~CntMyCardSelectionView()
-{
-}
-
-/*!
-Set index to mycard
-*/
-void CntMyCardSelectionView::onListViewActivated(const QModelIndex& index)
-{
-    if (index.isValid())
-    {  
-        QContact contact = mListModel->contact(index);
-        QContactManager* mgr = mMgr->contactManager(SYMBIAN_BACKEND);
-        mgr->setSelfContactId(contact.localId());
-        
-        removeFromGroup(&contact);
-        
-        CntViewParameters params;
-        params.insert(EViewId, namesView);
-        mMgr->changeView(params);
-    }
-}
-    
-void CntMyCardSelectionView::removeFromGroup(const QContact* aContact)
-{
-    QContactDetailFilter groupFilter;
-    groupFilter.setDetailDefinitionName(QContactType::DefinitionName, QContactType::FieldType);
-    groupFilter.setValue(QLatin1String(QContactType::TypeGroup));
-
-    QContactManager* mgr = mMgr->contactManager(SYMBIAN_BACKEND);
-    QList<QContactLocalId> groupContactIds = mgr->contactIds(groupFilter);
-    if (!groupContactIds.isEmpty())
-    {
-        for(int i = 0;i < groupContactIds.count();i++)
-        {
-            QContact groupContact = mgr->contact(groupContactIds.at(i));
-            QContactRelationship relationship;
-            relationship.setRelationshipType(QContactRelationship::HasMember);
-            relationship.setFirst(groupContact.id());
-            relationship.setSecond(aContact->id());
-            mgr->removeRelationship(relationship);  
-         }
-    }
-}
-
--- a/phonebookui/pbkcommonui/src/cntnamesview_p.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntnamesview_p.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -47,6 +47,8 @@
 #include <hbmessagebox.h>
 #include <hbparameterlengthlimiter.h>
 
+#include <QInputContext>
+
 const char *CNT_CONTACTLIST_XML = ":/xml/contacts_namelist.docml";
 static const int CNT_MIN_ROW_COUNT = 2;
 
@@ -186,6 +188,10 @@
     CNT_ENTRY
     
     mViewManager = aMgr;
+    if (mView->mainWindow() != NULL && !(mView->visibleItems() & Hb::AllItems))
+    {
+        hideFinder();
+    }
     
     if (!mListModel) {
         QContactDetailFilter filter;
@@ -238,14 +244,8 @@
 {
     CNT_ENTRY
     HbMainWindow* win = mView->mainWindow();
-    // in UTs there is no mainwindow and therefore calling HbView::visibleItems() would cause a crash
     if ( win != NULL)
     {
-        if (!(mView->visibleItems() & Hb::AllItems))
-        {
-            hideFinder();
-        }
-    
         CntApplication* cntApp = static_cast<CntApplication*>(qApp);
         disconnect(win, SIGNAL(viewReady()), cntApp, SIGNAL(applicationReady()));
     }
@@ -277,6 +277,16 @@
     {
         editor->setText("");
         editor->setFocus();
+        
+        // This opens the VKB
+        QInputContext *ic = qApp->inputContext();
+        if (ic)
+        {
+            QEvent *event = new QEvent(QEvent::RequestSoftwareInputPanel);
+            ic->filterEvent(event);
+            delete event;
+        }
+
     }
 
     CNT_EXIT
@@ -320,6 +330,8 @@
     mImportSim->setVisible(false);
     mNewContact->setVisible(false);
     mMultipleDeleter->setVisible(false);
+    HbAction* settings = static_cast<HbAction*>(document()->findObject("cnt:settings") );
+    settings->setVisible(false);
     
     CNT_EXIT
 }
@@ -328,9 +340,6 @@
 {
     CNT_ENTRY
     
-    mVirtualKeyboard->closeKeypad();
-    mView->setMaximumHeight(-1);
-    
     document()->load( CNT_CONTACTLIST_XML, "no_find" );
     mView->showItems(Hb::AllItems);
     
@@ -349,6 +358,8 @@
     mNewContact->setVisible(true);
     mImportSim->setVisible(true);
     mMultipleDeleter->setVisible(true);
+    HbAction* settings = static_cast<HbAction*>(document()->findObject("cnt:settings") );
+    settings->setVisible(true);
 
     CNT_EXIT    
 }
@@ -504,6 +515,7 @@
         if (mMenu) 
         {
             delete mMenu;
+            mMenu = NULL;
         }
         mMenu = mMenuBuilder->actionMenu( contact, mListModel->myCardId() );
         mMenu->setPreferredPos( aPoint );
--- a/phonebookui/phonebookapp/phonebookapp.pro	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookapp/phonebookapp.pro	Thu Aug 05 14:31:09 2010 +0300
@@ -64,8 +64,8 @@
         
         SKINICON = qtg_large_phonebook 
 
-        :BLD_INF_RULES.prj_exports += "resources/phonebook.splashml \epoc32\release\winscw\udeb\z\resource\hb\splashml\phonebook.splashml
-        :BLD_INF_RULES.prj_exports += "resources/phonebook.splashml \epoc32\data\z\resource\hb\splashml\phonebook.splashml
-        :BLD_INF_RULES.prj_exports += "resources/phonebook.docml \epoc32\release\winscw\udeb\z\resource\hb\splashml\phonebook.docml
-        :BLD_INF_RULES.prj_exports += "resources/phonebook.docml \epoc32\data\z\resource\hb\splashml\phonebook.docml
+        :BLD_INF_RULES.prj_exports += "resources/phonebook.splashml /epoc32/release/winscw/udeb/z/resource/hb/splashml/phonebook.splashml
+        :BLD_INF_RULES.prj_exports += "resources/phonebook.splashml /epoc32/data/z/resource/hb/splashml/phonebook.splashml
+        :BLD_INF_RULES.prj_exports += "resources/phonebook.docml /epoc32/release/winscw/udeb/z/resource/hb/splashml/phonebook.docml
+        :BLD_INF_RULES.prj_exports += "resources/phonebook.docml /epoc32/data/z/resource/hb/splashml/phonebook.docml
 }
\ No newline at end of file
--- a/phonebookui/phonebookapp/src/main.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookapp/src/main.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -15,8 +15,7 @@
 *
 */
 
-#include <QTranslator>
-#include <QLocale>
+#include <hbtranslator.h>
 #include "cntmainwindow.h"
 #include "cntappservicehandler.h"
 #include "cntglobal.h"
@@ -29,11 +28,9 @@
 
     CntApplication a( argc, argv );
 
-    QTranslator translator;
-    QString lang = QLocale::system().name();
-    QString path = "z:/resource/qt/translations/";
-    translator.load(path + "contacts_" + lang);
-    a.installTranslator(&translator);
+    //For translation, loading and installing translator
+    HbTranslator translator("contacts");
+    translator.loadCommon();
     
     CntAppServiceHandler serviceHandler;
     CntMainWindow mainWindow;
--- a/phonebookui/phonebookservices/inc/cntservicecontactfetchview.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/inc/cntservicecontactfetchview.h	Thu Aug 05 14:31:09 2010 +0300
@@ -21,8 +21,10 @@
 #include <QObject>
 
 #include "cntbaseselectionview.h"
+#include <cntservicescontact.h>
 #include "cntabstractserviceprovider.h"
 
+class CntServicesContact;
 
 class CntServiceContactFetchView : public CntBaseSelectionView
 {
@@ -38,9 +40,20 @@
     void aboutToOpenView(CntAbstractViewManager* aMgr, const CntViewParameters viewParameters);
     void closeFetchView();
     void cancelFetch();
+    void popupContactAction(QContact& aContact,QContactDetail contactDetail, QString aAction);
+    void actionPopupCancelSlot();
+    
+private:
+    void serviceCallMessageAction(QContact& aContact, QString aAction);
+    void serviceEmailAction(QContact& aContact);
+    void serviceAllAction(QContact& aContact);
+    void showPreviousView();
 
 private:
     CntAbstractServiceProvider& mProvider;
+    QString mAction;
+    CntServicesContactList mServiceList;
+    int mIndex;
 };
 
 #endif /* CNTSERVICECONTACTFETCHVIEW_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/phonebookservices/inc/cntservicegroupmemberview.h	Thu Aug 05 14:31:09 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* 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:
+*
+*/
+
+#ifndef CNTSERVICEGROUPMEMBERVIEW_H
+#define CNTSERVICEGROUPMEMBERVIEW_H
+
+#include <QObject>
+#include "cntgroupmemberview.h"
+
+class CntServiceHandler;
+class CntAbstractServiceProvider;
+
+class CntServiceGroupMemberView : public CntGroupMemberView
+{
+    Q_OBJECT
+
+public:
+    CntServiceGroupMemberView( CntAbstractServiceProvider& aServiceProvider );
+    ~CntServiceGroupMemberView();
+
+    int viewId() const { return serviceGroupMemberView; }
+    
+private slots:
+    void closeGroupMemberView();
+
+private:
+    CntAbstractServiceProvider& mProvider;
+   
+};
+
+#endif // CNTSERVICEGROUPMEMBERVIEW_H
+
+// EOF
--- a/phonebookui/phonebookservices/inc/cntserviceproviderviewing.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/inc/cntserviceproviderviewing.h	Thu Aug 05 14:31:09 2010 +0300
@@ -53,6 +53,12 @@
      * @param aValue The value for the field.
      */
     void openTemporaryContactCard( QString aFieldName, QString aFieldValue );
+    
+    /**
+     * Opens Group Member View.
+     * @param aContactId
+     */
+    void openGroup( int aContactId );
 
 private: // from CntAbstractServiceProvider
     void CompleteServiceAndCloseApp(const QVariant& retValue);
--- a/phonebookui/phonebookservices/inc/cntservices.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/inc/cntservices.h	Thu Aug 05 14:31:09 2010 +0300
@@ -133,6 +133,14 @@
      */
     void launchContactCard(int contactId,
         CntAbstractServiceProvider& aServiceProvider );
+    
+    /**
+     * Opens Group member view.
+     * @param contactId The contact ID
+     * @param aServiceProvider The service provider
+     */
+    void launchGroupMemberView(int contactId,
+        CntAbstractServiceProvider& aServiceProvider );
 
     /**
      * Opens Contact Card for non-saved contact.
@@ -163,6 +171,7 @@
     void removeNotSupportedFields(QContact& contact);
     void removeNotSupportedDetails(QContact& contact);
     void fillOnlineAccount( QContactOnlineAccount& account, const QString& value, const QString& subType, bool defaultForOnlineAccountIsImpp);
+    QContactManager* contactManager();
 
 private: // from CntAbstractServiceProvider
     void CompleteServiceAndCloseApp(const QVariant& retValue);
--- a/phonebookui/phonebookservices/phonebookservices.pro	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/phonebookservices.pro	Thu Aug 05 14:31:09 2010 +0300
@@ -38,6 +38,7 @@
            inc/cntservicecontactselectionview.h \
            inc/cntserviceeditview.h \
            inc/cntservicecontactcardview.h \
+           inc/cntservicegroupmemberview.h \
            inc/cntserviceassigncontactcardview.h \
            inc/cntserviceviewfactory.h \
            inc/cntservices.h \
@@ -55,6 +56,7 @@
            src/cntservicecontactselectionview.cpp \
            src/cntserviceeditview.cpp \
            src/cntservicecontactcardview.cpp \
+           src/cntservicegroupmemberview.cpp \
            src/cntserviceassigncontactcardview.cpp \
            src/cntserviceviewfactory.cpp \
            src/cntservices.cpp \
--- a/phonebookui/phonebookservices/src/cntservicecontactcardview.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/src/cntservicecontactcardview.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -18,6 +18,7 @@
 #include "cntservicecontactcardview.h"
 #include "cntabstractserviceprovider.h"
 #include "cntdebug.h"
+#include <cntservicescontact.h>
 
 /*!
 Constructor, initialize member variables.
@@ -47,9 +48,8 @@
 void CntServiceContactCardView::closeContactCard()
 {
     CNT_ENTRY
-    int retValue = -2; // Dummy return value. Not relevant.
     QVariant variant;
-    variant.setValue(retValue);
+    variant.setValue(KCntServicesTerminated);
     mProvider.CompleteServiceAndCloseApp(variant);
     CNT_EXIT
 }
--- a/phonebookui/phonebookservices/src/cntservicecontactfetchview.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/src/cntservicecontactfetchview.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -26,6 +26,7 @@
 #include <hblistview.h>
 #include <hbdocumentloader.h>
 #include <hbaction.h>
+#include "cntactionpopup.h"
 
 #include <QCoreApplication>
 
@@ -35,7 +36,6 @@
     {
     HbAction* cancel = static_cast<HbAction*>( mDocument->findObject( "cnt:cancel" ) );
     mView->menu()->addAction( cancel );
-    
     connect(cancel,  SIGNAL(triggered()), this, SLOT(cancelFetch()) );
     connect( this, SIGNAL(viewClosed()), this, SLOT(closeFetchView()) );
     connect( this, SIGNAL(viewOpened(CntAbstractViewManager*, const CntViewParameters)), this, SLOT(aboutToOpenView(CntAbstractViewManager*, const CntViewParameters)) );
@@ -58,44 +58,171 @@
 
 void CntServiceContactFetchView::closeFetchView()
 {
-    CntServicesContactList serviceList;
     QContactManager* mgr = mMgr->contactManager(SYMBIAN_BACKEND);
     QModelIndexList temp = mListView->selectionModel()->selection().indexes();
+    mIndex = 0;
     for(int i = 0; i < temp.count(); i++ )
     {
         QContact contact = mListModel->contact(temp.at(i));
-        CntServicesContact servicesContact;
-
-        //get the name
-        servicesContact.mDisplayName = contact.displayLabel();
-
-        //get the phonenumber
-        QList<QContactPhoneNumber> phonenumbers = contact.details<QContactPhoneNumber>();
-        if(phonenumbers.count() > 0)
+        if (mAction == KCntActionCall)
+        {
+            serviceCallMessageAction(contact, KCntActionCall);
+        }
+        else if (mAction == KCntActionSms )
         {
-            servicesContact.mPhoneNumber = phonenumbers.first().number();
+            serviceCallMessageAction(contact, "message");
+        }
+        else if (mAction == KCntActionEmail)
+        {
+            serviceEmailAction(contact);
         }
         else
         {
-            servicesContact.mPhoneNumber = "";
+            serviceAllAction(contact);
         }
+    }
+    showPreviousView();
+}
+
+void CntServiceContactFetchView::serviceCallMessageAction(QContact& aContact, QString aAction)
+{
+    CntServicesContact servicesContact;
+    //get the phonenumber
+    QList<QContactPhoneNumber> phonenumbers = aContact.details<QContactPhoneNumber>();
+    
+    Q_ASSERT_X( phonenumbers.count() > 0, "serviceCallMessageAction", "Number count is zero");
+    
+    QContactDetail detail = aContact.preferredDetail(aAction);
+    if (!detail.isEmpty())
+    {
+        //Set preferred detail for services
+        QContactPhoneNumber number = detail;
+        servicesContact.mDisplayName = aContact.displayLabel();
+        servicesContact.mPhoneNumber = number.number();
+        servicesContact.mEmailAddress = "";
+        servicesContact.mContactId = aContact.localId();
+        mServiceList.append(servicesContact);
+    }
+    else 
+    {
+        // show popup for call numbers
+        CntActionPopup *actionPopup = new CntActionPopup(&aContact);
+        bool popup = actionPopup->showActionPopup(aAction);
+        if(popup)
+        {
+            //if call numbers are present wait for signals
+            mIndex++;
+            connect( actionPopup, SIGNAL(executeContactAction(QContact&,QContactDetail, QString)), this, 
+                    SLOT(popupContactAction(QContact&, QContactDetail, QString)));
+            connect( actionPopup, SIGNAL(actionPopupCancelPressed()), this, 
+                                SLOT(actionPopupCancelSlot()));
+        }
+        else 
+        {
+            //else delete popup if no call number present
+            delete actionPopup;
+        }
+    }
+}
 
+void CntServiceContactFetchView::serviceEmailAction(QContact& aContact)
+{
+    CntServicesContact servicesContact;
+    //get the email address
+    QList<QContactEmailAddress> emailAddresses = aContact.details<QContactEmailAddress>();
+    
+    Q_ASSERT_X( emailAddresses.count() > 0, "serviceEmailAction", "email address count is zero");
+    
+    QContactDetail detail = aContact.preferredDetail("email");
+    if (!detail.isEmpty())
+    {
+        //Set preferred detail for services
+        QContactEmailAddress email = detail;
+        servicesContact.mDisplayName = aContact.displayLabel();
+        servicesContact.mPhoneNumber = "";
+        servicesContact.mEmailAddress = email.emailAddress();
+        servicesContact.mContactId = aContact.localId();
+        mServiceList.append(servicesContact);
+        
+    }
+    else 
+    {
+        // show popup for email id's 
+        CntActionPopup *actionPopup = new CntActionPopup(&aContact);
+        bool popup = actionPopup->showActionPopup("email");
+        if(popup)
+        {
+            //if email id's are present wait for signals
+            mIndex++;
+            connect( actionPopup, SIGNAL(executeContactAction(QContact&,QContactDetail, QString)), this, 
+                    SLOT(popupContactAction(QContact&, QContactDetail, QString)));
+            connect( actionPopup, SIGNAL(actionPopupCancelPressed()), this, 
+                                SLOT(actionPopupCancelSlot()));
+        }
+        else 
+        {
+            //else delete popup if no email present
+            delete actionPopup;
+        }
+    }
+}
+
+void CntServiceContactFetchView::serviceAllAction(QContact& aContact)
+{
+    CntServicesContact servicesContact;
+    servicesContact.mDisplayName = aContact.displayLabel();
+    QContactDetail callDetail = aContact.preferredDetail("call");
+    //Check for preferredDetail from call
+    // if not present check for preferredDetail for message
+    // if not present pick first phone number
+    if (!callDetail.isEmpty())
+    {
+        QContactPhoneNumber number = callDetail;
+        servicesContact.mPhoneNumber = number.number();
+    }
+    else
+    {
+        QContactDetail smsDetail = aContact.preferredDetail("message");
+        if (!callDetail.isEmpty())
+        {
+            QContactPhoneNumber number = smsDetail;
+            servicesContact.mPhoneNumber = number.number();
+        }
+        else 
+        {
+            QList<QContactPhoneNumber> phonenumbers = aContact.details<QContactPhoneNumber>();
+            if(phonenumbers.count() > 0)
+            {
+            servicesContact.mPhoneNumber = phonenumbers.first().number();
+            }
+            else
+            {
+            servicesContact.mPhoneNumber = "";
+            }
+        }
+    }
+    
+    QContactDetail emailDetail = aContact.preferredDetail("email");
+    if (!emailDetail.isEmpty())
+    {
+        QContactEmailAddress email = emailDetail;
+        servicesContact.mEmailAddress = email.emailAddress();
+    }
+    else
+    {
         //get first email address
-        QList<QContactEmailAddress> emailAddresses = contact.details<QContactEmailAddress>();
+        QList<QContactEmailAddress> emailAddresses = aContact.details<QContactEmailAddress>();
         if(emailAddresses.count() > 0)
         {
             servicesContact.mEmailAddress = emailAddresses.first().emailAddress();
         }
-        //contact id
-        servicesContact.mContactId = contact.localId();
-
-        //append it to the list
-        serviceList.append(servicesContact);
+        else 
+        {
+            servicesContact.mEmailAddress = "";
+        }
     }
-
-    QVariant variant;
-    variant.setValue(serviceList);
-    mProvider.CompleteServiceAndCloseApp(variant);
+    servicesContact.mContactId = aContact.localId();
+    mServiceList.append(servicesContact);
 }
 
 void CntServiceContactFetchView::aboutToOpenView(CntAbstractViewManager* aMgr, const CntViewParameters aArgs)
@@ -107,26 +234,26 @@
     mView->setTitle(title);
     
     // Set action filter
-    QString action = aArgs.value(ESelectedAction).toString();
+    mAction = aArgs.value(ESelectedAction).toString();
     // ESelectedAction is defined in cntviewparams.h
 
     // Has never been implemented.
     //QString filterStr = aArgs.value(KCntServiceViewParamFilter).toString();
     // KCntServiceViewParamFilter is defined in cntserviceviewparams.h
 
-    if (action == KCntActionSms)
+    if (mAction == KCntActionSms)
         {
             QContactActionFilter actionFilter;
             actionFilter.setActionName("message");
             mListModel->setFilter(actionFilter);
         }
-        else if (action == KCntActionCall)
+        else if (mAction == KCntActionCall)
         {
             QContactActionFilter actionFilter;
             actionFilter.setActionName("call");
             mListModel->setFilter(actionFilter);
         }
-        else if (action == KCntActionEmail)
+        else if (mAction == KCntActionEmail)
         {
             QContactActionFilter actionFilter;
             actionFilter.setActionName("email");
@@ -148,4 +275,59 @@
         }
 }
 
+void CntServiceContactFetchView::popupContactAction(QContact& aContact,QContactDetail contactDetail, QString aAction)
+{
+    if (aAction.compare("call", Qt::CaseInsensitive) == 0 
+           || aAction.compare("message", Qt::CaseInsensitive) == 0 )
+       {       
+           CntServicesContact servicesContact;
+           QContactPhoneNumber number = static_cast<QContactPhoneNumber>(contactDetail);
+           QString name = aContact.displayLabel();
+           servicesContact.mDisplayName = aContact.displayLabel();
+           servicesContact.mPhoneNumber = number.number();
+           servicesContact.mEmailAddress = "";
+           servicesContact.mContactId = aContact.localId();
+           mServiceList.append(servicesContact);
+           mIndex--;
+       }
+       else if (aAction.compare("email", Qt::CaseInsensitive) == 0 )
+       {
+           CntServicesContact servicesContact;
+           QContactEmailAddress email = static_cast<QContactEmailAddress>(contactDetail);
+           servicesContact.mDisplayName = aContact.displayLabel();
+           servicesContact.mPhoneNumber = "";
+           servicesContact.mEmailAddress = email.emailAddress();
+           servicesContact.mContactId = aContact.localId();
+           mServiceList.append(servicesContact);
+           mIndex--;
+       }
+    
+    if (aContact.preferredDetail(aAction).isEmpty() && (aAction == "call" || aAction == "message" || aAction == "email"))
+    {
+        aContact.setPreferredDetail(aAction, contactDetail);
+        //return value will be ignored because we cannot do anything if it fails.
+        mMgr->contactManager(SYMBIAN_BACKEND)->saveContact(&aContact);
+    }
+    
+    showPreviousView();
+}
+
+void CntServiceContactFetchView::actionPopupCancelSlot()
+{
+    mIndex--;
+    showPreviousView();
+}
+
+void CntServiceContactFetchView::showPreviousView()
+{
+    if(mIndex==0)
+    {
+        QVariant variant;
+        variant.setValue(mServiceList);
+        mProvider.CompleteServiceAndCloseApp(variant);
+        
+        CntViewParameters args;
+        mMgr->back( args );
+    }
+}
 // EOF
--- a/phonebookui/phonebookservices/src/cntservicecontactselectionview.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/src/cntservicecontactselectionview.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -56,6 +56,8 @@
     QVariant variant;
     variant.setValue(KCntServicesReturnValueContactNotModified);
     mProvider.CompleteServiceAndCloseApp(variant);
+    CntViewParameters args;
+    mMgr->back( args );
 }
 
 void CntServiceContactSelectionView::aboutToOpenView(CntAbstractViewManager* aMgr, const CntViewParameters viewParameters)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/phonebookservices/src/cntservicegroupmemberview.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -0,0 +1,57 @@
+/*
+* 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 "cntservicegroupmemberview.h"
+#include "cntabstractserviceprovider.h"
+#include "cntdebug.h"
+#include <cntservicescontact.h>
+
+/*!
+Constructor, initialize member variables.
+\a viewManager is the parent that creates this view. \a parent is a pointer to parent QGraphicsItem (by default this is 0)
+*/
+CntServiceGroupMemberView::CntServiceGroupMemberView( CntAbstractServiceProvider& aServiceProvider ) : 
+    CntGroupMemberView(),
+    mProvider( aServiceProvider )
+{
+    CNT_ENTRY
+    connect(this, SIGNAL(backPressed()), this, SLOT(closeGroupMemberView()));
+    CNT_EXIT
+}
+
+/*!
+Destructor
+*/
+CntServiceGroupMemberView::~CntServiceGroupMemberView()
+{
+    CNT_ENTRY
+    CNT_EXIT
+}
+
+/*!
+Close the view (quits the service as well)
+*/
+void CntServiceGroupMemberView::closeGroupMemberView()
+{
+    CNT_ENTRY
+    QVariant variant;
+    variant.setValue(KCntServicesTerminated);
+    mProvider.CompleteServiceAndCloseApp(variant);
+    CNT_EXIT
+}
+
+// end of file
--- a/phonebookui/phonebookservices/src/cntserviceproviderviewing.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/src/cntserviceproviderviewing.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -60,18 +60,27 @@
     CNT_EXIT
     }
 
+void CntServiceProviderViewing::openGroup( int aContactId )
+    {
+    CNT_ENTRY
+    mCurrentRequestIndex = setCurrentRequestAsync();
+    mServices.setQuittable(requestInfo().isEmbedded());
+    mServices.launchGroupMemberView( aContactId, *this );
+    CNT_EXIT
+    }
+
 void CntServiceProviderViewing::CompleteServiceAndCloseApp(const QVariant& retValue)
     {
     CNT_ENTRY
     connect(this, SIGNAL(returnValueDelivered()), qApp, SLOT(quit()));
     if ( mCurrentRequestIndex != 0 )
-        {
+    {
         const bool success = completeRequest(mCurrentRequestIndex, retValue);
         if ( !success )
         {
             CNT_LOG_ARGS("Failed to complete highway request.");
         }
         mCurrentRequestIndex = 0;
-        }
+    }
     CNT_EXIT
     }
--- a/phonebookui/phonebookservices/src/cntservices.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/src/cntservices.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -293,7 +293,7 @@
     CntViewParameters params;
     params.insert(EViewId, serviceEditView);
 
-    QContact contact = mViewManager->contactManager(SYMBIAN_BACKEND)->contact(contactId);
+    QContact contact = contactManager()->contact(contactId);
     QVariant varContact;
     varContact.setValue(contact);
     params.insert(ESelectedContact, varContact);
@@ -308,8 +308,7 @@
     CNT_ENTRY
     mCurrentProvider = &aServiceProvider;
 
-    QContactManager manager("symbian");
-    QContact contact = manager.contact(aContactId);
+    QContact contact = contactManager()->contact(aContactId);
 
     // Launch Contact Card view
     CntViewParameters params;
@@ -372,6 +371,23 @@
     CNT_EXIT
 }
 
+void CntServices::launchGroupMemberView(int aContactId,
+    CntAbstractServiceProvider& aServiceProvider )
+{
+    CNT_ENTRY
+    mCurrentProvider = &aServiceProvider;
+
+    QContact contact = contactManager()->contact(aContactId);
+
+    // Launch Group member view
+    CntViewParameters params;
+    params.insert(EViewId, serviceGroupMemberView);
+    QVariant var;
+    var.setValue(contact);
+    params.insert(ESelectedGroupContact, var);
+    mViewManager->changeView( params );
+    CNT_EXIT
+}
 
 void CntServices::setQuittable(bool quittable)
 {
@@ -411,7 +427,6 @@
 void CntServices::removeNotSupportedFields(QContact& contact)
 {
     CNT_ENTRY
-    QContactManager cm("symbian");
     QList<QContactDetail>   removeList;
     
     // Not all fields are supported in symbian back-end
@@ -449,7 +464,10 @@
                 if(phoneDetail.subTypes().contains(QContactPhoneNumber::SubTypeVoice)
                    || phoneDetail.subTypes().contains(QContactPhoneNumber::SubTypeMessagingCapable))
                 {
-                    detail.removeValue(QContactPhoneNumber::FieldSubTypes);
+                    // Default to subtype mobile
+                    QStringList l;
+                    l << QLatin1String(QContactPhoneNumber::SubTypeMobile);
+                    detail.setValue(QContactPhoneNumber::FieldSubTypes, l);
                     contact.saveDetail(&detail);
                 }
             }
@@ -509,9 +527,9 @@
 {
     CNT_ENTRY
     if (  mCurrentProvider )
-        {
+    {
         mCurrentProvider->CompleteServiceAndCloseApp( retValue );
-        }
+    }
     CNT_EXIT
 }
 
@@ -519,14 +537,21 @@
 {
     CNT_ENTRY
     if (  mCurrentProvider )
-        {
+    {
         // Complete the service with KCntServicesTerminated return value
         QVariant var(KCntServicesTerminated);
         mCurrentProvider->CompleteServiceAndCloseApp( var );
-        }
+    }
     CNT_EXIT
 }
 
+QContactManager* CntServices::contactManager()
+{
+    if ( mViewManager )
+        return mViewManager->contactManager(SYMBIAN_BACKEND);
+    return NULL;
+}
+
 Q_IMPLEMENT_USER_METATYPE(CntServicesContact)
 Q_IMPLEMENT_USER_METATYPE_NO_OPERATORS(CntServicesContactList)
 
--- a/phonebookui/phonebookservices/src/cntserviceviewfactory.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/src/cntserviceviewfactory.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -23,6 +23,7 @@
 #include "cntservicecontactselectionview.h"
 
 #include "cntservicecontactcardview.h"
+#include "cntservicegroupmemberview.h"
 #include "cntservicecontactfetchview.h"
 #include "cntserviceassigncontactcardview.h"
 
@@ -57,6 +58,9 @@
             
     case serviceAssignContactCardView:
         return new CntServiceAssignContactCardView( mProvider );
+        
+    case serviceGroupMemberView:
+        return new CntServiceGroupMemberView( mProvider );
 
     default:
         return CntDefaultViewFactory::createView( aViewId );
--- a/phonebookui/phonebookservices/src/main.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/src/main.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -28,6 +28,7 @@
 #include "cntservices.h"
 #include "cntserviceviewmanager.h"
 #include "cntviewnavigator.h"
+#include "cntkeygrabber.h"
 #include "cntdebug.h"
 #include <cntviewparams.h>
 
@@ -44,6 +45,7 @@
     a.installTranslator(&translator);
 
     HbMainWindow mainWindow;
+    CntKeyGrabber *keyGrabber = new CntKeyGrabber(&mainWindow, &mainWindow);
 
     CntViewNavigator* navigator = new CntViewNavigator( &mainWindow );
     navigator->addException( serviceEditView, noView );
--- a/phonebookui/phonebookservices/tsrc/qtpbkservicestestapp/main.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/tsrc/qtpbkservicestestapp/main.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -204,6 +204,13 @@
     mainLayout->addItem(button, row, 1);
     row++;
     
+    // Launch - Group Member View ==========================================================
+    
+    button = new HbPushButton("Launch group member view");
+    QObject::connect(button, SIGNAL(pressed()), service, SLOT(launchGroupMemberView()));
+    mainLayout->addItem(button, row, 0);
+    row++;
+    
     QGraphicsWidget *graphicsWidget = new QGraphicsWidget();
     graphicsWidget->setLayout(mainLayout);
     HbScrollArea *scrollArea = new HbScrollArea();
--- a/phonebookui/phonebookservices/tsrc/qtpbkservicestestapp/testpbkservices.cpp	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/tsrc/qtpbkservicestestapp/testpbkservices.cpp	Thu Aug 05 14:31:09 2010 +0300
@@ -420,6 +420,67 @@
     CNT_EXIT
 }
 
+void testPbkServices::launchGroupMemberView()
+{
+    CNT_ENTRY
+    delete mRequest;
+    mRequest=0;
+
+    // save test contact
+    QContactManager mgr("symbian");
+    QContact contact;
+    QContactName name;
+    QContactPhoneNumber number;
+    
+    name.setFirstName("Test_Contact");
+    number.setNumber("0202223344");
+    contact.saveDetail(&name);
+    contact.saveDetail(&number);
+    mgr.saveContact(&contact);
+    
+    // save test group
+    QString text("Work");
+    QContact groupContact;
+    groupContact.setType(QContactType::TypeGroup);
+    QContactName groupName;
+    groupName.setCustomLabel(text);
+    groupContact.saveDetail(&groupName);
+    mgr.saveContact(&groupContact);
+    QContactRelationship relationship;
+    relationship.setRelationshipType(QContactRelationship::HasMember);
+    relationship.setFirst(groupContact.id());
+    relationship.setSecond(contact.id());
+    // Save relationship
+    mgr.saveRelationship(&relationship);
+    
+    // get contact id
+    int id = groupContact.id().localId();
+        
+    QVariantList args; 
+    XQApplicationManager appMng;
+    QString interface("com.nokia.symbian.IContactsView");
+    QString operation("openGroup(int)");
+    // interface name is not needed
+    mRequest = appMng.create( interface, operation, true); // embedded 
+    if ( mRequest )
+    {    
+        CNT_LOG_ARGS("Request created.")
+        // Result handlers 
+        connect (mRequest, SIGNAL(requestOk(const QVariant&)), this, SLOT(onRequestCompleted(const QVariant&)));
+        
+        args << id;
+        
+        mRequest->setArguments(args); 
+        mRequest->send();
+        CNT_LOG_ARGS("Request sent.")
+    }
+    else
+    {
+        CNT_LOG_ARGS("Failed to create request")
+    }
+    CNT_EXIT
+}
+
 void testPbkServices::onEditCompleted(const QVariant& value)
 {
     CNT_ENTRY
--- a/phonebookui/phonebookservices/tsrc/qtpbkservicestestapp/testpbkservices.h	Fri Jul 23 12:43:48 2010 +0300
+++ b/phonebookui/phonebookservices/tsrc/qtpbkservicestestapp/testpbkservices.h	Thu Aug 05 14:31:09 2010 +0300
@@ -81,6 +81,9 @@
     void launchContactCardEmail_old();
     void launchContactCardOnlineAccount();
     void launchContactCardOnlineAccount_old();
+    
+    // GROUP MEMBER VIEW
+    void launchGroupMemberView();
 
     void onEditCompleted(const QVariant& value);
     void onRequestCompleted(const QVariant& value);