- Highlights are now determined in Client::checkForHighlight(Message &).
[quassel.git] / src / common / message.h
index 1411f3b..17f5493 100644 (file)
@@ -32,8 +32,29 @@ 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,
+    Notice,
+    Action,
+    Nick,
+    Mode,
+    Join,
+    Part,
+    Quit,
+    Kick,
+    Kill,
+    Server,
+    Info,
+    Error
+  };
+
+  enum Flags {
+    None = 0,
+    Self = 1,
+    Highlight = 2
+  };
+  Q_DECLARE_FLAGS(MessageFlags, Flags)
+  
 
   Message(BufferInfo bufferInfo = BufferInfo(), Type type = Plain, QString text = "", QString sender = "", quint8 flags = None);
 
@@ -49,6 +70,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 +101,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