X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcorebuffersyncer.cpp;fp=src%2Fcore%2Fcorebuffersyncer.cpp;h=05483262bcc7bd83988c00f9ef91f8a08f03e707;hp=175606b3ad3b8d688be0040557124446de0348a1;hb=88ce73ff525535c00cc979fff357fbe4cb8cdc2b;hpb=c382e0c11f80fb37307ecc42c487aa433c97ad8c diff --git a/src/core/corebuffersyncer.cpp b/src/core/corebuffersyncer.cpp index 175606b3..05483262 100644 --- a/src/core/corebuffersyncer.cpp +++ b/src/core/corebuffersyncer.cpp @@ -34,11 +34,12 @@ public: 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))); } @@ -46,7 +47,11 @@ void CoreBufferSyncer::requestSetLastSeenMsg(BufferId buffer, const MsgId &msgId { if (setLastSeenMsg(buffer, msgId)) { int activity = Core::bufferActivity(buffer, msgId); + int highlightCount = Core::highlightCount(buffer, msgId); + setBufferActivity(buffer, activity); + setHighlightCount(buffer, highlightCount); + dirtyLastSeenBuffers << buffer; } } @@ -79,9 +84,14 @@ void CoreBufferSyncer::storeDirtyIds() Core::setBufferActivity(userId, bufferId, activity(bufferId)); } + foreach(BufferId bufferId, dirtyHighlights) { + Core::setHighlightCount(userId, bufferId, highlightCount(bufferId)); + } + dirtyLastSeenBuffers.clear(); dirtyMarkerLineBuffers.clear(); dirtyActivities.clear(); + dirtyHighlights.clear(); } @@ -195,3 +205,8 @@ void CoreBufferSyncer::setBufferActivity(BufferId buffer, int activity) { BufferSyncer::setBufferActivity(buffer, activity); dirtyActivities << buffer; } + +void CoreBufferSyncer::setHighlightCount(BufferId buffer, int highlightCount) { + BufferSyncer::setHighlightCount(buffer, highlightCount); + dirtyHighlights << buffer; +}