X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fbuffersyncer.h;h=6d9160cd066174c9f106a0cfe24e8e4a7d8b630f;hp=3dc706e45de06b3955088049499e048adf556118;hb=3a3e844f9fcfd12235a0086af75ecd503b621ef4;hpb=68878dc8366f2f4a0afe132847aad9a51a80cdbf diff --git a/src/common/buffersyncer.h b/src/common/buffersyncer.h index 3dc706e4..6d9160cd 100644 --- a/src/common/buffersyncer.h +++ b/src/common/buffersyncer.h @@ -18,27 +18,27 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef BUFFERSYNCER_H_ -#define BUFFERSYNCER_H_ +#pragma once + +#include "common-export.h" #include "syncableobject.h" #include "types.h" #include "message.h" -class BufferSyncer : public SyncableObject +class COMMON_EXPORT BufferSyncer : public SyncableObject { + Q_OBJECT SYNCABLE_OBJECT - Q_OBJECT public: explicit BufferSyncer(QObject *parent); - explicit BufferSyncer(const QHash &lastSeenMsg, const QHash &markerLines, const QHash &activities, QObject *parent); - - inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; } + explicit BufferSyncer(QHash lastSeenMsg, QHash markerLines, QHash activities, QHash highlightCounts, QObject *parent); MsgId lastSeenMsg(BufferId buffer) const; MsgId markerLine(BufferId buffer) const; Message::Types activity(BufferId buffer) const; + int highlightCount(BufferId buffer) const; void markActivitiesChanged() { for (auto buffer : _bufferActivities.keys()) { @@ -46,6 +46,12 @@ public: } } + void markHighlightCountsChanged() { + for (auto buffer : _highlightCounts.keys()) { + emit highlightCountChanged(buffer, highlightCount(buffer)); + } + } + public slots: QVariantList initLastSeenMsg() const; void initSetLastSeenMsg(const QVariantList &); @@ -56,6 +62,9 @@ public slots: QVariantList initActivities() const; void initSetActivities(const QVariantList &); + QVariantList initHighlightCounts() const; + void initSetHighlightCounts(const QVariantList &); + 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); } @@ -66,6 +75,12 @@ public slots: emit bufferActivityChanged(buffer, flags); } + virtual inline void setHighlightCount(BufferId buffer, int count) { + SYNC(ARG(buffer), ARG(count)); + _highlightCounts[buffer] = count; + emit highlightCountChanged(buffer, count); + } + virtual inline void requestRemoveBuffer(BufferId buffer) { REQUEST(ARG(buffer)) } virtual void removeBuffer(BufferId buffer); @@ -88,6 +103,7 @@ signals: void buffersPermanentlyMerged(BufferId buffer1, BufferId buffer2); void bufferMarkedAsRead(BufferId buffer); void bufferActivityChanged(BufferId, Message::Types); + void highlightCountChanged(BufferId, int); protected slots: bool setLastSeenMsg(BufferId buffer, const MsgId &msgId); @@ -102,7 +118,5 @@ private: QHash _lastSeenMsg; QHash _markerLines; QHash _bufferActivities; + QHash _highlightCounts; }; - - -#endif