X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fbasichandler.cpp;h=a053b52291cb90f89b27e3626d94f49cfd0ed519;hp=8288e10d2186a80275703da07b710542b04f15d6;hb=526eccc444029c5a0d80694487c3aec6707cbeda;hpb=723db5bff304ad3fdf5a0609198c65a66bfbaea7 diff --git a/src/core/basichandler.cpp b/src/core/basichandler.cpp index 8288e10d..a053b522 100644 --- a/src/core/basichandler.cpp +++ b/src/core/basichandler.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -21,22 +21,23 @@ #include -#include "networkconnection.h" +#include "util.h" +#include "logger.h" -BasicHandler::BasicHandler(NetworkConnection *parent) +BasicHandler::BasicHandler(CoreNetwork *parent) : QObject(parent), defaultHandler(-1), - _networkConnection(parent), + _network(parent), initDone(false) { - connect(this, SIGNAL(displayMsg(Message::Type, BufferInfo::Type, QString, QString, QString, quint8)), - networkConnection(), SIGNAL(displayMsg(Message::Type, BufferInfo::Type, QString, QString, QString, quint8))); + connect(this, SIGNAL(displayMsg(Message::Type, BufferInfo::Type, const QString &, const QString &, const QString &, Message::Flags)), + network(), SLOT(displayMsg(Message::Type, BufferInfo::Type, const QString &, const QString &, const QString &, Message::Flags))); - connect(this, SIGNAL(putCmd(QString, const QVariantList &, const QByteArray &)), - networkConnection(), SLOT(putCmd(QString, const QVariantList &, const QByteArray &))); + connect(this, SIGNAL(putCmd(QString, const QList &, const QByteArray &)), + network(), SLOT(putCmd(QString, const QList &, const QByteArray &))); connect(this, SIGNAL(putRawLine(const QByteArray &)), - networkConnection(), SLOT(putRawLine(const QByteArray &))); + network(), SLOT(putRawLine(const QByteArray &))); } QStringList BasicHandler::providesHandlers() { @@ -93,79 +94,70 @@ void BasicHandler::handle(const QString &member, QGenericArgument val0, } QString BasicHandler::serverDecode(const QByteArray &string) { - return networkConnection()->serverDecode(string); + return network()->serverDecode(string); } QStringList BasicHandler::serverDecode(const QList &stringlist) { QStringList list; - foreach(QByteArray s, stringlist) list << networkConnection()->serverDecode(s); + foreach(QByteArray s, stringlist) list << network()->serverDecode(s); return list; } QString BasicHandler::channelDecode(const QString &bufferName, const QByteArray &string) { - return networkConnection()->channelDecode(bufferName, string); + return network()->channelDecode(bufferName, string); } QStringList BasicHandler::channelDecode(const QString &bufferName, const QList &stringlist) { QStringList list; - foreach(QByteArray s, stringlist) list << networkConnection()->channelDecode(bufferName, s); + foreach(QByteArray s, stringlist) list << network()->channelDecode(bufferName, s); return list; } QString BasicHandler::userDecode(const QString &userNick, const QByteArray &string) { - return networkConnection()->userDecode(userNick, string); + return network()->userDecode(userNick, string); } QStringList BasicHandler::userDecode(const QString &userNick, const QList &stringlist) { QStringList list; - foreach(QByteArray s, stringlist) list << networkConnection()->userDecode(userNick, s); + foreach(QByteArray s, stringlist) list << network()->userDecode(userNick, s); return list; } /*** ***/ QByteArray BasicHandler::serverEncode(const QString &string) { - return networkConnection()->serverEncode(string); + return network()->serverEncode(string); } QList BasicHandler::serverEncode(const QStringList &stringlist) { QList list; - foreach(QString s, stringlist) list << networkConnection()->serverEncode(s); + foreach(QString s, stringlist) list << network()->serverEncode(s); return list; } QByteArray BasicHandler::channelEncode(const QString &bufferName, const QString &string) { - return networkConnection()->channelEncode(bufferName, string); + return network()->channelEncode(bufferName, string); } QList BasicHandler::channelEncode(const QString &bufferName, const QStringList &stringlist) { QList list; - foreach(QString s, stringlist) list << networkConnection()->channelEncode(bufferName, s); + foreach(QString s, stringlist) list << network()->channelEncode(bufferName, s); return list; } QByteArray BasicHandler::userEncode(const QString &userNick, const QString &string) { - return networkConnection()->userEncode(userNick, string); + return network()->userEncode(userNick, string); } QList BasicHandler::userEncode(const QString &userNick, const QStringList &stringlist) { QList list; - foreach(QString s, stringlist) list << networkConnection()->userEncode(userNick, s); + foreach(QString s, stringlist) list << network()->userEncode(userNick, s); return list; } // ==================== // protected: // ==================== - -Network *BasicHandler::network() const { - return networkConnection()->network(); -} - -NetworkConnection *BasicHandler::networkConnection() const { - return _networkConnection; -} - BufferInfo::Type BasicHandler::typeByTarget(const QString &target) const { if(target.isEmpty()) return BufferInfo::StatusBuffer; @@ -177,13 +169,18 @@ BufferInfo::Type BasicHandler::typeByTarget(const QString &target) const { } void BasicHandler::putCmd(const QString &cmd, const QByteArray ¶m, const QByteArray &prefix) { - QVariantList list; + QList list; list << param; emit putCmd(cmd, list, prefix); } -void BasicHandler::putCmd(const QString &cmd, const QList ¶ms, const QByteArray &prefix) { - QVariantList list; - foreach(QByteArray param, params) list << param; - emit putCmd(cmd, list, prefix); +void BasicHandler::displayMsg(Message::Type msgType, QString target, const QString &text, const QString &sender, Message::Flags flags) { + if(!target.isEmpty() && network()->prefixes().contains(target[0])) + target = target.mid(1); + + IrcChannel *channel = network()->ircChannel(target); + if(!channel && (target.startsWith('$') || target.startsWith('#'))) + target = nickFromMask(sender); + + emit displayMsg(msgType, typeByTarget(target), target, text, sender, flags); }