- Message msg(params[1], prefix, Message::Notice);
- if(prefix == currentServer) emit displayMsg("", Message(params[1], prefix, Message::Server));
- else emit displayMsg("", Message(params[1], prefix, Message::Notice));
+ //Message msg(Message::Notice, params[1], prefix);
+ if(prefix == currentServer) emit displayMsg("", Message(Message::Server, params[1], prefix));
+ else emit displayMsg("", Message(Message::Notice, params[1], prefix));
+}
+
+void Server::handleServerPart(QString prefix, QStringList params) {
+ QString nick = updateNickFromMask(prefix);
+ Q_ASSERT(nicks.contains(nick));
+ VarMap n = nicks[nick].toMap();
+ VarMap chans = n["Channels"].toMap();
+ Q_ASSERT(chans.contains(params[0]));
+ chans.remove(params[0]);
+ QString msg;
+ if(params.count() > 1) msg = params[1];
+ emit displayMsg(params[0], Message(Message::Part, msg, prefix));
+ if(chans.count() > 0) {
+ n["Channels"] = chans;
+ nicks[nick] = n;
+ emit nickUpdated(network, nick, n);
+ } else {
+ nicks.remove(nick);
+ emit nickRemoved(network, nick);
+ }