logsui/logscntfinder/src/logscntfinder.cpp
changeset 14 f27aebe284bb
parent 11 64a47b97e1e1
child 15 76d2cf7a585e
equal deleted inserted replaced
11:64a47b97e1e1 14:f27aebe284bb
    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