--- a/logsui/logsengine/logssymbianos/src/logsdbconnector.cpp Thu May 27 12:51:53 2010 +0300
+++ b/logsui/logsengine/logssymbianos/src/logsdbconnector.cpp Fri Jun 11 13:38:41 2010 +0300
@@ -475,7 +475,7 @@
mAddedEventIndexes.append( mEvents.at(i)->index() );
}
}
-
+
bool doModelDataReset( !mRemovedEventIndexes.isEmpty() ||
!mAddedEventIndexes.isEmpty() ||
!mUpdatedEventIndexes.isEmpty() );
@@ -487,14 +487,25 @@
}
}
- if ( !mRemovedEventIndexes.isEmpty() ){
- emit dataRemoved(mRemovedEventIndexes);
- }
- if ( !mAddedEventIndexes.isEmpty() ){
- emit dataAdded(mAddedEventIndexes);
- }
- if ( !mUpdatedEventIndexes.isEmpty() ){
- emit dataUpdated(mUpdatedEventIndexes);
+ int changeCount = 0;
+ changeCount += mRemovedEventIndexes.isEmpty() ? 0 : 1;
+ changeCount += mAddedEventIndexes.isEmpty() ? 0 : 1;
+ changeCount += mUpdatedEventIndexes.isEmpty() ? 0 : 1;
+
+ if ( changeCount > 1 ){
+ // If having many changes, it is less error prone
+ // to just report reset.
+ emit dataReset();
+ } else {
+ if ( !mRemovedEventIndexes.isEmpty() ){
+ emit dataRemoved(mRemovedEventIndexes);
+ }
+ if ( !mAddedEventIndexes.isEmpty() ){
+ emit dataAdded(mAddedEventIndexes);
+ }
+ if ( !mUpdatedEventIndexes.isEmpty() ){
+ emit dataUpdated(mUpdatedEventIndexes);
+ }
}
deleteRemoved(readCount);