}
void Client::recvMessage(const Message &msg) {
- Buffer *b = buffer(msg.buffer);
+ Buffer *b = buffer(msg.buffer());
Buffer::ActivityLevel level = Buffer::OtherActivity;
- if(msg.type == Message::Plain || msg.type == Message::Notice){
+ if(msg.type() == Message::Plain || msg.type() == Message::Notice){
level |= Buffer::NewMessage;
}
- if(msg.flags & Message::Highlight){
+ if(msg.flags() & Message::Highlight){
level |= Buffer::Highlight;
}
emit bufferActivity(level, b);
#include "buffer.h"
#include "message.h"
+
class AbstractUi;
class BufferTreeModel;
class QtGui;
#include "message.h"
#include <QDataStream>
+Message::Message(BufferId __buffer, Type __type, QString __text, QString __sender, quint8 __flags)
+ : _buffer(__buffer), _text(__text), _sender(__sender), _type(__type), _flags(__flags) {
+ _timeStamp = QDateTime::currentDateTime().toUTC();
+}
+
+Message::Message(QDateTime __ts, BufferId __buffer, Type __type, QString __text, QString __sender, quint8 __flags)
+ : _timeStamp(__ts), _buffer(__buffer), _text(__text), _sender(__sender), _type(__type), _flags(__flags) {
+
+}
+
+MsgId Message::msgId() const {
+ return _msgId;
+}
+
+void Message::setMsgId(MsgId _id) {
+ _msgId = _id;
+}
+
+BufferId Message::buffer() const {
+ return _buffer;
+}
+
+QString Message::text() const {
+ return _text;
+}
+
+QString Message::sender() const {
+ return _sender;
+}
+
+Message::Type Message::type() const {
+ return _type;
+}
+
+quint8 Message::flags() const {
+ return _flags;
+}
+
+QDateTime Message::timeStamp() const {
+ return _timeStamp;
+}
+
+
QDataStream &operator<<(QDataStream &out, const Message &msg) {
- out << (quint32)msg.timeStamp.toTime_t() << (quint8)msg.type << (quint8)msg.flags
- << msg.buffer << msg.sender.toUtf8() << msg.text.toUtf8();
+ out << (quint32)msg.timeStamp().toTime_t() << (quint8)msg.type() << (quint8)msg.flags()
+ << msg.buffer() << msg.sender().toUtf8() << msg.text().toUtf8();
return out;
}
QByteArray s, m;
BufferId buf;
in >> ts >> t >> f >> buf >> s >> m;
- msg.type = (Message::Type)t;
- msg.flags = (quint8)f;
- msg.buffer = buf;
- msg.timeStamp = QDateTime::fromTime_t(ts);
- msg.sender = QString::fromUtf8(s);
- msg.text = QString::fromUtf8(m);
+ msg._type = (Message::Type)t;
+ msg._flags = (quint8)f;
+ msg._buffer = buf;
+ msg._timeStamp = QDateTime::fromTime_t(ts);
+ msg._sender = QString::fromUtf8(s);
+ msg._text = QString::fromUtf8(m);
return in;
}
#include "global.h"
-struct Message {
+class 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 text;
- QString sender;
- Type type;
- quint8 flags;
- QDateTime timeStamp;
+ Message(BufferId buffer = BufferId(), 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, BufferId buffer = BufferId(), 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) {}
+ BufferId buffer() const;
+ QString text() const;
+ QString sender() const;
+ Type type() const;
+ quint8 flags() const;
+ QDateTime timeStamp() const;
+
+ private:
+ QDateTime _timeStamp;
+ MsgId _msgId;
+ BufferId _buffer;
+ QString _text;
+ QString _sender;
+ Type _type;
+ quint8 _flags;
+
+ friend QDataStream &operator>>(QDataStream &in, Message &msg);
};
buf = storage->getBufferId(user, s->getNetwork(), target);
}
Message msg(buf, type, text, sender, flags);
- msg.msgId = storage->logMessage(msg);
- Q_ASSERT(msg.msgId);
+ msg.setMsgId(storage->logMessage(msg));
+ Q_ASSERT(msg.msgId());
emit displayMsg(msg);
}
}
MsgId SqliteStorage::logMessage(Message msg) {
- logMessageQuery->bindValue(":time", msg.timeStamp.toTime_t());
- logMessageQuery->bindValue(":bufferid", msg.buffer.uid());
- logMessageQuery->bindValue(":type", msg.type);
- logMessageQuery->bindValue(":flags", msg.flags);
- logMessageQuery->bindValue(":sender", msg.sender);
- logMessageQuery->bindValue(":message", msg.text);
+ logMessageQuery->bindValue(":time", msg.timeStamp().toTime_t());
+ logMessageQuery->bindValue(":bufferid", msg.buffer().uid());
+ logMessageQuery->bindValue(":type", msg.type());
+ logMessageQuery->bindValue(":flags", msg.flags());
+ logMessageQuery->bindValue(":sender", msg.sender());
+ logMessageQuery->bindValue(":message", msg.text());
logMessageQuery->exec();
if(logMessageQuery->lastError().isValid()) {
// constraint violation - must be NOT NULL constraint - probably the sender is missing...
if(logMessageQuery->lastError().number() == 19) {
- addSenderQuery->bindValue(":sender", msg.sender);
+ addSenderQuery->bindValue(":sender", msg.sender());
addSenderQuery->exec();
logMessageQuery->exec();
Q_ASSERT(!logMessageQuery->lastError().isValid());
}
}
- getLastMessageIdQuery->bindValue(":time", msg.timeStamp.toTime_t());
- getLastMessageIdQuery->bindValue(":bufferid", msg.buffer.uid());
- getLastMessageIdQuery->bindValue(":type", msg.type);
- getLastMessageIdQuery->bindValue(":sender", msg.sender);
+ getLastMessageIdQuery->bindValue(":time", msg.timeStamp().toTime_t());
+ getLastMessageIdQuery->bindValue(":bufferid", msg.buffer().uid());
+ getLastMessageIdQuery->bindValue(":type", msg.type());
+ getLastMessageIdQuery->bindValue(":sender", msg.sender());
getLastMessageIdQuery->exec();
if(getLastMessageIdQuery->first()) {
return getLastMessageIdQuery->value(0).toUInt();
} else { // somethin went wrong... :(
- qDebug() << getLastMessageIdQuery->lastQuery() << "time/bufferid/type/sender:" << msg.timeStamp.toTime_t() << msg.buffer.uid() << msg.type << msg.sender;
+ qDebug() << getLastMessageIdQuery->lastQuery() << "time/bufferid/type/sender:" << msg.timeStamp().toTime_t() << msg.buffer().uid() << msg.type() << msg.sender();
Q_ASSERT(false);
return 0;
}
requestMsgsQuery->value(5).toString(),
requestMsgsQuery->value(4).toString(),
requestMsgsQuery->value(3).toUInt());
- msg.msgId = requestMsgsQuery->value(0).toUInt();
+ msg.setMsgId(requestMsgsQuery->value(0).toUInt());
messagelist << msg;
}
return messagelist;
requestMsgsSinceQuery->value(5).toString(),
requestMsgsSinceQuery->value(4).toString(),
requestMsgsSinceQuery->value(3).toUInt());
- msg.msgId = requestMsgsSinceQuery->value(0).toUInt();
+ msg.setMsgId(requestMsgsSinceQuery->value(0).toUInt());
messagelist << msg;
}
requestMsgRangeQuery->value(5).toString(),
requestMsgRangeQuery->value(4).toString(),
requestMsgRangeQuery->value(3).toUInt());
- msg.msgId = requestMsgRangeQuery->value(0).toUInt();
+ msg.setMsgId(requestMsgRangeQuery->value(0).toUInt());
messagelist << msg;
}
}
void ChatLine::formatMsg(Message msg) {
- QString user = userFromMask(msg.sender);
- QString host = hostFromMask(msg.sender);
- QString nick = nickFromMask(msg.sender);
- QString text = Style::mircToInternal(msg.text);
- QString networkName = msg.buffer.network();
- QString bufferName = msg.buffer.buffer();
+ QString user = userFromMask(msg.sender());
+ QString host = hostFromMask(msg.sender());
+ QString nick = nickFromMask(msg.sender());
+ QString text = Style::mircToInternal(msg.text());
+ QString networkName = msg.buffer().network();
+ QString bufferName = msg.buffer().buffer();
- QString c = tr("%DT[%1]").arg(msg.timeStamp.toLocalTime().toString("hh:mm:ss"));
+ QString c = tr("%DT[%1]").arg(msg.timeStamp().toLocalTime().toString("hh:mm:ss"));
QString s, t;
- switch(msg.type) {
+ switch(msg.type()) {
case Message::Plain:
s = tr("%DS<%1>").arg(nick); t = tr("%D0%1").arg(text); break;
case Message::Server:
break;
case Message::Nick:
s = tr("%Dr<->");
- if(nick == msg.text) t = tr("%DrYou are now known as %DN%1%DN").arg(msg.text);
- else t = tr("%Dr%DN%1%DN is now known as %DN%DU%2%DU%DN").arg(nick, msg.text);
+ if(nick == msg.text()) t = tr("%DrYou are now known as %DN%1%DN").arg(msg.text());
+ else t = tr("%Dr%DN%1%DN is now known as %DN%DU%2%DU%DN").arg(nick, msg.text());
break;
case Message::Mode:
s = tr("%Dm***");
- if(nick.isEmpty()) t = tr("%DmUser mode: %DM%1%DM").arg(msg.text);
- else t = tr("%DmMode %DM%1%DM by %DN%DU%2%DU%DN").arg(msg.text, nick);
+ if(nick.isEmpty()) t = tr("%DmUser mode: %DM%1%DM").arg(msg.text());
+ else t = tr("%DmMode %DM%1%DM by %DN%DU%2%DU%DN").arg(msg.text(), nick);
break;
case Message::Action:
s = tr("%Da-*-");
- t = tr("%Da%DN%DU%1%DU%DN %2").arg(nick).arg(msg.text);
+ t = tr("%Da%DN%DU%1%DU%DN %2").arg(nick).arg(msg.text());
break;
default:
- s = tr("%De%1").arg(msg.sender);
- t = tr("%De[%1]").arg(msg.text);
+ s = tr("%De%1").arg(msg.sender());
+ t = tr("%De[%1]").arg(msg.text());
}
QTextOption tsOption, senderOption, textOption;
tsFormatted = Style::internalToFormatted(c);
}
uint ChatLine::msgId() const {
- return msg.buffer.uid();
+ return msg.buffer().uid();
}
BufferId ChatLine::bufferId() const {
- return msg.buffer;
+ return msg.buffer();
}
QDateTime ChatLine::timeStamp() const {
- return msg.timeStamp;
+ return msg.timeStamp();
}
QString ChatLine::sender() const {