Quassel IRC  Pre-Release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
bufferinfo.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2005-2015 by the Quassel Project *
3  * devel@quassel-irc.org *
4  * *
5  * This program is free software; you can redistribute it and/or modify *
6  * it under the terms of the GNU General Public License as published by *
7  * the Free Software Foundation; either version 2 of the License, or *
8  * (at your option) version 3. *
9  * *
10  * This program is distributed in the hope that it will be useful, *
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13  * GNU General Public License for more details. *
14  * *
15  * You should have received a copy of the GNU General Public License *
16  * along with this program; if not, write to the *
17  * Free Software Foundation, Inc., *
18  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
19  ***************************************************************************/
20 
21 #ifndef BUFFERINFO_H
22 #define BUFFERINFO_H
23 
24 #include "types.h"
25 
26 class QString;
27 class QDataStream;
28 
30 {
31 public:
32  enum Type {
33  InvalidBuffer = 0x00,
34  StatusBuffer = 0x01,
35  ChannelBuffer = 0x02,
36  QueryBuffer = 0x04,
37  GroupBuffer = 0x08
38  };
39 
40  enum Activity {
41  NoActivity = 0x00,
42  OtherActivity = 0x01,
43  NewMessage = 0x02,
44  Highlight = 0x40
45  };
46  Q_DECLARE_FLAGS(ActivityLevel, Activity)
47 
48  BufferInfo();
49  BufferInfo(BufferId id, NetworkId networkid, Type type, uint gid = 0, QString buf = QString());
50 
51  static BufferInfo fakeStatusBuffer(NetworkId networkId);
52 
53  inline bool isValid() const { return _bufferId != 0; }
54  inline const BufferId &bufferId() const { return _bufferId; }
55  inline void setBufferId(BufferId id) { _bufferId = id; }
56  inline const NetworkId &networkId() const { return _netid; }
57  inline const Type &type() const { return _type; }
58  inline const uint &groupId() const { return _groupId; }
59  void setGroupId(uint gid) { _groupId = gid; }
60 
61  QString bufferName() const;
62  bool acceptsRegularMessages() const;
63 
64  inline bool operator==(const BufferInfo &other) const { return _bufferId == other._bufferId; }
65 
66 private:
70  uint _groupId;
71  QString _bufferName;
72 
73  friend uint qHash(const BufferInfo &);
74  friend QDataStream &operator<<(QDataStream &out, const BufferInfo &bufferInfo);
75  friend QDataStream &operator>>(QDataStream &in, BufferInfo &bufferInfo);
76 };
77 
78 
79 QDataStream &operator<<(QDataStream &out, const BufferInfo &bufferInfo);
80 QDataStream &operator>>(QDataStream &in, BufferInfo &bufferInfo);
81 QDebug operator<<(QDebug dbg, const BufferInfo &b);
82 
85 
86 uint qHash(const BufferInfo &);
87 
88 #endif