+ case EventManager::IrcEventTopic:
+ if (params.count() >= 1) {
+ QString channel = net->serverDecode(params.at(0));
+ decParams << channel;
+ decParams << (params.count() >= 2 ? net->channelDecode(channel, decrypt(net, channel, params.at(1), true)) : QString());
+ }
+ break;
+
+ case EventManager::IrcEventAway:
+ {
+ QString nick = nickFromMask(prefix);
+ decParams << nick;
+ decParams << (params.count() >= 1 ? net->userDecode(nick, params.at(0)) : QString());
+ net->updateNickFromMask(prefix);
+ }
+ break;
+
+ case EventManager::IrcEventNumeric:
+ switch (num) {
+ case 301: /* RPL_AWAY */
+ if (params.count() >= 2) {
+ QString nick = net->serverDecode(params.at(0));
+ decParams << nick;
+ decParams << net->userDecode(nick, params.at(1));
+ }
+ break;
+
+ case 332: /* RPL_TOPIC */
+ if (params.count() >= 2) {
+ QString channel = net->serverDecode(params.at(0));
+ decParams << channel;
+ decParams << net->channelDecode(channel, decrypt(net, channel, params.at(1), true));
+ }
+ break;
+
+ case 333: /* Topic set by... */
+ if (params.count() >= 3) {
+ QString channel = net->serverDecode(params.at(0));
+ decParams << channel << net->serverDecode(params.at(1));
+ decParams << net->channelDecode(channel, params.at(2));
+ }
+ break;
+ case 451: /* You have not registered... */
+ if (target.compare("CAP", Qt::CaseInsensitive) == 0) {
+ // :irc.server.com 451 CAP :You have not registered
+ // If server doesn't support capabilities, it will report this message. Turn it
+ // into a nicer message since it's not a real error.
+ defaultHandling = false;
+ events << new MessageEvent(Message::Server, e->network(),
+ tr("Capability negotiation not supported"),
+ QString(), QString(), Message::None, e->timestamp());
+ }
+ break;
+ }
+
+ default:
+ break;