messagingapp/msgappfw/server/src/ccscontactsresolver.cpp
changeset 25 84d9eb65b26f
parent 23 238255e8b033
child 27 e4592d119491
child 37 518b245aa84c
equal deleted inserted replaced
23:238255e8b033 25:84d9eb65b26f
    14  * Description: QT contact resolver interface
    14  * Description: QT contact resolver interface
    15  *
    15  *
    16  */
    16  */
    17 
    17 
    18 // SYSTEM INCLUDES
    18 // SYSTEM INCLUDES
    19 //#include <QtContacts> 
       
    20 #include "qtcontacts.h" 
    19 #include "qtcontacts.h" 
    21 #include "qcontactdetailfilter.h"
    20 #include "qcontactdetailfilter.h"
    22 #include "qcontactdetail.h"
    21 #include <QList>
    23 
    22 
    24 #include <QList>
       
    25 // USER INCLUDES
    23 // USER INCLUDES
    26 #include "ccscontactsresolver.h"
    24 #include "ccscontactsresolver.h"
    27 #include "qcontactnickname.h"
       
    28 #include "qcontactorganization.h"
       
    29 // ======================== Member Functions ====================
    25 // ======================== Member Functions ====================
    30 
    26 
    31 // ----------------------------------------------------------------------------
    27 // ----------------------------------------------------------------------------
    32 // CCsContactsResolver::ContactsResolver
    28 // CCsContactsResolver::ContactsResolver
    33 // @see contactsresolver.h
    29 // @see contactsresolver.h
    53 bool CCsContactsResolver::resolveContact(
    49 bool CCsContactsResolver::resolveContact(
    54         const QString &address,
    50         const QString &address,
    55         CCsContactDetail &contactDetail)
    51         CCsContactDetail &contactDetail)
    56     {
    52     {
    57     QContactDetailFilter phoneFilter;
    53     QContactDetailFilter phoneFilter;
    58     phoneFilter.setDetailDefinitionName(QContactPhoneNumber::DefinitionName, QContactPhoneNumber::FieldNumber);
    54     phoneFilter.setDetailDefinitionName(
       
    55             QContactPhoneNumber::DefinitionName, 
       
    56             QContactPhoneNumber::FieldNumber);
       
    57     
    59     phoneFilter.setValue(address);
    58     phoneFilter.setValue(address);
    60     phoneFilter.setMatchFlags(QContactFilter::MatchEndsWith);
    59     phoneFilter.setMatchFlags(QContactFilter::MatchEndsWith);
    61 
    60 
    62     QList<QContactLocalId> matchingContacts = mPhonebookManager->contacts(phoneFilter);
    61     QList<QContactSortOrder> sortOrder;
       
    62     QList<QContact> matchingContacts = mPhonebookManager->contacts(
       
    63                                                 phoneFilter,
       
    64                                                 sortOrder,
       
    65                                                 QStringList());
    63 
    66 
    64     if ( matchingContacts.count() > 0 ) {		
    67     if ( matchingContacts.count() > 0 ) {	        
    65     // Fill the contact details
    68         QContact match = matchingContacts.at(0);
    66     contactDetail.contactId = matchingContacts.at(0);
    69         // Fill the contact details        
    67     QContact match = mPhonebookManager->contact(matchingContacts.at(0));
    70         contactDetail.contactId = match.localId();
    68 
    71         contactDetail.displayName = match.displayLabel();   
    69     QContactName nameDetails = match.detail(QContactName::DefinitionName);
    72         return true;
    70 
    73     }
    71     QContactName name = match.detail(QContactName::DefinitionName);
       
    72     contactDetail.firstName = name.first();
       
    73     contactDetail.lastName = name.last();
       
    74     
       
    75     contactDetail.nickName = match.detail<QContactNickname>().nickname();
       
    76     
       
    77     //campany name QContactOrganization
       
    78     contactDetail.companyName = match.detail<QContactOrganization>().name();
       
    79     
       
    80     return true;
       
    81 
       
    82     }		
       
    83     return false;
    74     return false;
    84     }
    75     }
    85 
    76 
    86 // ----------------------------------------------------------------------------
    77 // ----------------------------------------------------------------------------
    87 // CCsContactsResolver::resolveContactId
    78 // CCsContactsResolver::resolveContactId
    92         CCsContactDetail &contactDetail)	
    83         CCsContactDetail &contactDetail)	
    93     {
    84     {
    94     // Fetch back the persisted contact
    85     // Fetch back the persisted contact
    95     QContact contact = mPhonebookManager->contact(contactId);
    86     QContact contact = mPhonebookManager->contact(contactId);
    96     contactDetail.contactId = contact.localId(); 
    87     contactDetail.contactId = contact.localId(); 
    97     QContactName name = contact.detail(QContactName::DefinitionName);
       
    98     contactDetail.firstName = name.first();
       
    99     contactDetail.lastName = name.last();
       
   100     
    88     
       
    89     contactDetail.displayName = contact.displayLabel();
       
    90         
   101     QList<QContactPhoneNumber> numbers = contact.details<QContactPhoneNumber>();
    91     QList<QContactPhoneNumber> numbers = contact.details<QContactPhoneNumber>();
   102     int numberCount = numbers.count();
    92     int numberCount = numbers.count();
   103 
    93 
   104     for ( int a=0; a<numberCount ;++a)
    94     for ( int a=0; a<numberCount ;++a)
   105         {
    95         {
   106         QString phoneNumber= numbers.at(a).number();
    96         QString phoneNumber= numbers.at(a).number();
   107         contactDetail.addressList.append(phoneNumber);
    97         contactDetail.addressList.append(phoneNumber);
   108         }
    98         }    
   109     
       
   110     QContactNickname nickName = contact.detail(QContactName::DefinitionName);
       
   111     contactDetail.nickName = nickName.nickname();
       
   112     
       
   113     //company name QContactOrganization
       
   114     contactDetail.companyName = contact.detail<QContactOrganization>().name();
       
   115     }
    99     }
   116 
   100 
   117 // EOF
   101 // EOF