messagingapp/msgui/conversationview/src/msgcontactcardwidget.cpp
changeset 70 a15d9966050f
parent 52 12db4185673b
child 72 6f657153cbc5
equal deleted inserted replaced
61:8ba0afbb4637 70:a15d9966050f
   343 // MsgContactCardWidget::openContactInfo
   343 // MsgContactCardWidget::openContactInfo
   344 // @see header
   344 // @see header
   345 //---------------------------------------------------------------
   345 //---------------------------------------------------------------
   346 void MsgContactCardWidget::openContactInfo()
   346 void MsgContactCardWidget::openContactInfo()
   347 {
   347 {
       
   348     //service stuff.
       
   349     QString service("phonebookservices");
       
   350     QString interface;
   348     QString operation;
   351     QString operation;
   349     QList<QVariant> args;
   352     QList<QVariant> args;
   350     if (KBluetoothMsgsConversationId != ConversationsEngine::instance()->getCurrentConversationId()) {
   353     if (KBluetoothMsgsConversationId != ConversationsEngine::instance()->getCurrentConversationId()) {
   351         int contactId = resolveContactId(mContactNumber);
   354         int contactId = resolveContactId(mContactNumber);
   352         if (contactId > 0) {
   355         if (contactId > 0) {
   353             //open existing contact card
   356             //open existing contact card
   354             operation = QString("open(int)");
   357             interface = QString("com.nokia.symbian.IContactsView");
       
   358             operation = QString("openContactCard(int)");
   355             args << contactId;
   359             args << contactId;
   356         }
   360         }
   357         else {
   361         else {
   358             //populate data and open unknown contact template
   362             //populate data and open unknown contact template
       
   363             interface = QString("com.nokia.symbian.IContactsEdit");
   359             operation = QString("editCreateNew(QString,QString)");
   364             operation = QString("editCreateNew(QString,QString)");
   360             QString type = QContactPhoneNumber::DefinitionName;
   365             QString type = QContactPhoneNumber::DefinitionName;
   361 
       
   362             args << type;
   366             args << type;
   363             args << mAddress;
   367             args << mAddress;
   364         }
   368         }
   365         //service stuff.
       
   366         QString serviceName("com.nokia.services.phonebookservices");
       
   367 
       
   368         XQAiwRequest* request;
   369         XQAiwRequest* request;
   369         XQApplicationManager appManager;
   370         XQApplicationManager appManager;
   370         request = appManager.create(serviceName, "Fetch", operation, true); // embedded
   371         request = appManager.create(service, interface, operation, true); // embedded
   371         if (request == NULL) {
   372         if (request == NULL) {
   372             return;
   373             return;
   373         }
   374         }
   374 
   375 
   375         // Result handlers
   376         // Result handlers
   377         connect(request, SIGNAL(requestError(const QVariant&)), this,
   378         connect(request, SIGNAL(requestError(const QVariant&)), this,
   378             SLOT(handleError(const QVariant&)));
   379             SLOT(handleError(const QVariant&)));
   379 
   380 
   380         //disbale subscritption for the CV events
   381         //disbale subscritption for the CV events
   381         ConversationsEngine::instance()->disableRegisterationForCVEvents();
   382         ConversationsEngine::instance()->disableRegisterationForCVEvents();
   382                 
   383 
   383         request->setArguments(args);
   384         request->setArguments(args);
   384         request->send();
   385         request->send();
   385         delete request;
   386         delete request;
   386     }
   387     }
   387 }
   388 }
   437     Q_UNUSED(result)
   438     Q_UNUSED(result)
   438 
   439 
   439     QList<QContact> matchingContacts = MsgContactHandler::findContactList(mContactNumber);
   440     QList<QContact> matchingContacts = MsgContactHandler::findContactList(mContactNumber);
   440 
   441 
   441     if (!matchingContacts.isEmpty()) {
   442     if (!matchingContacts.isEmpty()) {
   442         setAddress(matchingContacts.at(0).displayLabel());
   443         QString displayLabel = matchingContacts.at(0).displayLabel();
   443 
   444         if(!displayLabel.isEmpty())
       
   445         {
       
   446             setAddress(displayLabel);
       
   447         }
       
   448         else
       
   449         {
       
   450             setAddress(mContactNumber);
       
   451         }
       
   452         
   444         QList<QContactAvatar> avatarDetails = matchingContacts.at(0).details<QContactAvatar> ();
   453         QList<QContactAvatar> avatarDetails = matchingContacts.at(0).details<QContactAvatar> ();
   445 
   454 
   446         if (!avatarDetails.isEmpty()) {
   455         if (!avatarDetails.isEmpty()) {
   447             mThumbnailManager->getThumbnail(avatarDetails.at(0).imageUrl().toString());
   456             mThumbnailManager->getThumbnail(avatarDetails.at(0).imageUrl().toString());
   448         }
   457         }