diff -r 76d2cf7a585e -r 90fe74753f71 logsui/logsengine/logssymbianos/src/logsreader.cpp --- a/logsui/logsengine/logssymbianos/src/logsreader.cpp Mon Aug 23 18:14:51 2010 +0300 +++ b/logsui/logsengine/logssymbianos/src/logsreader.cpp Fri Sep 03 14:26:05 2010 +0300 @@ -102,6 +102,14 @@ Cancel(); deleteLogViews(); clearGlobalObserver(); + cleanContactCache(); + + qDeleteAll( mReadStates ); + mReadStates.clear(); + qDeleteAll( mModifyingStates ); + mModifyingStates.clear(); + qDeleteAll( mDuplicateReadingStates ); + mDuplicateReadingStates.clear(); LOGS_QDEBUG( "logs [ENG] <- LogsReader::stop()" ) } @@ -114,16 +122,8 @@ { LOGS_QDEBUG( "logs [ENG] -> LogsReader::updateDetails()" ) - if ( clearCached ){ - mContactCache.clear(); - } - foreach (LogsEvent* event, mEvents){ - event->prepareForContactMatching(); - if ( clearCached && event->contactMatched() ){ - event->setContactMatched( false ); - event->setRemoteParty(""); - } - } + Q_UNUSED( clearCached ); + cleanContactCache(); start(); @@ -614,3 +614,15 @@ mGlobalObserverSet = false; } } + +// ---------------------------------------------------------------------------- +// LogsReader::cleanContactCache +// ---------------------------------------------------------------------------- +// +void LogsReader::cleanContactCache() +{ + mContactCache.clear(); + foreach (LogsEvent* event, mEvents){ + event->prepareForContactMatching(); + } +}