+ 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 const MsgId &lastSeenMsgId() const { return _lastSeenMsgId; }
+ inline const MsgId &lastSeenMarkerMsgId() const { return _lastSeenMarkerMsgId; }
+ void setLastSeenMsgId(const MsgId &msgId);
+ inline BufferInfo::ActivityLevel activityLevel() const { return _activity; }
+ void setActivityLevel(BufferInfo::ActivityLevel level);
+ void clearActivityLevel();
+ void updateActivityLevel(const Message &msg);
+
+ bool isCurrentBuffer() const;
+ virtual QString toolTip(int column) const;
+
+public slots:
+ virtual inline void setTopic(const QString &) { emit dataChanged(1); }
+
+private:
+ BufferInfo _bufferInfo;
+ BufferInfo::ActivityLevel _activity;
+ MsgId _lastSeenMsgId;
+ MsgId _lastSeenMarkerMsgId;
+};
+
+/*****************************************
+* 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
+
+public:
+ QueryBufferItem(const BufferInfo &bufferInfo, NetworkItem *parent);
+
+ virtual QVariant data(int column, int role) const;
+ virtual bool setData(int column, const QVariant &value, int role);
+ virtual inline bool isActive() const { return (bool)_ircUser; }
+ virtual QString toolTip(int column) const;