phonebookui/pbkcommonui/src/cntmycardview.cpp
changeset 65 ae724a111993
parent 59 a642906a277a
equal deleted inserted replaced
59:a642906a277a 65:ae724a111993
    16 */
    16 */
    17 
    17 
    18 #include "cntmycardview.h"
    18 #include "cntmycardview.h"
    19 #include "cntfetchcontactpopup.h"
    19 #include "cntfetchcontactpopup.h"
    20 #include "cntglobal.h"
    20 #include "cntglobal.h"
       
    21 
    21 #include <qtcontacts.h>
    22 #include <qtcontacts.h>
    22 #include <hbpushbutton.h>
    23 #include <hbpushbutton.h>
    23 #include <hbaction.h>
    24 #include <hbaction.h>
    24 #include <hbview.h>
    25 #include <hbview.h>
    25 #include <hbmainwindow.h>
    26 #include <hbmainwindow.h>
    65 }
    66 }
    66 
    67 
    67 /*
    68 /*
    68 Activates a default view
    69 Activates a default view
    69 */
    70 */
    70 void CntMyCardView::activate(CntAbstractViewManager* aMgr, const CntViewParameters aArgs)
    71 void CntMyCardView::activate(const CntViewParameters aArgs)
    71 {
    72 {
    72     mViewManager = aMgr;
    73     mViewManager = &mEngine->viewManager();
    73     
    74     
    74     if (mView->navigationAction() != mSoftkey) {
    75     if (mView->navigationAction() != mSoftkey) {
    75         mView->setNavigationAction(mSoftkey);
    76         mView->setNavigationAction(mSoftkey);
    76     }
    77     }
    77     
    78     
    88 
    89 
    89     QContactDetailFilter filter;
    90     QContactDetailFilter filter;
    90     filter.setDetailDefinitionName(QContactType::DefinitionName, QContactType::FieldType);
    91     filter.setDetailDefinitionName(QContactType::DefinitionName, QContactType::FieldType);
    91     filter.setValue(QLatin1String(QContactType::TypeContact));
    92     filter.setValue(QLatin1String(QContactType::TypeContact));
    92 
    93 
    93     if (mViewManager->contactManager( SYMBIAN_BACKEND )->contactIds(filter).isEmpty())
    94     if (mEngine->contactManager( SYMBIAN_BACKEND ).contactIds(filter).isEmpty())
    94     {
    95     {
    95         chooseButton->setEnabled(false);
    96         chooseButton->setEnabled(false);
    96     }
    97     }
    97 }
    98 }
    98 
    99 
   135 */
   136 */
   136 void CntMyCardView::openMyCardSelectionView()
   137 void CntMyCardView::openMyCardSelectionView()
   137 {
   138 {
   138     CntFetchContactPopup* popup = CntFetchContactPopup::createSingleSelectionPopup(
   139     CntFetchContactPopup* popup = CntFetchContactPopup::createSingleSelectionPopup(
   139             hbTrId("txt_phob_title_select_contact"),
   140             hbTrId("txt_phob_title_select_contact"),
   140             *mViewManager->contactManager(SYMBIAN_BACKEND));
   141             mEngine->contactManager(SYMBIAN_BACKEND));
   141     connect( popup, SIGNAL(fetchReady(QSet<QContactLocalId>)), this, SLOT(handleMultiCardSelection(QSet<QContactLocalId>)));
   142     connect( popup, SIGNAL(fetchReady(QSet<QContactLocalId>)), this, SLOT(handleMultiCardSelection(QSet<QContactLocalId>)));
       
   143     QSet<QContactLocalId> ids;
       
   144     popup->setSelectedContacts(ids);
   142     popup->showPopup();
   145     popup->showPopup();
   143 }
   146 }
   144 
   147 
   145 void CntMyCardView::handleMultiCardSelection( QSet<QContactLocalId> aIds )
   148 void CntMyCardView::handleMultiCardSelection( QSet<QContactLocalId> aIds )
   146 {
   149 {
   147     QContactManager* manager = mViewManager->contactManager( SYMBIAN_BACKEND );
   150     QContactManager& manager = mEngine->contactManager( SYMBIAN_BACKEND );
   148 
   151 
   149     if ( !aIds.isEmpty() ) {
   152     if ( !aIds.isEmpty() ) {
   150         QList<QContactLocalId> selectedContactsList = aIds.values();
   153         QList<QContactLocalId> selectedContactsList = aIds.values();
   151         QContact contact = manager->contact(selectedContactsList.front());
   154         QContact contact = manager.contact(selectedContactsList.front());
   152         removeFromGroup(&contact);
   155         removeFromGroup(&contact);
   153         
   156         
   154         manager->setSelfContactId( contact.localId() );
   157         manager.setSelfContactId( contact.localId() );
   155         showPreviousView();
   158         showPreviousView();
   156     }
   159     }
   157 }
   160 }
   158 
   161 
   159 void CntMyCardView::removeFromGroup(const QContact* aContact)
   162 void CntMyCardView::removeFromGroup(const QContact* aContact)
   160 {
   163 {
   161     QContactDetailFilter groupFilter;
   164     QContactDetailFilter groupFilter;
   162     groupFilter.setDetailDefinitionName(QContactType::DefinitionName, QContactType::FieldType);
   165     groupFilter.setDetailDefinitionName(QContactType::DefinitionName, QContactType::FieldType);
   163     groupFilter.setValue(QLatin1String(QContactType::TypeGroup));
   166     groupFilter.setValue(QLatin1String(QContactType::TypeGroup));
   164 
   167 
   165     QContactManager* mgr = mViewManager->contactManager(SYMBIAN_BACKEND);
   168     QContactManager& mgr = mEngine->contactManager(SYMBIAN_BACKEND);
   166     QList<QContactLocalId> groupContactIds = mgr->contactIds(groupFilter);
   169     QList<QContactLocalId> groupContactIds = mgr.contactIds(groupFilter);
   167     if (!groupContactIds.isEmpty()) {
   170     if (!groupContactIds.isEmpty()) {
   168         for(int i = 0;i < groupContactIds.count();i++) {
   171         for(int i = 0;i < groupContactIds.count();i++) {
   169             QContact groupContact = mgr->contact(groupContactIds.at(i));
   172             QContact groupContact = mgr.contact(groupContactIds.at(i));
   170             QContactRelationship relationship;
   173             QContactRelationship relationship;
   171             relationship.setRelationshipType(QContactRelationship::HasMember);
   174             relationship.setRelationshipType(QContactRelationship::HasMember);
   172             relationship.setFirst(groupContact.id());
   175             relationship.setFirst(groupContact.id());
   173             relationship.setSecond(aContact->id());
   176             relationship.setSecond(aContact->id());
   174             mgr->removeRelationship(relationship);  
   177             mgr.removeRelationship(relationship);  
   175         }
   178         }
   176     }
   179     }
   177 }
   180 }
   178 
   181 
   179 // EOF
   182 // EOF