equal
deleted
inserted
replaced
64 mImageLabel(NULL), |
64 mImageLabel(NULL), |
65 mListView(NULL), |
65 mListView(NULL), |
66 mFetchView(NULL), |
66 mFetchView(NULL), |
67 mAvatar(NULL) |
67 mAvatar(NULL) |
68 { |
68 { |
69 |
|
70 mDocument = new CntDocumentLoader; |
69 mDocument = new CntDocumentLoader; |
71 |
70 |
72 bool ok; |
71 bool ok; |
73 mDocument->load( CNT_GROUPMEMBERVIEW_XML, &ok ); |
72 mDocument->load( CNT_GROUPMEMBERVIEW_XML, &ok ); |
74 if ( !ok ){ |
73 if ( !ok ){ |
200 frame.setFrameType(HbFrameDrawer::NinePieces); |
199 frame.setFrameType(HbFrameDrawer::NinePieces); |
201 mListView->itemPrototypes().first()->setDefaultFrame(frame); |
200 mListView->itemPrototypes().first()->setDefaultFrame(frame); |
202 |
201 |
203 createModel(); |
202 createModel(); |
204 |
203 |
205 if (mArgs.value(ESelectedAction).toString() == "save") |
204 if (mArgs.value(ESelectedAction).toString() == CNT_SAVE_ACTION) |
206 { |
205 { |
207 QString name = getContactManager()->synthesizedDisplayLabel(*mGroupContact); |
206 QString name = getContactManager()->synthesizedDisplayLabel(*mGroupContact); |
208 HbNotificationDialog::launchDialog(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_new_group_1_created").arg(name))); |
207 HbNotificationDialog::launchDialog(HbParameterLengthLimiter(hbTrId("txt_phob_dpophead_new_group_1_created").arg(name))); |
209 } |
208 } |
210 |
209 |
211 mFetchView = new CntFetchContacts(mViewManager->contactManager( SYMBIAN_BACKEND )); |
210 mFetchView = new CntFetchContacts(*mViewManager->contactManager( SYMBIAN_BACKEND )); |
212 connect(mFetchView, SIGNAL(clicked()), this, SLOT(handleManageMembers())); |
211 connect(mFetchView, SIGNAL(clicked()), this, SLOT(handleManageMembers())); |
213 } |
212 } |
214 |
213 |
215 void CntGroupMemberView::deactivate() |
214 void CntGroupMemberView::deactivate() |
216 { |
215 { |
221 { |
220 { |
222 //save the contact if avatar has been changed. |
221 //save the contact if avatar has been changed. |
223 QContact contact = mViewManager->contactManager( SYMBIAN_BACKEND )->contact(mGroupContact->localId()); |
222 QContact contact = mViewManager->contactManager( SYMBIAN_BACKEND )->contact(mGroupContact->localId()); |
224 if ( contact != *mGroupContact ) |
223 if ( contact != *mGroupContact ) |
225 { |
224 { |
226 QList<QContactAvatar> details = mGroupContact->details<QContactAvatar>(); |
225 getContactManager()->saveContact(mGroupContact); |
227 for (int i = 0; i < details.count(); i++) |
|
228 { |
|
229 if (!details.at(i).imageUrl().isEmpty()) |
|
230 { |
|
231 getContactManager()->saveContact(mGroupContact); |
|
232 break; |
|
233 } |
|
234 } |
|
235 } |
226 } |
236 mViewManager->back(mArgs); |
227 mViewManager->back(mArgs); |
237 } |
228 } |
238 |
229 |
239 void CntGroupMemberView::openGroupActions() |
230 void CntGroupMemberView::openGroupActions() |
257 QSet<QContactLocalId> contactsSet = mOriginalGroupMembers.toSet(); |
248 QSet<QContactLocalId> contactsSet = mOriginalGroupMembers.toSet(); |
258 QContactName groupContactName = mGroupContact->detail( QContactName::DefinitionName ); |
249 QContactName groupContactName = mGroupContact->detail( QContactName::DefinitionName ); |
259 QString groupName(groupContactName.value( QContactName::FieldCustomLabel )); |
250 QString groupName(groupContactName.value( QContactName::FieldCustomLabel )); |
260 |
251 |
261 if (!mFetchView) { |
252 if (!mFetchView) { |
262 mFetchView = new CntFetchContacts(mViewManager->contactManager( SYMBIAN_BACKEND )); |
253 mFetchView = new CntFetchContacts(*mViewManager->contactManager( SYMBIAN_BACKEND )); |
263 connect(mFetchView, SIGNAL(clicked()), this, SLOT(handleManageMembers())); |
254 connect(mFetchView, SIGNAL(clicked()), this, SLOT(handleManageMembers())); |
264 } |
255 } |
265 mFetchView->setDetails(HbParameterLengthLimiter(hbTrId("txt_phob_title_members_of_1_group")).arg(groupName), |
256 mFetchView->setDetails(HbParameterLengthLimiter(hbTrId("txt_phob_title_members_of_1_group")).arg(groupName), |
266 hbTrId("txt_common_button_save")); |
257 hbTrId("txt_common_button_save")); |
267 mFetchView->displayContacts(CntFetchContacts::popup, |
258 mFetchView->displayContacts(HbAbstractItemView::MultiSelection, contactsSet); |
268 HbAbstractItemView::MultiSelection, |
|
269 contactsSet); |
|
270 } |
259 } |
271 |
260 |
272 void CntGroupMemberView::handleManageMembers() |
261 void CntGroupMemberView::handleManageMembers() |
273 { |
262 { |
274 |
263 |
295 } |
284 } |
296 |
285 |
297 if (!removedMemberships.isEmpty()) { |
286 if (!removedMemberships.isEmpty()) { |
298 getContactManager()->removeRelationships(removedMemberships, &errors); |
287 getContactManager()->removeRelationships(removedMemberships, &errors); |
299 } |
288 } |
300 |
|
301 // delete the model and recreate it with relationship changes |
|
302 delete mModel; |
|
303 mModel = 0; |
|
304 |
|
305 createModel(); |
|
306 } |
289 } |
307 |
290 |
308 void CntGroupMemberView::createModel() |
291 void CntGroupMemberView::createModel() |
309 { |
292 { |
310 QContactRelationshipFilter rFilter; |
293 QContactRelationshipFilter rFilter; |
311 rFilter.setRelationshipType(QContactRelationship::HasMember); |
294 rFilter.setRelationshipType(QContactRelationship::HasMember); |
312 rFilter.setRelatedContactRole(QContactRelationship::First); |
295 rFilter.setRelatedContactRole(QContactRelationship::First); |
313 rFilter.setRelatedContactId(mGroupContact->id()); |
296 rFilter.setRelatedContactId(mGroupContact->id()); |
314 |
|
315 |
297 |
316 mModel = new CntListModel(getContactManager(), rFilter, false); |
298 mModel = new CntListModel(getContactManager(), rFilter, false); |
317 mListView->setModel(mModel); |
299 mListView->setModel(mModel); |
318 } |
300 } |
319 |
301 |
419 QContactRelationship relationship; |
401 QContactRelationship relationship; |
420 relationship.setRelationshipType(QContactRelationship::HasMember); |
402 relationship.setRelationshipType(QContactRelationship::HasMember); |
421 relationship.setFirst(mGroupContact->id()); |
403 relationship.setFirst(mGroupContact->id()); |
422 relationship.setSecond(selectedContact.id()); |
404 relationship.setSecond(selectedContact.id()); |
423 getContactManager()->removeRelationship(relationship); |
405 getContactManager()->removeRelationship(relationship); |
424 |
|
425 // delete the model and recreate it with relationship changes |
|
426 delete mModel; |
|
427 mModel = NULL; |
|
428 |
|
429 createModel(); |
|
430 } |
406 } |
431 |
407 |
432 void CntGroupMemberView::editContact(const QModelIndex &index) |
408 void CntGroupMemberView::editContact(const QModelIndex &index) |
433 { |
409 { |
434 |
410 |
510 { |
486 { |
511 if (mAvatar) |
487 if (mAvatar) |
512 { |
488 { |
513 if (!mAvatar->imageUrl().isEmpty()) |
489 if (!mAvatar->imageUrl().isEmpty()) |
514 { |
490 { |
515 mGroupContact->removeDetail(mAvatar); |
491 bool success = mGroupContact->removeDetail(mAvatar); |
516 // Check if image removable. |
492 // Check if image removable. |
517 CntImageUtility imageUtility; |
493 CntImageUtility imageUtility; |
518 if(imageUtility.isImageRemovable(mAvatar->imageUrl().toString())) |
494 if(imageUtility.isImageRemovable(mAvatar->imageUrl().toString())) |
519 { |
495 { |
520 imageUtility.removeImage(mAvatar->imageUrl().toString()); |
496 imageUtility.removeImage(mAvatar->imageUrl().toString()); |
521 } |
497 } |
|
498 mAvatar->setImageUrl(QUrl()); |
|
499 mImageLabel->clear(); |
|
500 mImageLabel->setIcon(HbIcon("qtg_large_add_group_picture")); |
|
501 mHeadingItem->setIcon(HbIcon("qtg_large_add_group_picture")); |
522 mViewManager->contactManager( SYMBIAN_BACKEND )->saveContact(mGroupContact); |
502 mViewManager->contactManager( SYMBIAN_BACKEND )->saveContact(mGroupContact); |
523 mHeadingItem->setIcon(HbIcon("qtg_large_avatar")); |
503 } |
524 } |
|
525 } |
504 } |
526 } |
505 } |
527 |
506 |
528 |
507 |
529 |
508 |