+MessageEvent::MessageEvent(EventManager::EventType type, QVariantMap& map, Network* network)
+ : NetworkEvent(type, map, network)
+{
+ _msgType = static_cast<Message::Type>(map.take("messageType").toInt());
+ _msgFlags = static_cast<Message::Flags>(map.take("messageFlags").toInt());
+ _bufferType = static_cast<BufferInfo::Type>(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;
+
+ if (network()->isChannelName(target))
+ return BufferInfo::ChannelBuffer;
+
+ return BufferInfo::QueryBuffer;
+}