phonebookui/pbkcommonui/src/cntmycardselectionview.cpp
changeset 27 de1630741fbe
parent 25 76a2435edfd4
child 40 b46a585f6909
equal deleted inserted replaced
25:76a2435edfd4 27:de1630741fbe
    14 * Description:  
    14 * Description:  
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 #include "cntmycardselectionview.h"
    18 #include "cntmycardselectionview.h"
       
    19 #include <QModelIndex>
       
    20 #include <mobcntmodel.h>
       
    21 #include <hblistview.h>
       
    22 #include <qcontact.h>
    19 
    23 
    20 /*!
    24 CntMyCardSelectionView::CntMyCardSelectionView() : CntBaseSelectionView()
    21 Constructor, initialize member variables.
       
    22 \a viewManager is the parent that creates this view. \a parent is a pointer to parent QGraphicsItem (by default this is 0)
       
    23 */
       
    24 CntMyCardSelectionView::CntMyCardSelectionView(CntViewManager *viewManager, QGraphicsItem *parent, HbAbstractItemView::SelectionMode newMode)
       
    25     : CntBaseSelectionView(viewManager, parent, newMode)
       
    26 {
    25 {
    27     QContactDetailFilter contactsFilter;
    26     connect(mListView, SIGNAL(activated(const QModelIndex&)), this, SLOT(onListViewActivated(const QModelIndex&)));
    28     contactsFilter.setDetailDefinitionName(QContactType::DefinitionName, QContactType::FieldType);
       
    29     contactsFilter.setValue(QString(QLatin1String(QContactType::TypeContact)));
       
    30     contactModel()->setFilterAndSortOrder(contactsFilter);
       
    31     contactModel()->showMyCard(false);
       
    32 }
    27 }
    33 
    28 
    34 /*!
       
    35 Destructor
       
    36 */
       
    37 CntMyCardSelectionView::~CntMyCardSelectionView()
    29 CntMyCardSelectionView::~CntMyCardSelectionView()
    38 {
    30 {
    39     
       
    40 }
    31 }
    41 
       
    42 /*!
       
    43 Set selection to mycard
       
    44 */
       
    45 void CntMyCardSelectionView::aboutToCloseView()
       
    46 {
       
    47     CntViewParameters args;
       
    48     viewManager()->back( args );
       
    49 }
       
    50 
       
    51 
    32 
    52 /*!
    33 /*!
    53 Set index to mycard
    34 Set index to mycard
    54 */
    35 */
    55 void CntMyCardSelectionView::onListViewActivated(const QModelIndex& index)
    36 void CntMyCardSelectionView::onListViewActivated(const QModelIndex& index)
    56 {
    37 {
    57     if (index.isValid())
    38     if (index.isValid())
    58     {  
    39     {  
    59         QContact contact = contactModel()->contact(index);
    40         QContact contact = mListModel->contact(index);
    60         contactManager()->setSelfContactId(contact.localId());
    41         QContactManager* mgr = mMgr->contactManager(SYMBIAN_BACKEND);
    61         viewManager()->changeView(CntViewParameters::namesView);
    42         mgr->setSelfContactId(contact.localId());
       
    43         
       
    44         removeFromGroup(&contact);
       
    45         
       
    46         CntViewParameters params;
       
    47         params.insert(EViewId, namesView);
       
    48         mMgr->changeView(params);
    62     }
    49     }
    63 }
    50 }
    64     
    51     
       
    52 void CntMyCardSelectionView::removeFromGroup(const QContact* aContact)
       
    53 {
       
    54     QContactDetailFilter groupFilter;
       
    55     groupFilter.setDetailDefinitionName(QContactType::DefinitionName, QContactType::FieldType);
       
    56     groupFilter.setValue(QLatin1String(QContactType::TypeGroup));
    65 
    57 
       
    58     QContactManager* mgr = mMgr->contactManager(SYMBIAN_BACKEND);
       
    59     QList<QContactLocalId> groupContactIds = mgr->contactIds(groupFilter);
       
    60     if (!groupContactIds.isEmpty())
       
    61     {
       
    62         for(int i = 0;i < groupContactIds.count();i++)
       
    63         {
       
    64             QContact groupContact = mgr->contact(groupContactIds.at(i));
       
    65             QContactRelationship relationship;
       
    66             relationship.setRelationshipType(QContactRelationship::HasMember);
       
    67             relationship.setFirst(groupContact.id());
       
    68             relationship.setSecond(aContact->id());
       
    69             mgr->removeRelationship(relationship);  
       
    70          }
       
    71     }
       
    72 }
    66 
    73