diff -r c5af8598d22c -r e4c884866116 logsui/logsengine/logssymbianos/src/logsreader.cpp --- a/logsui/logsengine/logssymbianos/src/logsreader.cpp Thu Sep 02 20:27:05 2010 +0300 +++ b/logsui/logsengine/logssymbianos/src/logsreader.cpp Fri Sep 17 08:29:34 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(); + } +}