X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fmessage.h;h=7fcd797cdcd5a1b54d59423bb91bc1d9842509a8;hp=8ce0cfef14a47ba110fbd0d8f21c6e3974dbda83;hb=de1613db2dd9623aa650f7217eb718381bb642e3;hpb=077d44f36d2f5c730283ef6be839aea7dd073d56 diff --git a/src/common/message.h b/src/common/message.h index 8ce0cfef..7fcd797c 100644 --- a/src/common/message.h +++ b/src/common/message.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005/06 by The Quassel Team * + * Copyright (C) 2005-07 by The Quassel IRC Development Team * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,48 +21,55 @@ #ifndef _MESSAGE_H_ #define _MESSAGE_H_ -#include +#include +#include +#include + #include "global.h" -struct 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 }; - - uint msgId; - Type type; - quint8 flags; - QString target; - QString sender; - QString text; - QDateTime timeStamp; - BufferId buffer; - - 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(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(); } - - Message(QDateTime _ts, BufferId _buffer = BufferId(), Type _type = Plain, QString _text = "", QString _sender = "", quint8 _flags = None) - : timeStamp(_ts), buffer(_buffer), text(_text), sender(_sender), type(_type), flags(_flags) {} - -/* - 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); -*/ +class Message { + Q_DECLARE_TR_FUNCTIONS(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 }; + + Message(BufferId buffer = BufferId(), Type type = Plain, QString text = "", QString sender = "", quint8 flags = None); + + Message(QDateTime ts, BufferId buffer = BufferId(), Type type = Plain, QString text = "", QString sender = "", quint8 flags = None); + + MsgId msgId() const; + void setMsgId(MsgId id); + + BufferId buffer() const; + QString text() const; + QString sender() const; + Type type() const; + quint8 flags() const; + QDateTime timeStamp() const; + + QString formattedTimeStamp(); + QString formattedSender(); + QString formattedText(); + + void format(); + + private: + QDateTime _timeStamp; + MsgId _msgId; + BufferId _buffer; + QString _text; + QString _sender; + Type _type; + quint8 _flags; + + QString _formattedTimeStamp, _formattedSender, _formattedText; // cache + + QString mircToInternal(QString); + + friend QDataStream &operator>>(QDataStream &in, Message &msg); + }; QDataStream &operator<<(QDataStream &out, const Message &msg);