INIT_SYNCABLE_OBJECT(CoreBufferSyncer)
CoreBufferSyncer::CoreBufferSyncer(CoreSession *parent)
- : BufferSyncer(Core::bufferLastSeenMsgIds(parent->user()), Core::bufferMarkerLineMsgIds(parent->user()), Core::bufferActivities(parent->user()), parent),
+ : BufferSyncer(Core::bufferLastSeenMsgIds(parent->user()), Core::bufferMarkerLineMsgIds(parent->user()), Core::bufferActivities(parent->user()), Core::highlightCounts(parent->user()), parent),
_coreSession(parent),
_purgeBuffers(false)
{
connect(parent, SIGNAL(displayMsg(Message)), SLOT(addBufferActivity(Message)));
+ connect(parent, SIGNAL(displayMsg(Message)), SLOT(addCoreHighlight(Message)));
}
{
if (setLastSeenMsg(buffer, msgId)) {
int activity = Core::bufferActivity(buffer, msgId);
+ int highlightCount = Core::highlightCount(buffer, msgId);
+
setBufferActivity(buffer, activity);
+ setHighlightCount(buffer, highlightCount);
+
dirtyLastSeenBuffers << buffer;
}
}
Core::setBufferActivity(userId, bufferId, activity(bufferId));
}
+ foreach(BufferId bufferId, dirtyHighlights) {
+ Core::setHighlightCount(userId, bufferId, highlightCount(bufferId));
+ }
+
dirtyLastSeenBuffers.clear();
dirtyMarkerLineBuffers.clear();
dirtyActivities.clear();
+ dirtyHighlights.clear();
}
BufferSyncer::setBufferActivity(buffer, activity);
dirtyActivities << buffer;
}
+
+void CoreBufferSyncer::setHighlightCount(BufferId buffer, int highlightCount) {
+ BufferSyncer::setHighlightCount(buffer, highlightCount);
+ dirtyHighlights << buffer;
+}