Diffstat (limited to 'noncore/net/opieirc/ircsession.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/opieirc/ircsession.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/noncore/net/opieirc/ircsession.cpp b/noncore/net/opieirc/ircsession.cpp index ca0df50..80a327a 100644 --- a/noncore/net/opieirc/ircsession.cpp +++ b/noncore/net/opieirc/ircsession.cpp @@ -1,14 +1,16 @@ + #include "ircsession.h" #include "ircmessageparser.h" +#include "ircchannelperson.h" #include "ircversion.h" IRCSession::IRCSession(IRCServer *server) { m_server = server; m_connection = new IRCConnection(m_server); m_parser = new IRCMessageParser(this); connect(m_connection, SIGNAL(messageArrived(IRCMessage*)), this, SLOT(handleMessage(IRCMessage*))); connect(m_parser, SIGNAL(outputReady(IRCOutput)), this, SIGNAL(outputReady(IRCOutput))); connect(m_connection, SIGNAL(outputReady(IRCOutput)), this, SIGNAL(outputReady(IRCOutput))); } IRCSession::~IRCSession() { @@ -128,25 +130,25 @@ void IRCSession::updateNickname(const QString &oldNickname, const QString &newNi emit outputReady(IRCOutput(OUTPUT_ERROR, tr("Nickname change of an unknown person"))); return; } getChannelsByPerson(person, channels); output = IRCOutput(OUTPUT_NICKCHANGE, tr("%1 is now known as %2").arg(oldNickname).arg(newNickname)); } QListIterator<IRCChannel> it(channels); for (;it.current(); ++it) { IRCChannelPerson *chanperson = it.current()->getPerson(oldNickname); it.current()->removePerson(chanperson); - chanperson->person->setNick(newNickname); + chanperson->setNick(newNickname); it.current()->addPerson(chanperson); } emit updateChannels(); output.addParam(new QString(newNickname)); emit outputReady(output); } IRCChannel *IRCSession::getChannel(QString channelname) { QListIterator<IRCChannel> it(m_channels); for (; it.current(); ++it) { if (it.current()->channelname() == channelname) { @@ -185,12 +187,28 @@ void IRCSession::addChannel(IRCChannel *channel) { void IRCSession::removeChannel(IRCChannel *channel) { m_channels.remove(channel); } void IRCSession::removePerson(IRCPerson *person) { m_people.remove(person); } void IRCSession::handleMessage(IRCMessage *message) { m_parser->parse(message); } + +void IRCSession::whois(const QString &nickname) { + m_connection->whois(nickname); +} + +void IRCSession::sendCTCPPing(const QString &nickname) { + m_connection->sendCTCPPing(nickname); +} + +void IRCSession::sendCTCPRequest(const QString &nickname, const QString &type, const QString &args) { + m_connection->sendCTCPRequest(nickname, type, args); +} + +void IRCSession::sendCTCPReply(const QString &nickname, const QString &type, const QString &args) { + m_connection->sendCTCPReply(nickname, type, args); +} |