X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fbuffersyncer.h;h=d6535e2949b57b0476caa8034dcb294f80fde375;hp=4bca34e5f14b24677b58eae09f743c0168945944;hb=b134e777b822b929a78455fd92146bf7443e9aa1;hpb=7168c6adaa3cd2be160aa1731c7444dc384a4a98 diff --git a/src/common/buffersyncer.h b/src/common/buffersyncer.h index 4bca34e5..d6535e29 100644 --- a/src/common/buffersyncer.h +++ b/src/common/buffersyncer.h @@ -33,13 +33,15 @@ class COMMON_EXPORT BufferSyncer : public SyncableObject public: explicit BufferSyncer(QObject* parent); - explicit BufferSyncer(QHash lastSeenMsg, + 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; @@ -59,6 +61,9 @@ public: } public slots: + QVariantList initLastMsg() const; + void initSetLastMsg(const QVariantList&); + QVariantList initLastSeenMsg() const; void initSetLastSeenMsg(const QVariantList&); @@ -71,6 +76,13 @@ public slots: QVariantList initHighlightCounts() const; void initSetHighlightCounts(const QVariantList&); + 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) { @@ -110,6 +122,7 @@ public slots: virtual inline void markBufferAsRead(BufferId buffer) { SYNC(ARG(buffer)) emit bufferMarkedAsRead(buffer); } signals: + 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); @@ -124,11 +137,13 @@ protected slots: 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;