X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fbuffersyncer.h;h=551982883a5a1f9fafc45480fde39e556234c6a4;hb=713382cb7e35561849dcdccef6d093fa9541bdb3;hp=0973828f4c0d3b6e3f70208c9cb7a090cc070982;hpb=aadd816dbcae859ce9ac5b44d609bd3094b3d6fc;p=quassel.git diff --git a/src/common/buffersyncer.h b/src/common/buffersyncer.h index 0973828f..55198288 100644 --- a/src/common/buffersyncer.h +++ b/src/common/buffersyncer.h @@ -25,54 +25,58 @@ #include "types.h" class BufferSyncer : public SyncableObject { + SYNCABLE_OBJECT Q_OBJECT 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 &); - virtual inline void requestSetLastSeenMsg(BufferId buffer, const MsgId &msgId) { emit setLastSeenMsgRequested(buffer, msgId); } + QVariantList initMarkerLines() const; + void initSetMarkerLines(const QVariantList &); - virtual inline void requestRemoveBuffer(BufferId buffer) { emit removeBufferRequested(buffer); } + 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)) } + + virtual inline void requestRemoveBuffer(BufferId buffer) { REQUEST(ARG(buffer)) } virtual void removeBuffer(BufferId buffer); - virtual inline void requestRenameBuffer(BufferId buffer, QString newName) { emit renameBufferRequested(buffer, newName); } - virtual inline void renameBuffer(BufferId buffer, QString newName) { emit bufferRenamed(buffer, newName); } + 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 requestMergeBuffersPermanently(BufferId buffer1, BufferId buffer2) { emit mergeBuffersPermanentlyRequested(buffer1, buffer2); } + virtual inline void requestMergeBuffersPermanently(BufferId buffer1, BufferId buffer2) { emit REQUEST(ARG(buffer1), ARG(buffer2)) } virtual void mergeBuffersPermanently(BufferId buffer1, BufferId buffer2); - virtual inline void requestPurgeBufferIds() { emit purgeBufferIdsRequested(); } + virtual inline void requestPurgeBufferIds() { REQUEST(NO_ARG); } signals: void lastSeenMsgSet(BufferId buffer, const MsgId &msgId); - void setLastSeenMsgRequested(BufferId buffer, const MsgId &msgId); - - void removeBufferRequested(BufferId buffer); + void markerLineSet(BufferId buffer, const MsgId &msgId); void bufferRemoved(BufferId buffer); - - void renameBufferRequested(BufferId buffer, QString newName); void bufferRenamed(BufferId buffer, QString newName); - - void mergeBuffersPermanentlyRequested(BufferId buffer1, BufferId buffer2); void buffersPermanentlyMerged(BufferId buffer1, BufferId buffer2); - void purgeBufferIdsRequested(); - 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