diff -r 7cbcb2896f0e -r a642906a277a phonebookui/pbkcommonui/src/cntfavoritesview.cpp --- 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 #include @@ -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 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)), + this, SLOT(handleMemberSelection(QSet))); + popup->showPopup(); } -void CntFavoritesView::handleMemberSelection() +void CntFavoritesView::handleMemberSelection( QSet aIds ) { - QSet members = mFetchView->getSelectedContacts(); - QList memberships; - bool saveChanges = !mFetchView->wasCanceled(); + //QSet 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 errors; - getContactManager()->saveRelationships(&memberships, &errors); + else + { + QList 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 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)