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 |