X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fmessage.h;h=17f5493a6f559d342103bc77c2c0a92a35f9b7df;hp=68047db5c993876fb2c5f1761e282fe71e9326e6;hb=521a9e7155173db954ea5f32c93dd6933cd7aeda;hpb=52380175425bdab29f825c9cd17a0e4c1952c2db diff --git a/src/common/message.h b/src/common/message.h index 68047db5..17f5493a 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-08 by the Quassel Project * * 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 * @@ -21,63 +21,86 @@ #ifndef _MESSAGE_H_ #define _MESSAGE_H_ -#include #include #include #include "bufferinfo.h" -#include "global.h" +#include "types.h" 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(BufferInfo buffer = 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); - - MsgId msgId() const; - void setMsgId(MsgId id); - - 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); +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, + Highlight = 2 + }; + Q_DECLARE_FLAGS(MessageFlags, Flags) + + + 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; } + + void setFlags(quint8 flags); + + 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); }; 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