modernize: Prefer default member init over ctor init
[quassel.git] / src / core / corebuffersyncer.cpp
index caed62e..de2b521 100644 (file)
@@ -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  *
@@ -31,21 +31,25 @@ public:
     PurgeEvent() : QEvent(QEvent::User) {}
 };
 
-
-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)));
 }
 
 
 void CoreBufferSyncer::requestSetLastSeenMsg(BufferId buffer, const MsgId &msgId)
 {
     if (setLastSeenMsg(buffer, msgId)) {
-        setBufferActivity(buffer, (int) Core::bufferActivity(buffer, msgId));
+        int activity = Core::bufferActivity(buffer, msgId);
+        int highlightCount = Core::highlightCount(buffer, msgId);
+
+        setBufferActivity(buffer, activity);
+        setHighlightCount(buffer, highlightCount);
+
         dirtyLastSeenBuffers << buffer;
     }
 }
@@ -78,9 +82,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();
 }
 
 
@@ -190,7 +199,12 @@ void CoreBufferSyncer::purgeBufferIds()
     }
 }
 
-void CoreBufferSyncer::setBufferActivity(BufferId buffer, const int &activity) {
+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;
+}