/***************************************************************************
- * Copyright (C) 2005/06 by The Quassel Team *
+ * Copyright (C) 2005-07 by The Quassel Team *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include <QMetaObject>
#include <QDateTime>
-Server::Server(QString net) : network(net) {
+Server::Server(UserId uid, QString net) : user(uid), network(net) {
QString MQUOTE = QString('\020');
ctcpMDequoteHash[MQUOTE + '0'] = QString('\000');
ctcpMDequoteHash[MQUOTE + 'n'] = QString('\n');
void Server::connectToIrc(QString net) {
if(net != network) return; // not me!
- networkSettings = global->getData("Networks").toMap()[net].toMap();
- identity = global->getData("Identities").toMap()[networkSettings["Identity"].toString()].toMap();
+ networkSettings = Global::data(user, "Networks").toMap()[net].toMap();
+ identity = Global::data(user, "Identities").toMap()[networkSettings["Identity"].toString()].toMap();
QList<QVariant> servers = networkSettings["Servers"].toList();
QString host = servers[0].toMap()["Address"].toString();
quint16 port = servers[0].toMap()["Port"].toUInt();
return;
}
// OK, first we split the raw message into its various parts...
- QString prefix;
+ QString prefix = "";
QString cmd;
QStringList params;
QString nick = updateNickFromMask(prefix);
Q_ASSERT(nicks.contains(nick));
VarMap chans = nicks[nick]["Channels"].toMap();
+ QString msg;
+ if(params.count()) msg = params[0];
foreach(QString c, chans.keys()) {
- emit displayMsg(Message::Quit, c, params[0], prefix);
+ emit displayMsg(Message::Quit, c, msg, prefix);
}
nicks.remove(nick);
emit nickRemoved(network, nick);
/* RPL_ISUPPORT */
// TODO Complete 005 handling, also use sensible defaults for non-sent stuff
void Server::handleServer005(QString prefix, QStringList params) {
+ //qDebug() << prefix << params;
params.removeLast();
foreach(QString p, params) {
QString key = p.section("=", 0, 0);
void Server::handleCtcpPing(CtcpType ctcptype, QString prefix, QString target, QString param) {
if(ctcptype == CtcpQuery) {
- ctcpReply(userFromMask(prefix), "PING", param);
- emit displayMsg(Message::Plain, "", tr("Received CTCP PING request by %1").arg(prefix));
+ ctcpReply(nickFromMask(prefix), "PING", param);
+ emit displayMsg(Message::Server, "", tr("Received CTCP PING request by %1").arg(prefix));
} else {
// display ping answer
}
void Server::handleCtcpVersion(CtcpType ctcptype, QString prefix, QString target, QString param) {
if(ctcptype == CtcpQuery) {
- // FIXME use real Info about quasel :)
- ctcpReply(userFromMask(prefix), "VERSION", QString("Quassel:pre Release:*nix"));
- emit displayMsg(Message::Plain, "", tr("Received CTCP VERSION request by %1").arg(prefix));
+ // FIXME use real Info about quassel :)
+ //ctcpReply(nickFromMask(prefix), "VERSION", QString("Quassel:pre Release:*nix"));
+ ctcpReply(nickFromMask(prefix), "VERSION", QString("Quassel IRC (Pre-Release) - http://www.quassel-irc.org"));
+ emit displayMsg(Message::Server, "", tr("Received CTCP VERSION request by %1").arg(prefix));
} else {
// TODO display Version answer
}