32 |
32 |
33 // ----------------------------------------------------------------------------- |
33 // ----------------------------------------------------------------------------- |
34 // LogsCntFinder::LogsCntFinder() |
34 // LogsCntFinder::LogsCntFinder() |
35 // ----------------------------------------------------------------------------- |
35 // ----------------------------------------------------------------------------- |
36 // |
36 // |
37 LogsCntFinder::LogsCntFinder() |
37 LogsCntFinder::LogsCntFinder(bool preferDefaultNumber) |
38 : mCachedCounter(0) |
38 : mPreferDefaultNumber(preferDefaultNumber), mCachedCounter(0) |
39 { |
39 { |
40 LOGS_QDEBUG( "logs [FINDER] -> LogsCntFinder::LogsCntFinder()" ) |
40 LOGS_QDEBUG( "logs [FINDER] -> LogsCntFinder::LogsCntFinder()" ) |
41 |
41 |
42 // Create manager ourselves, object takes care of deletion when registering |
42 // Create manager ourselves, object takes care of deletion when registering |
43 // as parent. |
43 // as parent. |
49 |
49 |
50 // ----------------------------------------------------------------------------- |
50 // ----------------------------------------------------------------------------- |
51 // LogsCntFinder::LogsCntFinder() |
51 // LogsCntFinder::LogsCntFinder() |
52 // ----------------------------------------------------------------------------- |
52 // ----------------------------------------------------------------------------- |
53 // |
53 // |
54 LogsCntFinder::LogsCntFinder(QContactManager& contactManager) |
54 LogsCntFinder::LogsCntFinder(QContactManager& contactManager, bool preferDefaultNumber) |
55 : mCachedCounter(0) |
55 : mPreferDefaultNumber(preferDefaultNumber), mCachedCounter(0) |
56 { |
56 { |
57 LOGS_QDEBUG( "logs [FINDER] -> LogsCntFinder::LogsCntFinder(), cntmgr from client" ) |
57 LOGS_QDEBUG( "logs [FINDER] -> LogsCntFinder::LogsCntFinder(), cntmgr from client" ) |
58 |
58 |
59 mContactManager = &contactManager; |
59 mContactManager = &contactManager; |
60 |
60 |
271 { |
271 { |
272 LogsPredictiveTranslator* translator = |
272 LogsPredictiveTranslator* translator = |
273 LogsPredictiveTranslator::instance(); |
273 LogsPredictiveTranslator::instance(); |
274 |
274 |
275 mCurrentInputPattern = pattern; |
275 mCurrentInputPattern = pattern; |
276 mCurrentPredictivePattern = translator->translatePattern( mCurrentInputPattern ); |
276 mCurrentPredictivePattern = translator->translatePattern( mCurrentInputPattern ); |
277 |
277 } |
|
278 |
|
279 // ----------------------------------------------------------------------------- |
|
280 // LogsCntFinder::phoneNumber |
|
281 // ----------------------------------------------------------------------------- |
|
282 // |
|
283 QString LogsCntFinder::phoneNumber(const QContact& contact) const |
|
284 { |
|
285 LOGS_QDEBUG( "logs [FINDER] -> LogsCntFinder::phoneNumber()" ) |
|
286 QString number; |
|
287 if (mPreferDefaultNumber) { |
|
288 number = contact.preferredDetail("call").value( |
|
289 QContactPhoneNumber::FieldNumber ); |
|
290 if (number.isEmpty()) { |
|
291 number = contact.detailWithAction("call").value( |
|
292 QContactPhoneNumber::FieldNumber ); |
|
293 } |
|
294 } |
|
295 |
|
296 if (number.isEmpty()) { |
|
297 QContactPhoneNumber contactPhoneNumber = |
|
298 contact.detail( QContactPhoneNumber::DefinitionName ); |
|
299 number = contactPhoneNumber.value( QContactPhoneNumber::FieldNumber ); |
|
300 } |
|
301 LOGS_QDEBUG_2( "logs [FINDER] -> LogsCntFinder::phoneNumber(): ", number ) |
|
302 return number; |
278 } |
303 } |
279 |
304 |
280 // ----------------------------------------------------------------------------- |
305 // ----------------------------------------------------------------------------- |
281 // LogsCntFinder::resultsCount |
306 // LogsCntFinder::resultsCount |
282 // ----------------------------------------------------------------------------- |
307 // ----------------------------------------------------------------------------- |
300 LOGS_QDEBUG_2( "logs [FINDER] caching from DB cid=", entry->contactId() ) |
325 LOGS_QDEBUG_2( "logs [FINDER] caching from DB cid=", entry->contactId() ) |
301 QContact contact = mContactManager->contact( entry->contactId() ); |
326 QContact contact = mContactManager->contact( entry->contactId() ); |
302 QContactName contactName = contact.detail( QContactName::DefinitionName ); |
327 QContactName contactName = contact.detail( QContactName::DefinitionName ); |
303 entry->setFirstName( contactName.value( QContactName::FieldFirstName ) ); |
328 entry->setFirstName( contactName.value( QContactName::FieldFirstName ) ); |
304 entry->setLastName( contactName.value( QContactName::FieldLastName ) ); |
329 entry->setLastName( contactName.value( QContactName::FieldLastName ) ); |
305 QContactPhoneNumber contactPhoneNumber = |
330 entry->setPhoneNumber(phoneNumber(contact)); |
306 contact.detail( QContactPhoneNumber::DefinitionName ); |
|
307 entry->setPhoneNumber( |
|
308 contactPhoneNumber.value( QContactPhoneNumber::FieldNumber ) ); |
|
309 QContactAvatar contactAvatar = contact.detail<QContactAvatar>(); |
331 QContactAvatar contactAvatar = contact.detail<QContactAvatar>(); |
310 QString avatar = contactAvatar.value( QContactAvatar::FieldImageUrl ); |
332 QString avatar = contactAvatar.value( QContactAvatar::FieldImageUrl ); |
311 entry->setAvatarPath( avatar ); |
333 entry->setAvatarPath( avatar ); |
312 |
334 |
313 updateResult( entry ); |
335 updateResult( entry ); |
314 } |
336 } |
315 LOGS_QDEBUG( "logs [FINDER] <- LogsCntFinder::resultAt()" ) |
337 LOGS_QDEBUG( "logs [FINDER] <- LogsCntFinder::resultAt()" ) |
316 return *entry; |
338 return *entry; |
317 } |
339 } |
318 |
340 |
319 |
|
320 // ----------------------------------------------------------------------------- |
341 // ----------------------------------------------------------------------------- |
321 // LogsCntFinder::insertEntry |
342 // LogsCntFinder::insertEntry |
322 // ----------------------------------------------------------------------------- |
343 // ----------------------------------------------------------------------------- |
323 // |
344 // |
324 void LogsCntFinder::insertEntry( int index, LogsCntEntry* entry ) |
345 void LogsCntFinder::insertEntry( int index, LogsCntEntry* entry ) |
336 // ----------------------------------------------------------------------------- |
357 // ----------------------------------------------------------------------------- |
337 // |
358 // |
338 LogsCntEntry* LogsCntFinder::getEntry( const LogsCntEntryHandle& handle ) const |
359 LogsCntEntry* LogsCntFinder::getEntry( const LogsCntEntryHandle& handle ) const |
339 { |
360 { |
340 LOGS_QDEBUG( "logs [FINDER] -> LogsCntFinder::getEntry()" ) |
361 LOGS_QDEBUG( "logs [FINDER] -> LogsCntFinder::getEntry()" ) |
341 return doGetEntry( mHistoryEvents, handle ); |
362 return doGetEntry( mHistoryEvents, handle ); |
342 } |
363 } |
343 |
364 |
344 // ----------------------------------------------------------------------------- |
365 // ----------------------------------------------------------------------------- |
345 // LogsCntFinder::doGetEntry |
366 // LogsCntFinder::doGetEntry |
346 // ----------------------------------------------------------------------------- |
367 // ----------------------------------------------------------------------------- |
379 |
400 |
380 LOGS_QDEBUG( "logs [FINDER] <- LogsCntFinder::deleteEntry()" ) |
401 LOGS_QDEBUG( "logs [FINDER] <- LogsCntFinder::deleteEntry()" ) |
381 |
402 |
382 } |
403 } |
383 |
404 |
384 |
405 // ----------------------------------------------------------------------------- |
385 |
406 // LogsCntFinder::setPreferDefaultNumber |
386 |
407 // ----------------------------------------------------------------------------- |
|
408 // |
|
409 void LogsCntFinder::setPreferDefaultNumber(bool preferDefault) |
|
410 { |
|
411 if (mPreferDefaultNumber != preferDefault) { |
|
412 resetResults(); |
|
413 mPreferDefaultNumber = preferDefault; |
|
414 } |
|
415 } |
|
416 |
|
417 // ----------------------------------------------------------------------------- |
|
418 // LogsCntFinder::setPreferDefaultNumber |
|
419 // ----------------------------------------------------------------------------- |
|
420 // |
|
421 bool LogsCntFinder::preferDefaultNumber() const |
|
422 { |
|
423 return mPreferDefaultNumber; |
|
424 } |
|
425 |
|
426 |
|
427 // ----------------------------------------------------------------------------- |
|
428 // LogsCntFinder::resetResults |
|
429 // ----------------------------------------------------------------------------- |
|
430 // |
|
431 void LogsCntFinder::resetResults() |
|
432 { |
|
433 qDeleteAll( mResults ); |
|
434 mResults.clear(); |
|
435 mCachedCounter = 0; |
|
436 } |
|
437 |
|
438 |
|
439 |