phonebookui/pbkcommonui/src/cntfavoritesmemberview.cpp
changeset 47 7cbcb2896f0e
parent 46 efe85016a067
child 53 e6aff7b69165
equal deleted inserted replaced
46:efe85016a067 47:7cbcb2896f0e
    35 #include <xqservicerequest.h>
    35 #include <xqservicerequest.h>
    36 
    36 
    37 const char *CNT_FAVORITESMEMBERVIEW_XML = ":/xml/contacts_favmember.docml";
    37 const char *CNT_FAVORITESMEMBERVIEW_XML = ":/xml/contacts_favmember.docml";
    38 
    38 
    39 CntFavoritesMemberView::CntFavoritesMemberView() :
    39 CntFavoritesMemberView::CntFavoritesMemberView() :
    40 mContact(NULL),
    40     mContact(NULL),
    41 mModel(NULL),
    41     mModel(NULL),
    42 mFavoriteListView(NULL), 
    42     mFavoriteListView(NULL), 
    43 mViewManager(NULL),
    43     mViewManager(NULL),
    44 mFetchView(NULL)
    44     mFetchView(NULL)
    45 {
    45 {
    46     bool ok = false;
    46     bool ok = false;
    47     mDocumentLoader.load(CNT_FAVORITESMEMBERVIEW_XML, &ok);
    47     mDocumentLoader.load(CNT_FAVORITESMEMBERVIEW_XML, &ok);
    48   
    48   
    49     if (ok)
    49     if (ok)
   136     membersFilter.setRelatedContactRole(QContactRelationship::First);
   136     membersFilter.setRelatedContactRole(QContactRelationship::First);
   137     membersFilter.setRelatedContactId(mContact->id());   
   137     membersFilter.setRelatedContactId(mContact->id());   
   138     mOriginalGroupMembers = getContactManager()->contactIds(membersFilter).toSet();
   138     mOriginalGroupMembers = getContactManager()->contactIds(membersFilter).toSet();
   139     
   139     
   140     if (!mFetchView) {
   140     if (!mFetchView) {
   141         mFetchView = new CntFetchContacts(getContactManager());
   141         mFetchView = new CntFetchContacts(*getContactManager());
   142         connect(mFetchView, SIGNAL(clicked()), this, SLOT(handleManageFavorites()));
   142         connect(mFetchView, SIGNAL(clicked()), this, SLOT(handleManageFavorites()));
   143     }
   143     }
   144     mFetchView->setDetails(hbTrId("txt_phob_subtitle_favorites"), hbTrId("txt_common_button_save"));
   144     mFetchView->setDetails(hbTrId("txt_phob_subtitle_favorites"), hbTrId("txt_common_button_save"));
   145     mFetchView->displayContacts(CntFetchContacts::popup,
   145     mFetchView->displayContacts(HbAbstractItemView::MultiSelection, mOriginalGroupMembers);
   146                                 HbAbstractItemView::MultiSelection,
       
   147                                 mOriginalGroupMembers);
       
   148 }
   146 }
   149 
   147 
   150 void CntFavoritesMemberView::handleManageFavorites()
   148 void CntFavoritesMemberView::handleManageFavorites()
   151 {
   149 {
   152     QSet<QContactLocalId> selectedContacts = mFetchView->getSelectedContacts();
   150     QSet<QContactLocalId> selectedContacts = mFetchView->getSelectedContacts();
   182             else {
   180             else {
   183                 getContactManager()->removeRelationships(memberships, &errors);
   181                 getContactManager()->removeRelationships(memberships, &errors);
   184             }
   182             }
   185         }
   183         }
   186     }
   184     }
   187     
       
   188     // delete the model and recreate it with relationship changes
       
   189     delete mModel;
       
   190     mModel = 0;
       
   191     createModel();
       
   192 }
   185 }
   193 
   186 
   194 void CntFavoritesMemberView::createModel()
   187 void CntFavoritesMemberView::createModel()
   195 {
   188 {
   196     QContactRelationshipFilter rFilter;
   189     QContactRelationshipFilter rFilter;
   319 void CntFavoritesMemberView::sendToHs(const QModelIndex &index)
   312 void CntFavoritesMemberView::sendToHs(const QModelIndex &index)
   320 {
   313 {
   321     QVariantHash preferences;
   314     QVariantHash preferences;
   322     preferences["contactId"] = mModel->contact(index).id().localId();
   315     preferences["contactId"] = mModel->contact(index).id().localId();
   323     
   316     
   324     XQServiceRequest snd("com.nokia.services.hsapplication.IHomeScreenClient",
   317     XQServiceRequest snd("com.nokia.symbian.IHomeScreenClient",
   325                          "addWidget(QString,QVariantHash)",
   318                          "addWidget(QString,QVariantHash)",
   326                          false);
   319                          false);
   327     snd << QString("contactwidgethsplugin");
   320     snd << QString("contactwidgethsplugin");
   328     snd << preferences;
   321     snd << preferences;
   329     snd.send();
   322     snd.send();