Implement core-side highlights
[quassel.git] / src / common / buffersyncer.h
index 9faadfc..34d59c1 100644 (file)
@@ -40,6 +40,12 @@ public:
     MsgId markerLine(BufferId buffer) const;
     Message::Types activity(BufferId buffer) const;
 
+    void markActivitiesChanged() {
+        for (auto buffer : _bufferActivities.keys()) {
+            emit bufferActivityChanged(buffer, activity(buffer));
+        }
+    }
+
 public slots:
     QVariantList initLastSeenMsg() const;
     void initSetLastSeenMsg(const QVariantList &);
@@ -53,9 +59,11 @@ public slots:
     virtual inline void requestSetLastSeenMsg(BufferId buffer, const MsgId &msgId) { REQUEST(ARG(buffer), ARG(msgId)) }
     virtual inline void requestSetMarkerLine(BufferId buffer, const MsgId &msgId) { REQUEST(ARG(buffer), ARG(msgId)) setMarkerLine(buffer, msgId); }
 
-    virtual inline void setBufferActivity(BufferId buffer, const int &activity) {
+    virtual inline void setBufferActivity(BufferId buffer, int activity) {
+        auto flags = Message::Types(activity);
         SYNC(ARG(buffer), ARG(activity));
-        _bufferActivities[buffer] = Message::Types(activity);
+        _bufferActivities[buffer] = flags;
+        emit bufferActivityChanged(buffer, flags);
     }
 
     virtual inline void requestRemoveBuffer(BufferId buffer) { REQUEST(ARG(buffer)) }
@@ -79,6 +87,7 @@ signals:
     void bufferRenamed(BufferId buffer, QString newName);
     void buffersPermanentlyMerged(BufferId buffer1, BufferId buffer2);
     void bufferMarkedAsRead(BufferId buffer);
+    void bufferActivityChanged(BufferId, Message::Types);
 
 protected slots:
     bool setLastSeenMsg(BufferId buffer, const MsgId &msgId);