X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fmessage.h;h=98379a23db91b12aecf736514731a1072fa0ae87;hp=36950ec02a73fdd5e21b3df0fa7884a5aab07979;hb=d6b056e936ec441258d291b7a8af7b83f9f53016;hpb=0ac9ce4d7cf768d13993d6aa1d6b791c4149a843 diff --git a/src/common/message.h b/src/common/message.h index 36950ec0..98379a23 100644 --- a/src/common/message.h +++ b/src/common/message.h @@ -1,11 +1,11 @@ /*************************************************************************** - * Copyright (C) 2005-07 by The Quassel IRC Development Team * + * Copyright (C) 2005-07 by the Quassel IRC Team * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * + * (at your option) version 3. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -24,32 +24,54 @@ #include #include -#include "global.h" +#include "bufferinfo.h" +#include "types.h" -struct Message { +class Message { + Q_DECLARE_TR_FUNCTIONS(Message); - /** 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 }; + 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 }; - uint msgId; - BufferId buffer; - QString target; - QString text; - QString sender; - Type type; - quint8 flags; - QDateTime timeStamp; + Message(BufferInfo buffer = BufferInfo(), Type type = Plain, QString text = "", QString sender = "", quint8 flags = None); - Message(QString _target, Type _type = Plain, QString _text = "", QString _sender = "", quint8 _flags = None) - : target(_target), text(_text), sender(_sender), type(_type), flags(_flags) { timeStamp = QDateTime::currentDateTime().toUTC(); } + Message(QDateTime ts, BufferInfo buffer = BufferInfo(), Type type = Plain, QString text = "", QString sender = "", quint8 flags = None); - Message(BufferId _buffer = BufferId(), Type _type = Plain, QString _text = "", QString _sender = "", quint8 _flags = None) - : buffer(_buffer), text(_text), sender(_sender), type(_type), flags(_flags) { timeStamp = QDateTime::currentDateTime().toUTC(); } + MsgId msgId() const; + void setMsgId(MsgId id); - Message(QDateTime _ts, BufferId _buffer = BufferId(), Type _type = Plain, QString _text = "", QString _sender = "", quint8 _flags = None) - : buffer(_buffer), text(_text), sender(_sender), type(_type), flags(_flags), timeStamp(_ts) {} + BufferInfo buffer() const; + QString text() const; + QString sender() const; + Type type() const; + quint8 flags() const; + QDateTime timestamp() const; + QString formattedTimestamp(); + QString formattedSender(); + QString formattedText(); + + //static QString formattedToHtml(const QString &); + + void format(); + + private: + QDateTime _timestamp; + MsgId _msgId; + BufferInfo _buffer; + 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); }; QDataStream &operator<<(QDataStream &out, const Message &msg);