X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fbuffersyncer.h;h=716178a74047f8d06d11a9da8caf4dbab41f4de1;hp=489318963105d98c45ea937c7710ca68d0cd0525;hb=85fb228631cfb087ce80f4b778fae5f1c3877008;hpb=f6b9eeda207d42c99fc3e9085631722cf2ec83dc diff --git a/src/common/buffersyncer.h b/src/common/buffersyncer.h index 48931896..716178a7 100644 --- a/src/common/buffersyncer.h +++ b/src/common/buffersyncer.h @@ -30,17 +30,22 @@ class BufferSyncer : public SyncableObject { public: explicit BufferSyncer(QObject *parent); - explicit BufferSyncer(const QHash &lastSeenMsg, QObject *parent); + explicit BufferSyncer(const QHash &lastSeenMsg, const QHash &markerLines, QObject *parent); inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; } MsgId lastSeenMsg(BufferId buffer) const; + MsgId markerLine(BufferId buffer) const; public slots: QVariantList initLastSeenMsg() const; void initSetLastSeenMsg(const QVariantList &); + QVariantList initMarkerLines() const; + void initSetMarkerLines(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 requestRemoveBuffer(BufferId buffer) { REQUEST(ARG(buffer)) } virtual void removeBuffer(BufferId buffer); @@ -53,18 +58,29 @@ public slots: virtual inline void requestPurgeBufferIds() { REQUEST(NO_ARG); } + virtual inline void requestMarkBufferAsRead(BufferId buffer) { REQUEST(ARG(buffer)) emit bufferMarkedAsRead(buffer); } + 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 bufferRemoved(BufferId buffer); void bufferRenamed(BufferId buffer, QString newName); void buffersPermanentlyMerged(BufferId buffer1, BufferId buffer2); + void bufferMarkedAsRead(BufferId buffer); protected slots: bool setLastSeenMsg(BufferId buffer, const MsgId &msgId); - QList bufferIds() const { return _lastSeenMsg.keys(); } + bool setMarkerLine(BufferId buffer, const MsgId &msgId); + +protected: + inline QList lastSeenBufferIds() const { return _lastSeenMsg.keys(); } + inline QList markerLineBufferIds() const { return _markerLines.keys(); } + inline QHash markerLines() const { return _markerLines; } private: QHash _lastSeenMsg; + QHash _markerLines; }; #endif