X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fbuffersyncer.h;h=d6535e2949b57b0476caa8034dcb294f80fde375;hp=5d4f38371f8bd17f8be85b9096e72ee177b67820;hb=b134e777b822b929a78455fd92146bf7443e9aa1;hpb=3e63cb8a6e83765069a45101b86ae9e21dcc57ad diff --git a/src/common/buffersyncer.h b/src/common/buffersyncer.h index 5d4f3837..d6535e29 100644 --- a/src/common/buffersyncer.h +++ b/src/common/buffersyncer.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * + * Copyright (C) 2005-2020 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,60 +20,85 @@ #pragma once +#include "common-export.h" + +#include "message.h" #include "syncableobject.h" #include "types.h" -#include "message.h" -class BufferSyncer : public SyncableObject +class COMMON_EXPORT BufferSyncer : public SyncableObject { Q_OBJECT SYNCABLE_OBJECT public: - explicit BufferSyncer(QObject *parent); - explicit BufferSyncer(const QHash &lastSeenMsg, const QHash &markerLines, const QHash &activities, const QHash &highlightCounts, QObject *parent); + explicit BufferSyncer(QObject* parent); + explicit BufferSyncer(QHash lastMsg, + QHash lastSeenMsg, + QHash markerLines, + QHash activities, + QHash highlightCounts, + QObject* parent); MsgId lastSeenMsg(BufferId buffer) const; + MsgId lastMsg(BufferId buffer) const; MsgId markerLine(BufferId buffer) const; Message::Types activity(BufferId buffer) const; int highlightCount(BufferId buffer) const; - void markActivitiesChanged() { + void markActivitiesChanged() + { for (auto buffer : _bufferActivities.keys()) { emit bufferActivityChanged(buffer, activity(buffer)); } } - void markHighlightCountsChanged() { + void markHighlightCountsChanged() + { for (auto buffer : _highlightCounts.keys()) { emit highlightCountChanged(buffer, highlightCount(buffer)); } } public slots: + QVariantList initLastMsg() const; + void initSetLastMsg(const QVariantList&); + QVariantList initLastSeenMsg() const; - void initSetLastSeenMsg(const QVariantList &); + void initSetLastSeenMsg(const QVariantList&); QVariantList initMarkerLines() const; - void initSetMarkerLines(const QVariantList &); + void initSetMarkerLines(const QVariantList&); QVariantList initActivities() const; - void initSetActivities(const QVariantList &); + void initSetActivities(const QVariantList&); QVariantList initHighlightCounts() const; - void initSetHighlightCounts(const QVariantList &); + 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); } + virtual inline void setLastMsg(BufferId buffer, const MsgId& msgId) + { + SYNC(ARG(buffer), ARG(msgId)); + _lastMsg[buffer] = msgId; + emit lastMsgSet(buffer, msgId); + } + + 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, int activity) { + virtual inline void setBufferActivity(BufferId buffer, int activity) + { auto flags = Message::Types(activity); SYNC(ARG(buffer), ARG(activity)); _bufferActivities[buffer] = flags; emit bufferActivityChanged(buffer, flags); } - virtual inline void setHighlightCount(BufferId buffer, int count) { + virtual inline void setHighlightCount(BufferId buffer, int count) + { SYNC(ARG(buffer), ARG(count)); _highlightCounts[buffer] = count; emit highlightCountChanged(buffer, count); @@ -83,7 +108,10 @@ public slots: virtual void removeBuffer(BufferId buffer); virtual inline void requestRenameBuffer(BufferId buffer, QString newName) { REQUEST(ARG(buffer), ARG(newName)) } - virtual inline void renameBuffer(BufferId buffer, QString newName) { SYNC(ARG(buffer), ARG(newName)) emit bufferRenamed(buffer, newName); } + virtual inline void renameBuffer(BufferId buffer, QString newName) + { + SYNC(ARG(buffer), ARG(newName)) emit bufferRenamed(buffer, newName); + } virtual inline void requestMergeBuffersPermanently(BufferId buffer1, BufferId buffer2) { emit REQUEST(ARG(buffer1), ARG(buffer2)) } virtual void mergeBuffersPermanently(BufferId buffer1, BufferId buffer2); @@ -94,8 +122,9 @@ public slots: virtual inline void markBufferAsRead(BufferId buffer) { SYNC(ARG(buffer)) emit bufferMarkedAsRead(buffer); } signals: - void lastSeenMsgSet(BufferId buffer, const MsgId &msgId); - void markerLineSet(BufferId buffer, const MsgId &msgId); + void lastMsgSet(BufferId buffer, const MsgId& msgId); + void lastSeenMsgSet(BufferId buffer, const MsgId& msgId); + void markerLineSet(BufferId buffer, const MsgId& msgId); void bufferRemoved(BufferId buffer); void bufferRenamed(BufferId buffer, QString newName); void buffersPermanentlyMerged(BufferId buffer1, BufferId buffer2); @@ -104,15 +133,17 @@ signals: void highlightCountChanged(BufferId, int); protected slots: - bool setLastSeenMsg(BufferId buffer, const MsgId &msgId); - bool setMarkerLine(BufferId buffer, const MsgId &msgId); + bool setLastSeenMsg(BufferId buffer, const MsgId& msgId); + bool setMarkerLine(BufferId buffer, const MsgId& msgId); protected: + inline QList lastBufferIds() const { return _lastMsg.keys(); } inline QList lastSeenBufferIds() const { return _lastSeenMsg.keys(); } inline QList markerLineBufferIds() const { return _markerLines.keys(); } inline QHash markerLines() const { return _markerLines; } private: + QHash _lastMsg; QHash _lastSeenMsg; QHash _markerLines; QHash _bufferActivities;