X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fmessageevent.cpp;h=606103e9e526e1cdd08839cebebab792002da0c8;hb=6f38b6fdeb73e726c24b26a97b98c9cfe0fc8a0e;hp=d872da7ec312d9384f7436cc1fa9acb1c6846e0f;hpb=7a9c84596a4bb5d6742e98d4adf2d22ccec62a42;p=quassel.git diff --git a/src/common/messageevent.cpp b/src/common/messageevent.cpp index d872da7e..606103e9 100644 --- a/src/common/messageevent.cpp +++ b/src/common/messageevent.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2010 by the Quassel Project * + * Copyright (C) 2005-2012 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,6 +20,13 @@ #include "messageevent.h" +Event *MessageEvent::create(EventManager::EventType type, QVariantMap &map, Network *network) { + if(type == EventManager::MessageEvent) + return new MessageEvent(type, map, network); + + return 0; +} + MessageEvent::MessageEvent(Message::Type msgType, Network *net, const QString &msg, const QString &sender, const QString &target, Message::Flags flags, const QDateTime ×tamp) @@ -47,6 +54,30 @@ MessageEvent::MessageEvent(Message::Type msgType, Network *net, const QString &m setTimestamp(QDateTime::currentDateTime()); } + +MessageEvent::MessageEvent(EventManager::EventType type, QVariantMap &map, Network *network) + : NetworkEvent(type, map, network) +{ + _msgType = static_cast(map.take("messageType").toInt()); + _msgFlags = static_cast(map.take("messageFlags").toInt()); + _bufferType = static_cast(map.take("bufferType").toInt()); + _text = map.take("text").toString(); + _sender = map.take("sender").toString(); + _target = map.take("target").toString(); +} + + +void MessageEvent::toVariantMap(QVariantMap &map) const { + NetworkEvent::toVariantMap(map); + map["messageType"] = msgType(); + map["messageFlags"] = (int)msgFlags(); + map["bufferType"] = bufferType(); + map["text"] = text(); + map["sender"] = sender(); + map["target"] = target(); +} + + BufferInfo::Type MessageEvent::bufferTypeByTarget(const QString &target) const { if(target.isEmpty()) return BufferInfo::StatusBuffer;