Pressing enter in the topic line now sets the channel topic.
[quassel.git] / src / common / message.h
index 1411f3b..b262b97 100644 (file)
@@ -32,8 +32,30 @@ class Message {
 
 public:
   /** The different types a message can have for display */
-  enum Type { Plain, Notice, Action, Nick, Mode, Join, Part, Quit, Kick, Kill, Server, Info, Error };
-  enum Flags { None = 0, Self = 1, PrivMsg = 2, Highlight = 4 };
+  enum Type {
+    Plain  = 0x0001,
+    Notice = 0x0002,
+    Action = 0x0004,
+    Nick   = 0x0008,
+    Mode   = 0x0010,
+    Join   = 0x0020,
+    Part   = 0x0040,
+    Quit   = 0x0080,
+    Kick   = 0x0100,
+    Kill   = 0x0200,
+    Server = 0x0400,
+    Info   = 0x0800,
+    Error  = 0x1000
+  };
+
+  enum Flags {
+    None = 0,
+    Self = 1,
+    Highlight = 2,
+    Redirected = 4
+  };
+  Q_DECLARE_FLAGS(MessageFlags, Flags)
+  
 
   Message(BufferInfo bufferInfo = BufferInfo(), Type type = Plain, QString text = "", QString sender = "", quint8 flags = None);
 
@@ -49,6 +71,8 @@ public:
   inline quint8 flags() const { return _flags; }
   inline QDateTime timestamp() const { return _timestamp; }
 
+  void setFlags(quint8 flags);
+  
   QString formattedTimestamp();
   QString formattedSender();
   QString formattedText();
@@ -78,5 +102,6 @@ QDataStream &operator<<(QDataStream &out, const Message &msg);
 QDataStream &operator>>(QDataStream &in, Message &msg);
 
 Q_DECLARE_METATYPE(Message);
+Q_DECLARE_OPERATORS_FOR_FLAGS(Message::MessageFlags)
 
 #endif