projects
/
quassel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Sanitize ChatView's scrolling behavior
[quassel.git]
/
src
/
common
/
message.h
diff --git
a/src/common/message.h
b/src/common/message.h
index
65d2828
..
a4c4ab6
100644
(file)
--- a/
src/common/message.h
+++ b/
src/common/message.h
@@
-1,11
+1,11
@@
/***************************************************************************
/***************************************************************************
- * Copyright (C) 2005-0
7 by The Quassel IRC Development Team
*
+ * Copyright (C) 2005-0
8 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 *
* 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 *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
@@
-24,36
+24,74
@@
#include <QString>
#include <QDateTime>
#include <QString>
#include <QDateTime>
-#include "global.h"
+#include "bufferinfo.h"
+#include "types.h"
-struct Message {
+class Message {
+ Q_DECLARE_TR_FUNCTIONS(Message);
+public:
/** The different types a message can have for display */
/** 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
+ };
- uint msgId;
- BufferId buffer;
- QString text;
- QString sender;
- Type type;
- quint8 flags;
- QDateTime timeStamp;
+ enum Flag {
+ None = 0,
+ Self = 1,
+ Highlight = 2,
+ Redirected = 4
+ };
+ Q_DECLARE_FLAGS(Flags, Flag)
+
- //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(const BufferInfo &bufferInfo = BufferInfo(), Type type = Plain, const QString &contents = "", const QString &sender = "", Flags flags = None);
+ Message(const QDateTime &ts, const BufferInfo &buffer = BufferInfo(), Type type = Plain,
+ const QString &contents = "", const QString &sender = "", Flags 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()
; }
+ inline MsgId msgId() const { return _msgId; }
+
inline void setMsgId(MsgId id) { _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) {}
+ inline BufferInfo bufferInfo() const { return _bufferInfo; }
+ inline QString contents() const { return _contents; }
+ inline QString sender() const { return _sender; }
+ inline Type type() const { return _type; }
+ inline Flags flags() const { return _flags; }
+ inline QDateTime timestamp() const { return _timestamp; }
+ void setFlags(Flags flags);
+
+private:
+ QDateTime _timestamp;
+ MsgId _msgId;
+ BufferInfo _bufferInfo;
+ QString _contents;
+ QString _sender;
+ Type _type;
+ Flags _flags;
+
+ QString _formattedTimestamp, _formattedSender, _formattedText; // cache
+
+
+ friend QDataStream &operator>>(QDataStream &in, Message &msg);
};
QDataStream &operator<<(QDataStream &out, const Message &msg);
QDataStream &operator>>(QDataStream &in, Message &msg);
Q_DECLARE_METATYPE(Message);
};
QDataStream &operator<<(QDataStream &out, const Message &msg);
QDataStream &operator>>(QDataStream &in, Message &msg);
Q_DECLARE_METATYPE(Message);
+Q_DECLARE_OPERATORS_FOR_FLAGS(Message::Flags)
#endif
#endif