Purdificationings of the TopicWidget (no more colore codes).
[quassel.git] / src / common / message.h
index 1411f3b..08c70c6 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,12 +71,17 @@ public:
   inline quint8 flags() const { return _flags; }
   inline QDateTime timestamp() const { return _timestamp; }
 
+  void setFlags(quint8 flags);
+  
   QString formattedTimestamp();
   QString formattedSender();
   QString formattedText();
 
   //static QString formattedToHtml(const QString &);
 
+  /** Convert mIRC control codes to our own */
+  static QString mircToInternal(QString);
+
   void format();
 
 private:
@@ -68,8 +95,6 @@ private:
 
   QString _formattedTimestamp, _formattedSender, _formattedText; // cache
 
-  /** Convert mIRC control codes to our own */
-  QString mircToInternal(QString);
 
   friend QDataStream &operator>>(QDataStream &in, Message &msg);
 };
@@ -78,5 +103,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