X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcorebuffersyncer.h;h=dd33f06e83e4cb671ff71390f88b63b025e6f723;hb=f12d6496251729f7d21f4fbcb0814dec7fba4b75;hp=93e2cf9098e6e93960eb1e28594c8801de4487d1;hpb=ed8a0fbbe0ba28bd321950c45e7bb5cd9249df2e;p=quassel.git diff --git a/src/core/corebuffersyncer.h b/src/core/corebuffersyncer.h index 93e2cf90..dd33f06e 100644 --- a/src/core/corebuffersyncer.h +++ b/src/core/corebuffersyncer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -47,8 +47,17 @@ public slots: } } + void addCoreHighlight(const Message &message) { + auto oldHighlightCount = highlightCount(message.bufferId()); + if (message.flags().testFlag(Message::Flag::Highlight) && !message.flags().testFlag(Message::Flag::Self)) { + setHighlightCount(message.bufferId(), oldHighlightCount + 1); + } + } + void setBufferActivity(BufferId buffer, int activity) override; + void setHighlightCount(BufferId buffer, int highlightCount) override; + inline void requestRenameBuffer(BufferId buffer, QString newName) override { renameBuffer(buffer, newName); } void renameBuffer(BufferId buffer, QString newName) override; @@ -58,7 +67,9 @@ public slots: void requestPurgeBufferIds() override; inline void requestMarkBufferAsRead(BufferId buffer) override { - setBufferActivity(buffer, (int) Message::Types()); + int activity = Message::Types(); + setBufferActivity(buffer, activity); + setHighlightCount(buffer, 0); markBufferAsRead(buffer); } @@ -74,6 +85,7 @@ private: QSet dirtyLastSeenBuffers; QSet dirtyMarkerLineBuffers; QSet dirtyActivities; + QSet dirtyHighlights; void purgeBufferIds(); };