-/*
- static Message plain(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
- static Message notice(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
- static Message action(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
- static Message nick(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
- static Message mode(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
- static Message join(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
- static Message part(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
- static Message quit(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
- static Message kick(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
- static Message kill(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
- static Message server(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
- static Message info(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
- static Message error(QString _target, QString _text, QString _sender = "", quint8 _flags = None);
-*/
+
+ Message(BufferInfo bufferInfo = BufferInfo(), Type type = Plain, QString text = "", QString sender = "", quint8 flags = None);
+
+ Message(QDateTime ts, BufferInfo buffer = BufferInfo(), Type type = Plain, QString text = "", QString sender = "", quint8 flags = None);
+
+ inline MsgId msgId() const { return _msgId; }
+ inline void setMsgId(MsgId id) { _msgId = id; }
+
+ inline BufferInfo bufferInfo() const { return _bufferInfo; }
+ inline QString text() const { return _text; }
+ inline QString sender() const { return _sender; }
+ inline Type type() const { return _type; }
+ inline quint8 flags() const { return _flags; }
+ inline QDateTime timestamp() const { return _timestamp; }
+
+ QString formattedTimestamp();
+ QString formattedSender();
+ QString formattedText();
+
+ //static QString formattedToHtml(const QString &);
+
+ void format();
+
+private:
+ QDateTime _timestamp;
+ MsgId _msgId;
+ BufferInfo _bufferInfo;
+ QString _text;
+ QString _sender;
+ Type _type;
+ quint8 _flags;
+
+ QString _formattedTimestamp, _formattedSender, _formattedText; // cache
+
+ /** Convert mIRC control codes to our own */
+ QString mircToInternal(QString);
+
+ friend QDataStream &operator>>(QDataStream &in, Message &msg);