logsui/logsengine/logssymbianos/src/logsreader.cpp
changeset 19 e4c884866116
parent 16 c5af8598d22c
--- 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();
+    }
+}