+class BufferItem : public PropertyMapItem
+{
+ Q_OBJECT
+ Q_PROPERTY(QString bufferName READ bufferName WRITE setBufferName)
+ Q_PROPERTY(QString topic READ topic)
+ Q_PROPERTY(int nickCount READ nickCount)
+
+public :
+ BufferItem(const BufferInfo &bufferInfo, AbstractTreeItem *parent = 0);
+
+ inline const BufferInfo &bufferInfo() const { return _bufferInfo; }
+ virtual QVariant data(int column, int role) const;
+ virtual bool setData(int column, const QVariant &value, int role);
+
+ inline BufferId bufferId() const { return _bufferInfo.bufferId(); }
+ inline BufferInfo::Type bufferType() const { return _bufferInfo.type(); }
+
+ virtual void setBufferName(const QString &name);
+ virtual inline QString bufferName() const { return _bufferInfo.bufferName(); }
+ virtual inline QString topic() const { return QString(); }
+ virtual inline int nickCount() const { return 0; }
+
+ virtual inline bool isActive() const { return qobject_cast<NetworkItem *>(parent())->isActive(); }
+
+ inline MsgId lastSeenMsgId() const { return _lastSeenMsgId; }
+ inline MsgId markerLineMsgId() const { return _markerLineMsgId; }
+ void setLastSeenMsgId(MsgId msgId);
+ void setMarkerLineMsgId(MsgId msgId);
+
+ inline BufferInfo::ActivityLevel activityLevel() const { return _activity; }
+ void setActivityLevel(BufferInfo::ActivityLevel level);
+ void clearActivityLevel();
+ void updateActivityLevel(const Message &msg);
+
+ inline const MsgId &firstUnreadMsgId() const { return _firstUnreadMsgId; }
+
+ bool isCurrentBuffer() const;
+ virtual QString toolTip(int column) const;
+
+public slots:
+ virtual inline void setTopic(const QString &) { emit dataChanged(1); }
+ virtual inline void setEncrypted(bool) { emit dataChanged(); }
+
+private:
+ BufferInfo _bufferInfo;
+ BufferInfo::ActivityLevel _activity;
+ MsgId _lastSeenMsgId;
+ MsgId _markerLineMsgId;
+ MsgId _firstUnreadMsgId;
+};
+
+
+/*****************************************
+* StatusBufferItem
+*****************************************/
+class StatusBufferItem : public BufferItem
+{
+ Q_OBJECT
+
+public:
+ StatusBufferItem(const BufferInfo &bufferInfo, NetworkItem *parent);
+
+ virtual QString toolTip(int column) const;
+ virtual inline QString bufferName() const { return tr("Status Buffer"); }
+};
+
+
+/*****************************************
+* QueryBufferItem
+*****************************************/
+class QueryBufferItem : public BufferItem
+{
+ Q_OBJECT