/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel IRC Team *
+ * Copyright (C) 2005-09 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#ifndef BUFFERSYNCER_H_
#define BUFFERSYNCER_H_
-#include <QDateTime>
-
#include "syncableobject.h"
#include "types.h"
class BufferSyncer : public SyncableObject {
Q_OBJECT
- public:
- explicit BufferSyncer(QObject *parent);
+public:
+ explicit BufferSyncer(QObject *parent);
+ explicit BufferSyncer(const QHash<BufferId, MsgId> &lastSeenMsg, QObject *parent);
+
+ inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; }
+
+ MsgId lastSeenMsg(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); }
+
+ virtual inline void requestRemoveBuffer(BufferId buffer) { emit removeBufferRequested(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 requestMergeBuffersPermanently(BufferId buffer1, BufferId buffer2) { emit mergeBuffersPermanentlyRequested(buffer1, buffer2); }
+ virtual void mergeBuffersPermanently(BufferId buffer1, BufferId buffer2);
- QDateTime lastSeen(BufferId buffer) const;
+signals:
+ void lastSeenMsgSet(BufferId buffer, const MsgId &msgId);
+ void setLastSeenMsgRequested(BufferId buffer, const MsgId &msgId);
- public slots:
- QVariantList initLastSeen() const;
- void initSetLastSeen(const QVariantList &);
+ void removeBufferRequested(BufferId buffer);
+ void bufferRemoved(BufferId buffer);
- void requestSetLastSeen(BufferId buffer, const QDateTime &time);
+ void renameBufferRequested(BufferId buffer, QString newName);
+ void bufferRenamed(BufferId buffer, QString newName);
- signals:
- void lastSeenSet(BufferId buffer, const QDateTime &time);
- void setLastSeenRequested(BufferId buffer, const QDateTime &time);
+ void mergeBuffersPermanentlyRequested(BufferId buffer1, BufferId buffer2);
+ void buffersPermanentlyMerged(BufferId buffer1, BufferId buffer2);
- private slots:
- bool setLastSeen(BufferId buffer, const QDateTime &time);
+protected slots:
+ bool setLastSeenMsg(BufferId buffer, const MsgId &msgId);
- private:
- QMap<BufferId, QDateTime> _lastSeen;
+private:
+ QHash<BufferId, MsgId> _lastSeenMsg;
};
#endif