+void LegacyPeer::dispatchPackedFunc(const QVariantList& packedFunc)
+{
+ writeMessage(QVariant(packedFunc));
+}
+
+// Handle the changed format for Network's initData
+// cf. Network::initIrcUsersAndChannels()
+void LegacyPeer::fromLegacyIrcUsersAndChannels(QVariantMap& initData)
+{
+ const QVariantMap& legacyMap = initData["IrcUsersAndChannels"].toMap();
+ QVariantMap newMap;
+
+ QHash<QString, QVariantList> users;
+ foreach (const QVariant& v, legacyMap["users"].toMap().values()) {
+ const QVariantMap& map = v.toMap();
+ foreach (const QString& key, map.keys())
+ users[key] << map[key];
+ }
+ QVariantMap userMap;
+ foreach (const QString& key, users.keys())
+ userMap[key] = users[key];
+ newMap["Users"] = userMap;
+
+ QHash<QString, QVariantList> channels;
+ foreach (const QVariant& v, legacyMap["channels"].toMap().values()) {
+ const QVariantMap& map = v.toMap();
+ foreach (const QString& key, map.keys())
+ channels[key] << map[key];
+ }
+ QVariantMap channelMap;
+ foreach (const QString& key, channels.keys())
+ channelMap[key] = channels[key];
+ newMap["Channels"] = channelMap;