1 /***************************************************************************
2 * Copyright (C) 2005-2012 by the Quassel Project *
3 * devel@quassel-irc.org *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) version 3. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19 ***************************************************************************/
21 #include "networkevent.h"
23 Event *NetworkEvent::create(EventManager::EventType type, QVariantMap &map, Network *network) {
25 case EventManager::NetworkIncoming:
26 return new NetworkDataEvent(type, map, network);
28 case EventManager::NetworkConnecting:
29 case EventManager::NetworkInitializing:
30 case EventManager::NetworkInitialized:
31 case EventManager::NetworkReconnecting:
32 case EventManager::NetworkDisconnecting:
33 case EventManager::NetworkDisconnected:
34 return new NetworkConnectionEvent(type, map, network);
36 case EventManager::NetworkSplitJoin:
37 case EventManager::NetworkSplitQuit:
38 return new NetworkSplitEvent(type, map, network);
46 NetworkEvent::NetworkEvent(EventManager::EventType type, QVariantMap &map, Network *network)
54 void NetworkEvent::toVariantMap(QVariantMap &map) const {
55 Event::toVariantMap(map);
56 map["network"] = networkId().toInt();
60 NetworkDataEvent::NetworkDataEvent(EventManager::EventType type, QVariantMap &map, Network *network)
61 : NetworkEvent(type, map, network)
63 _data = map.take("data").toByteArray();
67 void NetworkDataEvent::toVariantMap(QVariantMap &map) const {
68 NetworkEvent::toVariantMap(map);
73 NetworkConnectionEvent::NetworkConnectionEvent(EventManager::EventType type, QVariantMap &map, Network *network)
74 : NetworkEvent(type, map, network)
76 _state = static_cast<Network::ConnectionState>(map.take("state").toInt()); // FIXME: check enum plausibility
80 void NetworkConnectionEvent::toVariantMap(QVariantMap &map) const {
81 NetworkEvent::toVariantMap(map);
82 map["state"] = connectionState();
86 NetworkSplitEvent::NetworkSplitEvent(EventManager::EventType type, QVariantMap &map, Network *network)
87 : NetworkEvent(type, map, network)
89 _channel = map.take("channel").toString();
90 _users = map.take("users").toStringList();
91 _quitMsg = map.take("quitMessage").toString();
95 void NetworkSplitEvent::toVariantMap(QVariantMap &map) const
97 NetworkEvent::toVariantMap(map);
98 map["channel"] = channel();
99 map["users"] = users();
100 map["quitMessage"] = quitMessage();