--- a/logsui/logscntfinder/src/logscntfinder.cpp Thu Jun 24 14:44:14 2010 +0300
+++ b/logsui/logscntfinder/src/logscntfinder.cpp Thu Jul 08 11:31:03 2010 +0300
@@ -34,8 +34,8 @@
// LogsCntFinder::LogsCntFinder()
// -----------------------------------------------------------------------------
//
-LogsCntFinder::LogsCntFinder()
- : mCachedCounter(0)
+LogsCntFinder::LogsCntFinder(bool preferDefaultNumber)
+ : mPreferDefaultNumber(preferDefaultNumber), mCachedCounter(0)
{
LOGS_QDEBUG( "logs [FINDER] -> LogsCntFinder::LogsCntFinder()" )
@@ -51,8 +51,8 @@
// LogsCntFinder::LogsCntFinder()
// -----------------------------------------------------------------------------
//
-LogsCntFinder::LogsCntFinder(QContactManager& contactManager)
- : mCachedCounter(0)
+LogsCntFinder::LogsCntFinder(QContactManager& contactManager, bool preferDefaultNumber)
+ : mPreferDefaultNumber(preferDefaultNumber), mCachedCounter(0)
{
LOGS_QDEBUG( "logs [FINDER] -> LogsCntFinder::LogsCntFinder(), cntmgr from client" )
@@ -273,8 +273,33 @@
LogsPredictiveTranslator::instance();
mCurrentInputPattern = pattern;
- mCurrentPredictivePattern = translator->translatePattern( mCurrentInputPattern );
+ mCurrentPredictivePattern = translator->translatePattern( mCurrentInputPattern );
+}
+
+// -----------------------------------------------------------------------------
+// LogsCntFinder::phoneNumber
+// -----------------------------------------------------------------------------
+//
+QString LogsCntFinder::phoneNumber(const QContact& contact) const
+{
+ LOGS_QDEBUG( "logs [FINDER] -> LogsCntFinder::phoneNumber()" )
+ QString number;
+ if (mPreferDefaultNumber) {
+ number = contact.preferredDetail("call").value(
+ QContactPhoneNumber::FieldNumber );
+ if (number.isEmpty()) {
+ number = contact.detailWithAction("call").value(
+ QContactPhoneNumber::FieldNumber );
+ }
+ }
+ if (number.isEmpty()) {
+ QContactPhoneNumber contactPhoneNumber =
+ contact.detail( QContactPhoneNumber::DefinitionName );
+ number = contactPhoneNumber.value( QContactPhoneNumber::FieldNumber );
+ }
+ LOGS_QDEBUG_2( "logs [FINDER] -> LogsCntFinder::phoneNumber(): ", number )
+ return number;
}
// -----------------------------------------------------------------------------
@@ -302,21 +327,17 @@
QContactName contactName = contact.detail( QContactName::DefinitionName );
entry->setFirstName( contactName.value( QContactName::FieldFirstName ) );
entry->setLastName( contactName.value( QContactName::FieldLastName ) );
- QContactPhoneNumber contactPhoneNumber =
- contact.detail( QContactPhoneNumber::DefinitionName );
- entry->setPhoneNumber(
- contactPhoneNumber.value( QContactPhoneNumber::FieldNumber ) );
+ entry->setPhoneNumber(phoneNumber(contact));
QContactAvatar contactAvatar = contact.detail<QContactAvatar>();
QString avatar = contactAvatar.value( QContactAvatar::FieldImageUrl );
entry->setAvatarPath( avatar );
- updateResult( entry );
+ updateResult( entry );
}
LOGS_QDEBUG( "logs [FINDER] <- LogsCntFinder::resultAt()" )
return *entry;
}
-
// -----------------------------------------------------------------------------
// LogsCntFinder::insertEntry
// -----------------------------------------------------------------------------
@@ -338,7 +359,7 @@
LogsCntEntry* LogsCntFinder::getEntry( const LogsCntEntryHandle& handle ) const
{
LOGS_QDEBUG( "logs [FINDER] -> LogsCntFinder::getEntry()" )
- return doGetEntry( mHistoryEvents, handle );
+ return doGetEntry( mHistoryEvents, handle );
}
// -----------------------------------------------------------------------------
@@ -381,6 +402,38 @@
}
+// -----------------------------------------------------------------------------
+// LogsCntFinder::setPreferDefaultNumber
+// -----------------------------------------------------------------------------
+//
+void LogsCntFinder::setPreferDefaultNumber(bool preferDefault)
+{
+ if (mPreferDefaultNumber != preferDefault) {
+ resetResults();
+ mPreferDefaultNumber = preferDefault;
+ }
+}
+
+// -----------------------------------------------------------------------------
+// LogsCntFinder::setPreferDefaultNumber
+// -----------------------------------------------------------------------------
+//
+bool LogsCntFinder::preferDefaultNumber() const
+{
+ return mPreferDefaultNumber;
+}
+
+
+// -----------------------------------------------------------------------------
+// LogsCntFinder::resetResults
+// -----------------------------------------------------------------------------
+//
+void LogsCntFinder::resetResults()
+{
+ qDeleteAll( mResults );
+ mResults.clear();
+ mCachedCounter = 0;
+}