#include "message.h"
#include "bufferinfo.h"
-/// Encapsulates the contents of a single channel, query or server status context.
/**
*/
class Buffer : public QObject {
Buffer(BufferInfo, QObject *parent = 0);
BufferInfo bufferInfo() const;
- const QList<AbstractUiMsg *> &contents() const;
- inline bool isVisible() const { return _isVisible; }
- inline MsgId lastSeenMsg() const { return _lastSeenMsg; }
- inline ActivityLevel activityLevel() const { return _activityLevel; }
-
-signals:
- void msgAppended(AbstractUiMsg *);
- void msgPrepended(AbstractUiMsg *);
- void layoutQueueEmpty();
-
-public slots:
- void appendMsg(const Message &);
- void prependMsg(const Message &);
- bool layoutMsg();
- void setVisible(bool visible);
- void setLastSeenMsg(const MsgId &msgId);
- void setActivityLevel(ActivityLevel level);
private:
BufferInfo _bufferInfo;
- bool _isVisible;
- MsgId _lastSeenMsg;
- ActivityLevel _activityLevel;
-
- QLinkedList<Message> layoutQueue;
- QList<AbstractUiMsg *> layoutedMsgs;
-
- void updateActivityLevel(const Message &msg);
};
Q_DECLARE_OPERATORS_FOR_FLAGS(Buffer::ActivityLevel)