phonebookui/pbkcommonui/src/cntfavoritesview.cpp
changeset 59 a642906a277a
parent 47 7cbcb2896f0e
child 61 d30183af6ca6
--- a/phonebookui/pbkcommonui/src/cntfavoritesview.cpp	Tue Jul 06 14:05:47 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntfavoritesview.cpp	Wed Aug 18 09:39:00 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 #include "cntfavoritesview.h"
-#include "cntfetchcontactsview.h"
+#include "cntfetchcontactpopup.h"
 #include "cntglobal.h"
 #include <hbpushbutton.h>
 #include <hbaction.h>
@@ -30,8 +30,7 @@
     mContact(NULL),
     mView(NULL),
     mSoftkey(NULL),
-    mViewManager(NULL),
-    mFetchView(NULL)
+    mViewManager(NULL)
 {
     bool ok = false;
     mDocumentLoader.load(CNT_FAVORITE_UI_XML, &ok);
@@ -57,10 +56,7 @@
     mView->deleteLater();
     
     delete mContact;
-    mContact = 0;
-
-    delete mFetchView;
-    mFetchView = 0;
+    mContact = NULL;
 }
 
 void CntFavoritesView::activate( CntAbstractViewManager* aMgr, const CntViewParameters aArgs )
@@ -85,50 +81,61 @@
 
 void CntFavoritesView::openSelectionPopup()
 {
+    /*
     QSet<QContactLocalId> emptySet;
-    
     if (!mFetchView) {
         mFetchView = new CntFetchContacts(*getContactManager());
         connect(mFetchView, SIGNAL(clicked()), this, SLOT(handleMemberSelection()));
     }
     mFetchView->setDetails(hbTrId("txt_phob_subtitle_favorites"), hbTrId("txt_common_button_save"));
     mFetchView->displayContacts(HbAbstractItemView::MultiSelection, emptySet);
+    */
+    CntFetchContactPopup* popup = CntFetchContactPopup::createMultiSelectionPopup(
+            hbTrId("txt_phob_subtitle_favorites"), 
+            hbTrId("txt_common_button_save"),
+            *getContactManager());
+    connect(popup, SIGNAL(fetchReady(QSet<QContactLocalId>)), 
+            this, SLOT(handleMemberSelection(QSet<QContactLocalId>)));
+    popup->showPopup();
 }
 
-void CntFavoritesView::handleMemberSelection()
+void CntFavoritesView::handleMemberSelection( QSet<QContactLocalId> aIds )
 {
-    QSet<QContactLocalId> members = mFetchView->getSelectedContacts();
-    QList<QContactRelationship> memberships;
-    bool saveChanges = !mFetchView->wasCanceled();
+    //QSet<QContactLocalId> members = mFetchView->getSelectedContacts();
+    //bool saveChanges = !mFetchView->wasCanceled();
 
-    delete mFetchView;
-    mFetchView = 0;
-
-    if (!saveChanges || members.count() == 0) {
-        showPreviousView();
-        return;
-    }
+    //delete mFetchView;
+    //mFetchView = 0;
 
-    foreach (QContactLocalId id, members) {
-        QContact contact = getContactManager()->contact(id);
-        QContactRelationship membership;
-        membership.setRelationshipType(QContactRelationship::HasMember);
-        membership.setFirst(mContact->id());
-        membership.setSecond(contact.id());
-        memberships.append(membership);
+    //if (!saveChanges || members.count() == 0)
+    if ( aIds.isEmpty() )
+    {
+        showPreviousView();
     }
-
-    if (!memberships.isEmpty()) {
-        QMap<int, QContactManager::Error> errors;
-        getContactManager()->saveRelationships(&memberships, &errors);
+    else
+    {
+        QList<QContactRelationship> memberships;
+        foreach (QContactLocalId id, aIds) {
+            QContact contact = getContactManager()->contact(id);
+            QContactRelationship membership;
+            membership.setRelationshipType(QContactRelationship::HasMember);
+            membership.setFirst(mContact->id());
+            membership.setSecond(contact.id());
+            memberships.append(membership);
+        }
+    
+        if (!memberships.isEmpty()) {
+            QMap<int, QContactManager::Error> errors;
+            getContactManager()->saveRelationships(&memberships, &errors);
+        }
+    
+        CntViewParameters viewParameters;
+        viewParameters.insert(EViewId, favoritesMemberView);
+        QVariant var;
+        var.setValue(*mContact);
+        viewParameters.insert(ESelectedGroupContact, var);
+        mViewManager->changeView(viewParameters);
     }
-
-    CntViewParameters viewParameters;
-    viewParameters.insert(EViewId, FavoritesMemberView);
-    QVariant var;
-    var.setValue(*mContact);
-    viewParameters.insert(ESelectedGroupContact, var);
-    mViewManager->changeView(viewParameters);
 }
 
 void CntFavoritesView::setOrientation(Qt::Orientation orientation)