phonebookui/pbkcommonui/src/cntfavoritesmemberview.cpp
changeset 37 fd64c38c277d
parent 31 2a11b5b00470
child 40 b46a585f6909
equal deleted inserted replaced
31:2a11b5b00470 37:fd64c38c277d
    29 #include <hbview.h>
    29 #include <hbview.h>
    30 #include <hbaction.h>
    30 #include <hbaction.h>
    31 #include <hblabel.h>
    31 #include <hblabel.h>
    32 #include <mobcntmodel.h>
    32 #include <mobcntmodel.h>
    33 #include <hbframebackground.h>
    33 #include <hbframebackground.h>
       
    34 #include <xqservicerequest.h>
    34 
    35 
    35 const char *CNT_FAVORITESMEMBERVIEW_XML = ":/xml/contacts_favmember.docml";
    36 const char *CNT_FAVORITESMEMBERVIEW_XML = ":/xml/contacts_favmember.docml";
    36 
    37 
    37 CntFavoritesMemberView::CntFavoritesMemberView() :
    38 CntFavoritesMemberView::CntFavoritesMemberView() :
    38 mContact(NULL),
    39 mContact(NULL),
    87 void CntFavoritesMemberView::activate( CntAbstractViewManager* aMgr, const CntViewParameters aArgs )
    88 void CntFavoritesMemberView::activate( CntAbstractViewManager* aMgr, const CntViewParameters aArgs )
    88 {
    89 {
    89     if (mView->navigationAction() != mSoftkey)
    90     if (mView->navigationAction() != mSoftkey)
    90         mView->setNavigationAction(mSoftkey);   
    91         mView->setNavigationAction(mSoftkey);   
    91     
    92     
    92     mContact = new QContact(aArgs.value(ESelectedContact).value<QContact>());
    93     mContact = new QContact(aArgs.value(ESelectedGroupContact).value<QContact>());
    93     mViewManager = aMgr;
    94     mViewManager = aMgr;
    94 
    95 
    95     mFavoriteListView = static_cast<HbListView*> (mDocumentLoader.findWidget("listView"));
    96     mFavoriteListView = static_cast<HbListView*> (mDocumentLoader.findWidget("listView"));
    96     mFavoriteListView->setUniformItemSizes(true);
    97     mFavoriteListView->setUniformItemSizes(true);
    97     mFavoriteListView->setFrictionEnabled(true);
    98     mFavoriteListView->setFrictionEnabled(true);
   105     indexFeedback->setItemView(mFavoriteListView);
   106     indexFeedback->setItemView(mFavoriteListView);
   106     
   107     
   107     HbFrameBackground frame;
   108     HbFrameBackground frame;
   108     frame.setFrameGraphicsName("qtg_fr_list_normal");
   109     frame.setFrameGraphicsName("qtg_fr_list_normal");
   109     frame.setFrameType(HbFrameDrawer::NinePieces);
   110     frame.setFrameType(HbFrameDrawer::NinePieces);
       
   111     
   110     mFavoriteListView->itemPrototypes().first()->setDefaultFrame(frame);
   112     mFavoriteListView->itemPrototypes().first()->setDefaultFrame(frame);
   111 
   113     mFavoriteListView->listItemPrototype()->setStretchingStyle(HbListViewItem::StretchLandscape);
   112     mFavoriteListView->listItemPrototype()->setGraphicsSize(HbListViewItem::Thumbnail);
   114     mFavoriteListView->listItemPrototype()->setGraphicsSize(HbListViewItem::Thumbnail);
   113 
   115 
   114     if (!mModel)
   116     if (!mModel)
   115     {
   117     {
   116         QContactRelationshipFilter rFilter;
   118         createModel();
   117         rFilter.setRelationshipType(QContactRelationship::HasMember);
       
   118         rFilter.setRelatedContactRole(QContactRelationship::First);
       
   119         rFilter.setRelatedContactId(mContact->id());
       
   120 
       
   121         QContactSortOrder sortOrderFirstName;
       
   122         sortOrderFirstName.setDetailDefinitionName(QContactName::DefinitionName,
       
   123             QContactName::FieldFirst);
       
   124         sortOrderFirstName.setCaseSensitivity(Qt::CaseInsensitive);
       
   125 
       
   126         QContactSortOrder sortOrderLastName;
       
   127         sortOrderLastName.setDetailDefinitionName(QContactName::DefinitionName,
       
   128             QContactName::FieldLast);
       
   129         sortOrderLastName.setCaseSensitivity(Qt::CaseInsensitive);
       
   130 
       
   131         QList<QContactSortOrder> sortOrders;
       
   132         sortOrders.append(sortOrderFirstName);
       
   133         sortOrders.append(sortOrderLastName);
       
   134 
       
   135         mModel = new MobCntModel(mViewManager->contactManager(SYMBIAN_BACKEND), rFilter, sortOrders, false);
       
   136     }
   119     }
   137 
   120 
   138     mFavoriteListView->setModel(mModel);
   121     mFavoriteListView->setModel(mModel);
   139 
   122 
   140     connect(mFavoriteListView, SIGNAL(activated (const QModelIndex&)), this,
   123     connect(mFavoriteListView, SIGNAL(activated (const QModelIndex&)), this,
   162     
   145     
   163     if (groupSelectionPopup && action == groupSelectionPopup->actions().first())
   146     if (groupSelectionPopup && action == groupSelectionPopup->actions().first())
   164     {
   147     {
   165         groupSelectionPopup->saveOldGroup();
   148         groupSelectionPopup->saveOldGroup();
   166     }
   149     }
   167 }
   150     delete mModel;
   168 
   151     mModel = 0;
       
   152     createModel();
       
   153     mFavoriteListView->setModel(mModel);
       
   154     
       
   155 }
       
   156 void CntFavoritesMemberView::createModel()
       
   157 {
       
   158     QContactRelationshipFilter rFilter;
       
   159     rFilter.setRelationshipType(QContactRelationship::HasMember);
       
   160     rFilter.setRelatedContactRole(QContactRelationship::First);
       
   161     rFilter.setRelatedContactId(mContact->id());
       
   162 
       
   163     QContactSortOrder sortOrderFirstName;
       
   164     sortOrderFirstName.setDetailDefinitionName(QContactName::DefinitionName,
       
   165         QContactName::FieldFirst);
       
   166     sortOrderFirstName.setCaseSensitivity(Qt::CaseInsensitive);
       
   167 
       
   168     QContactSortOrder sortOrderLastName;
       
   169     sortOrderLastName.setDetailDefinitionName(QContactName::DefinitionName,
       
   170         QContactName::FieldLast);
       
   171     sortOrderLastName.setCaseSensitivity(Qt::CaseInsensitive);
       
   172 
       
   173     QList<QContactSortOrder> sortOrders;
       
   174     sortOrders.append(sortOrderFirstName);
       
   175     sortOrders.append(sortOrderLastName);
       
   176 
       
   177     mModel = new MobCntModel(mViewManager->contactManager(SYMBIAN_BACKEND), rFilter, sortOrders, false);
       
   178 }
   169 
   179 
   170 /*!
   180 /*!
   171 Called when a list item is longpressed
   181 Called when a list item is longpressed
   172 */
   182 */
   173 void CntFavoritesMemberView::onLongPressed (HbAbstractViewItem *aItem, const QPointF &aCoords)
   183 void CntFavoritesMemberView::onLongPressed (HbAbstractViewItem *aItem, const QPointF &aCoords)
   190     QString action = map.value("action").toString();
   200     QString action = map.value("action").toString();
   191 
   201 
   192     openContactAction = menu->addAction(hbTrId("txt_common_menu_open"));
   202     openContactAction = menu->addAction(hbTrId("txt_common_menu_open"));
   193     editContactAction = menu->addAction(hbTrId("txt_common_menu_edit"));
   203     editContactAction = menu->addAction(hbTrId("txt_common_menu_edit"));
   194     removeFromFavoritesAction = menu->addAction(hbTrId("txt_phob_menu_remove_from_favorites"));
   204     removeFromFavoritesAction = menu->addAction(hbTrId("txt_phob_menu_remove_from_favorites"));
   195     sendToHsAction = menu->addAction(hbTrId("Send to HS"));
   205     sendToHsAction = menu->addAction(hbTrId("txt_phob_menu_send_to_homescreen"));
   196     
   206     
   197     openContactAction->setData( data );
   207     openContactAction->setData( data );
   198     editContactAction->setData( data );
   208     editContactAction->setData( data );
   199     removeFromFavoritesAction->setData( data );
   209     removeFromFavoritesAction->setData( data );
   200     sendToHsAction->setData( data );
   210     sendToHsAction->setData( data );
   210        
   220        
   211     int id = index.data(Qt::UserRole).toInt();
   221     int id = index.data(Qt::UserRole).toInt();
   212 
   222 
   213     if ( action == menuItem->actions().first() )
   223     if ( action == menuItem->actions().first() )
   214         {
   224         {
   215             openContact(index);
   225         openContact(index);
   216         }
   226         }
   217     else if (action == menuItem->actions().at(1))
   227     else if (action == menuItem->actions().at(1))
   218         {
   228         {
   219             editContact(index);
   229         editContact(index);
   220         }
   230         }
   221     else if (action == menuItem->actions().at(2))
   231     else if (action == menuItem->actions().at(2))
   222         {
   232         {
   223         removeFromFavorites(index);
   233         removeFromFavorites(index);
   224         }
   234         }
   225    else if (action == menuItem->actions().at(3))
   235    else if (action == menuItem->actions().at(3))
   226        {
   236        {
   227        //            sendToHs(index);
   237        sendToHs(index);
   228        }
   238        }
   229     }
   239     }
   230 
   240 
   231 void CntFavoritesMemberView::openContact(const QModelIndex &index)
   241 void CntFavoritesMemberView::openContact(const QModelIndex &index)
   232 {
   242 {
   238     var.setValue(selectedContact);
   248     var.setValue(selectedContact);
   239     viewParameters.insert(ESelectedContact, var);
   249     viewParameters.insert(ESelectedContact, var);
   240     QVariant varGroup;
   250     QVariant varGroup;
   241     varGroup.setValue(*mContact);
   251     varGroup.setValue(*mContact);
   242     viewParameters.insert(ESelectedGroupContact, varGroup);
   252     viewParameters.insert(ESelectedGroupContact, varGroup);
   243     viewParameters.insert(ESelectedAction, "FromGroupMemberView");
       
   244     mViewManager->changeView(viewParameters);
   253     mViewManager->changeView(viewParameters);
   245 }
   254 }
   246 
   255 
   247 void CntFavoritesMemberView::editContact(const QModelIndex &index)
   256 void CntFavoritesMemberView::editContact(const QModelIndex &index)
   248 {
   257 {
   268     relationship.setFirst(mContact->id());
   277     relationship.setFirst(mContact->id());
   269     relationship.setSecond(selectedContact.id());
   278     relationship.setSecond(selectedContact.id());
   270     mViewManager->contactManager(SYMBIAN_BACKEND)->removeRelationship(relationship);
   279     mViewManager->contactManager(SYMBIAN_BACKEND)->removeRelationship(relationship);
   271 }
   280 }
   272 
   281 
       
   282 /*!
       
   283 Called after user clicked on the listview.
       
   284 */
       
   285 void CntFavoritesMemberView::sendToHs(const QModelIndex &index)
       
   286 {
       
   287     QVariantHash preferences;
       
   288     preferences["contactId"] = mModel->contact(index).id().localId();
       
   289     
       
   290     XQServiceRequest snd("com.nokia.services.hsapplication.IHomeScreenClient",
       
   291                         "addWidget(QString,QVariantHash)"
       
   292                         ,false);
       
   293     snd << QString("hscontactwidgetplugin");
       
   294     snd << preferences;
       
   295     snd.send();
       
   296 }
       
   297