18 #include "cntcontactcarddatacontainer.h" |
18 #include "cntcontactcarddatacontainer.h" |
19 #include "cntcontactcarddataitem.h" |
19 #include "cntcontactcarddataitem.h" |
20 #include <cntmaptileservice.h> //For fetching maptile |
20 #include <cntmaptileservice.h> //For fetching maptile |
21 |
21 |
22 #include <QPainter> |
22 #include <QPainter> |
|
23 #include <QList> |
23 #include <qtcontacts.h> |
24 #include <qtcontacts.h> |
24 #include <hbicon.h> |
25 #include <hbicon.h> |
25 #include <cntviewparams.h> |
26 #include <cntviewparams.h> |
26 |
27 |
27 #include "cntstringmapper.h" |
28 #include "cntstringmapper.h" |
|
29 |
|
30 /*! |
|
31 Compare function for CntContactCardDataItem |
|
32 */ |
|
33 namespace |
|
34 { |
|
35 bool compareObjects(const CntContactCardDataItem *d1, const CntContactCardDataItem *d2) |
|
36 { |
|
37 return d1->mPosition < d2->mPosition; |
|
38 } |
|
39 } |
28 |
40 |
29 /*! |
41 /*! |
30 Constructor |
42 Constructor |
31 */ |
43 */ |
32 CntContactCardDataContainer::CntContactCardDataContainer(QContact* contact, QObject *parent) : mContact(contact), mSeparatorIndex(-1) |
44 CntContactCardDataContainer::CntContactCardDataContainer(QContact* contact, QObject *parent) : mContact(contact), mSeparatorIndex(-1) |
70 for (int i = 0; i < details.count(); i++) |
82 for (int i = 0; i < details.count(); i++) |
71 { |
83 { |
72 if (availableActions.contains("call", Qt::CaseInsensitive) && supportsDetail("call", details[i]) && details[i].definitionName() == QContactPhoneNumber::DefinitionName) |
84 if (availableActions.contains("call", Qt::CaseInsensitive) && supportsDetail("call", details[i]) && details[i].definitionName() == QContactPhoneNumber::DefinitionName) |
73 { |
85 { |
74 QContactPhoneNumber number(details.at(i)); |
86 QContactPhoneNumber number(details.at(i)); |
75 QString title; |
87 |
76 QString icon; |
88 QString context = number.contexts().isEmpty() ? QString() : number.contexts().first(); |
77 if (!number.contexts().isEmpty()) |
89 QString subtype = number.subTypes().isEmpty() ? number.definitionName() : number.subTypes().first(); |
78 { |
|
79 title = mStringMapper.getContactCardListLocString(number.subTypes().first(), number.contexts().first()); |
|
80 icon = mStringMapper.getContactCardIconString(number.subTypes().first(), number.contexts().first()); |
|
81 } |
|
82 else |
|
83 { |
|
84 title = mStringMapper.getContactCardListLocString(number.subTypes().first(), QString()); |
|
85 icon = mStringMapper.getContactCardIconString(number.subTypes().first(), QString()); |
|
86 } |
|
87 |
90 |
88 CntContactCardDataItem* dataItem = new CntContactCardDataItem(title, true); |
91 CntContactCardDataItem* dataItem = new CntContactCardDataItem(mStringMapper.getContactCardListLocString(subtype, context), itemCount(), true); |
89 dataItem->setAction("call"); |
92 dataItem->setAction("call"); |
90 dataItem->setValueText(number.number()); |
93 dataItem->setValueText(number.number()); |
91 dataItem->setIcon(HbIcon(icon)); |
94 dataItem->setIcon(HbIcon(mStringMapper.getContactCardIconString(subtype, context))); |
92 dataItem->setContactDetail(number); |
95 dataItem->setContactDetail(number); |
93 mDataItemList.insert(itemCount(), dataItem); |
96 mDataItemList.insert(itemCount(), dataItem); |
94 } |
97 } |
95 |
98 |
96 if (availableActions.contains("message", Qt::CaseInsensitive) && supportsDetail("message", details[i]) && details[i].definitionName() == QContactPhoneNumber::DefinitionName) |
99 if (availableActions.contains("message", Qt::CaseInsensitive) && supportsDetail("message", details[i]) && details[i].definitionName() == QContactPhoneNumber::DefinitionName) |
97 { |
100 { |
98 QContactPhoneNumber number(details.at(i)); |
101 QContactPhoneNumber number(details.at(i)); |
99 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_dblist_send_message"), true); |
102 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_dblist_send_message"), itemCount(), true); |
100 dataItem->setAction("message"); |
103 dataItem->setAction("message"); |
101 dataItem->setValueText(number.number()); |
104 dataItem->setValueText(number.number()); |
102 QString icon; |
105 QString icon; |
103 if (number.contexts().isEmpty()) |
106 if (number.contexts().isEmpty()) |
104 { |
107 { |
117 icon = "qtg_large_message"; |
120 icon = "qtg_large_message"; |
118 } |
121 } |
119 dataItem->setIcon(HbIcon(icon)); |
122 dataItem->setIcon(HbIcon(icon)); |
120 dataItem->setContactDetail(number); |
123 dataItem->setContactDetail(number); |
121 mDataItemList.insert(itemCount(), dataItem); |
124 mDataItemList.insert(itemCount(), dataItem); |
122 } |
125 } |
123 } |
126 } |
124 |
|
125 //email |
127 //email |
126 if (availableActions.contains("email", Qt::CaseInsensitive)) |
128 if (availableActions.contains("email", Qt::CaseInsensitive)) |
127 { |
129 { |
128 QList<QContactDetail> details = actionDetails("email", *mContact); |
130 QList<QContactDetail> details = actionDetails("email", *mContact); |
129 for (int i = 0; i < details.count(); i++) |
131 for (int i = 0; i < details.count(); i++) |
130 { |
132 { |
131 if (details[i].definitionName() == QContactEmailAddress::DefinitionName) |
133 QContactEmailAddress email(details.at(i)); |
132 { |
134 QString context = email.contexts().isEmpty() ? QString() : email.contexts().first(); |
133 QContactEmailAddress email(details.at(i)); |
135 |
134 QString title; |
136 CntContactCardDataItem* dataItem = new CntContactCardDataItem(mStringMapper.getContactCardListLocString(email.definitionName(), context), itemCount(), true); |
135 QString icon; |
137 dataItem->setAction("email"); |
136 if (!email.contexts().isEmpty()) |
138 dataItem->setValueText(email.emailAddress(), Qt::ElideLeft); |
137 { |
139 dataItem->setIcon(HbIcon(mStringMapper.getContactCardIconString(email.definitionName(), context))); |
138 title = mStringMapper.getContactCardListLocString(email.definitionName(), email.contexts().first()); |
140 dataItem->setContactDetail(email); |
139 icon = mStringMapper.getContactCardIconString(email.definitionName(), email.contexts().first()); |
141 mDataItemList.insert(itemCount(), dataItem); |
140 } |
142 } |
141 else |
143 } |
142 { |
144 //url |
143 title = mStringMapper.getContactCardListLocString(email.definitionName(), QString()); |
145 QList<QContactUrl> urlDetails = mContact->details<QContactUrl>(); |
144 icon = mStringMapper.getContactCardIconString(email.definitionName(), QString()); |
146 for (int i = 0; i < urlDetails.count(); i++) |
145 } |
147 { |
146 |
148 QContactUrl url(urlDetails.at(i)); |
147 CntContactCardDataItem* dataItem = new CntContactCardDataItem(title, true); |
149 QString context = url.contexts().isEmpty() ? QString() : url.contexts().first(); |
148 dataItem->setAction("email"); |
150 |
149 dataItem->setValueText(email.emailAddress(), Qt::ElideLeft); |
151 CntContactCardDataItem* dataItem = new CntContactCardDataItem(mStringMapper.getContactCardListLocString(url.definitionName(), context), itemCount(), true); |
150 dataItem->setIcon(HbIcon(icon)); |
152 dataItem->setAction("url"); |
151 dataItem->setContactDetail(email); |
153 dataItem->setValueText(url.url()); |
152 mDataItemList.insert(itemCount(), dataItem); |
154 dataItem->setIcon(HbIcon(mStringMapper.getContactCardIconString(url.definitionName(), context))); |
153 } |
155 dataItem->setContactDetail(url); |
154 } |
156 mDataItemList.insert(itemCount(), dataItem); |
155 } |
157 } |
156 } |
158 } |
157 |
159 |
158 /*! |
160 /*! |
159 Initialize group details which includes actions. |
161 Initialize group details which includes actions. |
164 QContactPhoneNumber confCallNumber = mContact->detail<QContactPhoneNumber>(); |
166 QContactPhoneNumber confCallNumber = mContact->detail<QContactPhoneNumber>(); |
165 |
167 |
166 //call |
168 //call |
167 if (confCallNumber.number() != NULL) |
169 if (confCallNumber.number() != NULL) |
168 { |
170 { |
169 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_dblist_conference_call"), true); |
171 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_dblist_conference_call"), itemCount(), true); |
170 dataItem->setAction("call"); |
172 dataItem->setAction("call"); |
171 dataItem->setValueText(confCallNumber.number()); |
173 dataItem->setValueText(confCallNumber.number()); |
172 dataItem->setIcon(HbIcon("qtg_large_call_group")); |
174 dataItem->setIcon(HbIcon("qtg_large_call_group")); |
173 dataItem->setContactDetail(confCallNumber); |
175 dataItem->setContactDetail(confCallNumber); |
174 mDataItemList.insert(itemCount(), dataItem); |
176 mDataItemList.insert(itemCount(), dataItem); |
175 } |
177 } |
176 |
178 |
177 //message |
179 //message |
178 CntContactCardDataItem* dataMessageItem = new CntContactCardDataItem(hbTrId("txt_phob_dblist_send_val_members"), true); |
180 CntContactCardDataItem* dataMessageItem = new CntContactCardDataItem(hbTrId("txt_phob_dblist_send_val_members"), itemCount(), true); |
179 dataMessageItem->setAction("message"); |
181 dataMessageItem->setAction("message"); |
180 dataMessageItem->setValueText(confCallNumber.number()); |
182 dataMessageItem->setValueText(confCallNumber.number()); |
181 dataMessageItem->setIcon(HbIcon("qtg_large_message")); |
183 dataMessageItem->setIcon(HbIcon("qtg_large_message")); |
182 dataMessageItem->setContactDetail(confCallNumber); |
184 dataMessageItem->setContactDetail(confCallNumber); |
183 mDataItemList.insert(itemCount(), dataMessageItem); |
185 mDataItemList.insert(itemCount(), dataMessageItem); |
184 |
186 |
185 //email |
187 //email |
186 CntContactCardDataItem* dataEmailItem = new CntContactCardDataItem(hbTrId("txt_phob_dblist_email"), true); |
188 CntContactCardDataItem* dataEmailItem = new CntContactCardDataItem(hbTrId("txt_phob_dblist_email"), itemCount(), true); |
187 dataEmailItem->setAction("email"); |
189 dataEmailItem->setAction("email"); |
188 dataEmailItem->setValueText(confCallNumber.number()); |
190 dataEmailItem->setValueText(confCallNumber.number()); |
189 dataEmailItem->setIcon(HbIcon("qtg_large_email")); |
191 dataEmailItem->setIcon(HbIcon("qtg_large_email")); |
190 dataEmailItem->setContactDetail(confCallNumber); |
192 dataEmailItem->setContactDetail(confCallNumber); |
191 mDataItemList.insert(itemCount(), dataEmailItem); |
193 mDataItemList.insert(itemCount(), dataEmailItem); |
194 /*! |
196 /*! |
195 Initialize contact details which not include actions. |
197 Initialize contact details which not include actions. |
196 */ |
198 */ |
197 void CntContactCardDataContainer::initializeDetailsData() |
199 void CntContactCardDataContainer::initializeDetailsData() |
198 { |
200 { |
|
201 //sip & internet call |
|
202 QList<QContactOnlineAccount> onlinedDetails = mContact->details<QContactOnlineAccount>(); |
|
203 for (int i = 0; i < onlinedDetails.count(); i++) |
|
204 { |
|
205 QContactOnlineAccount online(onlinedDetails.at(i)); |
|
206 QString context = online.contexts().isEmpty() ? QString() : online.contexts().first(); |
|
207 QString subtype = online.subTypes().isEmpty() ? online.definitionName() : online.subTypes().first(); |
|
208 |
|
209 CntContactCardDataItem* dataItem = new CntContactCardDataItem(mStringMapper.getContactCardListLocString(subtype, context), itemCount(), false); |
|
210 dataItem->setValueText(online.accountUri()); |
|
211 dataItem->setContactDetail(online); |
|
212 addSeparator(itemCount()); |
|
213 mDataItemList.insert(itemCount(), dataItem); |
|
214 } |
|
215 |
|
216 //address |
199 QString contextHome(QContactAddress::ContextHome.operator QString()); |
217 QString contextHome(QContactAddress::ContextHome.operator QString()); |
200 QString contextWork(QContactAddress::ContextWork.operator QString()); |
218 QString contextWork(QContactAddress::ContextWork.operator QString()); |
201 CntMapTileService::ContactAddressType sourceAddressType; |
219 CntMapTileService::ContactAddressType sourceAddressType; |
202 mLocationFeatureEnabled = CntMapTileService::isLocationFeatureEnabled() ; |
220 mLocationFeatureEnabled = CntMapTileService::isLocationFeatureEnabled() ; |
203 //address |
221 |
204 QList<QContactAddress> addressDetails = mContact->details<QContactAddress>(); |
222 QList<QContactAddress> addressDetails = mContact->details<QContactAddress>(); |
205 for (int i = 0; i < addressDetails.count(); i++) |
223 for (int i = 0; i < addressDetails.count(); i++) |
206 { |
224 { |
207 sourceAddressType = CntMapTileService::AddressPreference; |
225 sourceAddressType = CntMapTileService::AddressPreference; |
208 QVariantList addressList; |
226 QVariantList addressList; |
263 //Display the maptile image |
281 //Display the maptile image |
264 HbIcon icon(imageFile); |
282 HbIcon icon(imageFile); |
265 QIcon mapTileIcon; |
283 QIcon mapTileIcon; |
266 |
284 |
267 QPainter painter; |
285 QPainter painter; |
268 QPixmap baloon(":/icons/pin.png"); |
286 QPixmap baloon( HbIcon("qtg_small_location").pixmap() ); |
269 QPixmap map(icon.pixmap()); |
287 QPixmap map(icon.pixmap()); |
270 |
288 |
271 //Display pin image in the center of maptile image |
289 //Display pin image in the center of maptile image |
272 painter.begin(&map); |
290 painter.begin(&map); |
273 painter.drawPixmap((map.width()/2), |
291 painter.drawPixmap( ( map.width()/2 ) - ( baloon.width()/ 2 ), |
274 ((map.height()/2)-(baloon.height())), baloon); |
292 (( map.height()/2 )-( baloon.height())), baloon ); |
|
293 |
275 painter.end(); |
294 painter.end(); |
276 mapTileIcon.addPixmap(map); |
295 mapTileIcon.addPixmap(map); |
277 |
296 |
278 addSeparator(itemCount()); |
297 addSeparator(itemCount()); |
279 |
298 |
280 CntContactCardDataItem* dataItem = new CntContactCardDataItem(QString(), false); |
299 CntContactCardDataItem* dataItem = new CntContactCardDataItem(QString(), itemCount(), false); |
281 dataItem->setIcon(HbIcon(mapTileIcon)); |
300 dataItem->setIcon(HbIcon(mapTileIcon)); |
282 mDataItemList.insert(itemCount(), dataItem); |
301 mDataItemList.insert(itemCount(), dataItem); |
283 } |
302 } |
284 } |
303 } |
285 } |
304 } |
286 |
305 |
|
306 //company |
|
307 QList<QContactOrganization> organizationDetails = mContact->details<QContactOrganization>(); |
|
308 for (int i = 0; i < organizationDetails.count(); i++) |
|
309 { |
|
310 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_company_details"), itemCount(), false); |
|
311 QStringList companyList; |
|
312 companyList << organizationDetails[i].title() << organizationDetails[i].name() << organizationDetails[i].department(); |
|
313 dataItem->setValueText(companyList.join(" ").trimmed()); |
|
314 dataItem->setContactDetail(organizationDetails[i]); |
|
315 addSeparator(itemCount()); |
|
316 mDataItemList.insert(itemCount(), dataItem); |
|
317 } |
|
318 |
287 //birthday |
319 //birthday |
288 QList<QContactBirthday> birthdayDetails = mContact->details<QContactBirthday>(); |
320 QList<QContactBirthday> birthdayDetails = mContact->details<QContactBirthday>(); |
289 for (int i = 0; i < birthdayDetails.count(); i++) |
321 for (int i = 0; i < birthdayDetails.count(); i++) |
290 { |
322 { |
291 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_birthday"), false); |
323 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_birthday"), itemCount(), false); |
292 dataItem->setValueText(birthdayDetails[i].date().toString("dd MMMM yyyy")); |
324 dataItem->setValueText(birthdayDetails[i].date().toString("dd MMMM yyyy")); |
293 dataItem->setContactDetail(birthdayDetails[i]); |
325 dataItem->setContactDetail(birthdayDetails[i]); |
294 addSeparator(itemCount()); |
326 addSeparator(itemCount()); |
295 mDataItemList.insert(itemCount(), dataItem); |
327 mDataItemList.insert(itemCount(), dataItem); |
296 } |
328 } |
297 |
329 |
298 //anniversary |
330 //anniversary |
299 QList<QContactAnniversary> anniversaryDetails = mContact->details<QContactAnniversary>(); |
331 QList<QContactAnniversary> anniversaryDetails = mContact->details<QContactAnniversary>(); |
300 for (int i = 0; i < anniversaryDetails.count(); i++) |
332 for (int i = 0; i < anniversaryDetails.count(); i++) |
301 { |
333 { |
302 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_anniversary"), false); |
334 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_anniversary"), itemCount(), false); |
303 dataItem->setValueText(anniversaryDetails[i].originalDate().toString("dd MMMM yyyy")); |
335 dataItem->setValueText(anniversaryDetails[i].originalDate().toString("dd MMMM yyyy")); |
304 dataItem->setContactDetail(anniversaryDetails[i]); |
336 dataItem->setContactDetail(anniversaryDetails[i]); |
305 addSeparator(itemCount()); |
337 addSeparator(itemCount()); |
306 mDataItemList.insert(itemCount(), dataItem); |
338 mDataItemList.insert(itemCount(), dataItem); |
307 } |
339 } |
310 QList<QContactRingtone> ringtoneDetails = mContact->details<QContactRingtone>(); |
342 QList<QContactRingtone> ringtoneDetails = mContact->details<QContactRingtone>(); |
311 for (int i = 0; i < ringtoneDetails.count(); i++) |
343 for (int i = 0; i < ringtoneDetails.count(); i++) |
312 { |
344 { |
313 if (!ringtoneDetails.at(i).audioRingtoneUrl().isEmpty()) |
345 if (!ringtoneDetails.at(i).audioRingtoneUrl().isEmpty()) |
314 { |
346 { |
315 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_ringing_tone"), false); |
347 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_ringing_tone"), itemCount(), false); |
316 dataItem->setValueText(ringtoneDetails[i].audioRingtoneUrl().toString()); |
348 dataItem->setValueText(ringtoneDetails[i].audioRingtoneUrl().toString()); |
317 dataItem->setContactDetail(ringtoneDetails[i]); |
349 dataItem->setContactDetail(ringtoneDetails[i]); |
318 addSeparator(itemCount()); |
350 addSeparator(itemCount()); |
319 mDataItemList.insert(itemCount(), dataItem); |
351 mDataItemList.insert(itemCount(), dataItem); |
320 break; |
352 break; |
323 |
355 |
324 //note |
356 //note |
325 QList<QContactNote> noteDetails = mContact->details<QContactNote>(); |
357 QList<QContactNote> noteDetails = mContact->details<QContactNote>(); |
326 for (int i = 0; i < noteDetails.count(); i++) |
358 for (int i = 0; i < noteDetails.count(); i++) |
327 { |
359 { |
328 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_note"), false); |
360 CntContactCardDataItem* dataItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_note"), itemCount(), false); |
329 dataItem->setValueText(noteDetails[i].note()); |
361 dataItem->setValueText(noteDetails[i].note()); |
330 dataItem->setContactDetail(noteDetails[i]); |
362 dataItem->setContactDetail(noteDetails[i]); |
331 addSeparator(itemCount()); |
363 addSeparator(itemCount()); |
332 mDataItemList.insert(itemCount(), dataItem); |
364 mDataItemList.insert(itemCount(), dataItem); |
333 } |
365 } |
334 |
366 |
335 //family details |
367 //family details |
336 QList<QContactFamily> familyDetails = mContact->details<QContactFamily>(); |
368 QList<QContactFamily> familyDetails = mContact->details<QContactFamily>(); |
337 for (int i = 0; i < familyDetails.count(); i++) |
369 for (int i = 0; i < familyDetails.count(); i++) |
338 { |
370 { |
339 CntContactCardDataItem* dataSpouseItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_spouse"), false); |
371 CntContactCardDataItem* dataSpouseItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_spouse"), itemCount(), false); |
340 dataSpouseItem->setValueText(familyDetails[i].spouse()); |
372 dataSpouseItem->setValueText(familyDetails[i].spouse()); |
341 dataSpouseItem->setContactDetail(familyDetails[i]); |
373 dataSpouseItem->setContactDetail(familyDetails[i]); |
342 addSeparator(itemCount()); |
374 addSeparator(itemCount()); |
343 mDataItemList.insert(itemCount(), dataSpouseItem); |
375 mDataItemList.insert(itemCount(), dataSpouseItem); |
344 |
376 |
345 CntContactCardDataItem* dataChildrenItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_children"), false); |
377 CntContactCardDataItem* dataChildrenItem = new CntContactCardDataItem(hbTrId("txt_phob_formlabel_children"), itemCount(), false); |
346 dataChildrenItem->setValueText(familyDetails[i].children().join(", ")); |
378 dataChildrenItem->setValueText(familyDetails[i].children().join(", ")); |
347 dataChildrenItem->setContactDetail(familyDetails[i]); |
379 dataChildrenItem->setContactDetail(familyDetails[i]); |
348 addSeparator(itemCount()); |
380 addSeparator(itemCount()); |
349 mDataItemList.insert(itemCount(), dataChildrenItem); |
381 mDataItemList.insert(itemCount(), dataChildrenItem); |
350 } |
382 } |
354 Returns true if contactDetails contains spesific action. |
386 Returns true if contactDetails contains spesific action. |
355 */ |
387 */ |
356 bool CntContactCardDataContainer::supportsDetail(const QString &actionName, const QContactDetail &contactDetail) |
388 bool CntContactCardDataContainer::supportsDetail(const QString &actionName, const QContactDetail &contactDetail) |
357 { |
389 { |
358 QList<QContactActionDescriptor> actionDescriptors = QContactAction::actionDescriptors(actionName, "symbian"); |
390 QList<QContactActionDescriptor> actionDescriptors = QContactAction::actionDescriptors(actionName, "symbian"); |
|
391 if (actionDescriptors.isEmpty()) |
|
392 { |
|
393 return false; |
|
394 } |
|
395 |
359 QContactAction* contactAction = QContactAction::action(actionDescriptors.first()); |
396 QContactAction* contactAction = QContactAction::action(actionDescriptors.first()); |
360 |
|
361 bool isSupportDetail = contactAction->isDetailSupported(contactDetail); |
397 bool isSupportDetail = contactAction->isDetailSupported(contactDetail); |
362 |
398 |
363 delete contactAction; |
399 delete contactAction; |
364 |
400 |
365 return isSupportDetail; |
401 return isSupportDetail; |
369 Returns the list of details which current action support. |
405 Returns the list of details which current action support. |
370 */ |
406 */ |
371 QList<QContactDetail> CntContactCardDataContainer::actionDetails(const QString &actionName, const QContact &contact) |
407 QList<QContactDetail> CntContactCardDataContainer::actionDetails(const QString &actionName, const QContact &contact) |
372 { |
408 { |
373 QList<QContactActionDescriptor> actionDescriptors = QContactAction::actionDescriptors(actionName, "symbian"); |
409 QList<QContactActionDescriptor> actionDescriptors = QContactAction::actionDescriptors(actionName, "symbian"); |
374 QContactAction* contactAction = QContactAction::action(actionDescriptors.first()); |
410 if (actionDescriptors.isEmpty()) |
375 |
411 { |
|
412 return QList<QContactDetail>(); |
|
413 } |
|
414 |
|
415 QContactAction* contactAction = QContactAction::action(actionDescriptors.first()); |
376 QList<QContactDetail> details = contactAction->supportedDetails(contact); |
416 QList<QContactDetail> details = contactAction->supportedDetails(contact); |
377 |
417 |
378 delete contactAction; |
418 delete contactAction; |
379 |
419 |
380 return details; |
420 return details; |