/***************************************************************************
- * Copyright (C) 2005-07 by the Quassel IRC Team *
+ * Copyright (C) 2005-08 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#define _BUFFERINFO_H_
#include <QtCore>
+#include "types.h"
class QString;
class QDataStream;
class BufferInfo {
public:
- BufferInfo();
- BufferInfo(uint id, uint networkid, uint gid = 0, QString net = QString(), QString buf = QString());
+ enum Type {
+ InvalidBuffer = 0x00,
+ StatusBuffer = 0x01,
+ ChannelBuffer = 0x02,
+ QueryBuffer = 0x04,
+ GroupBuffer = 0x08
+ };
- inline uint uid() const { return _id; }
- inline uint networkId() const { return _netid; }
- inline uint groupId() const { return _gid; }
- inline QString network() const { return _networkName; }
- QString buffer() const;
+ enum Activity {
+ NoActivity = 0x00,
+ OtherActivity = 0x01,
+ NewMessage = 0x02,
+ Highlight = 0x40
+ };
+ Q_DECLARE_FLAGS(ActivityLevel, Activity)
+
+ BufferInfo();
+ BufferInfo(BufferId id, NetworkId networkid, Type type, uint gid = 0, QString buf = QString());
+
+ static BufferInfo fakeStatusBuffer(NetworkId networkId);
+
+ inline bool isValid() const { return _bufferId != 0; }
+ inline BufferId bufferId() const { return _bufferId; }
+ inline NetworkId networkId() const { return _netid; }
+ inline Type type() const { return _type; }
+ inline uint groupId() const { return _groupId; }
+ QString bufferName() const;
- void setGroupId(uint gid) { _gid = gid; }
+ void setGroupId(uint gid) { _groupId = gid; }
- inline bool operator==(const BufferInfo &other) const { return _id == other._id; }
+ inline bool operator==(const BufferInfo &other) const { return _bufferId == other._bufferId; }
private:
- uint _id;
- uint _netid;
- uint _gid;
- QString _networkName; // WILL BE REMOVED
+ BufferId _bufferId;
+ NetworkId _netid;
+ Type _type;
+ uint _groupId;
QString _bufferName;
friend uint qHash(const BufferInfo &);
QDataStream &operator<<(QDataStream &out, const BufferInfo &bufferInfo);
QDataStream &operator>>(QDataStream &in, BufferInfo &bufferInfo);
+QDebug operator<<(QDebug dbg, const BufferInfo &b);
-Q_DECLARE_METATYPE(BufferInfo);
+Q_DECLARE_METATYPE(BufferInfo)
+Q_DECLARE_OPERATORS_FOR_FLAGS(BufferInfo::ActivityLevel)
uint qHash(const BufferInfo &);