X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fbasichandler.cpp;h=8b9fd03a1410026ea2982f4a6e7974025899f052;hp=3c981515590efbc12c818e65c2f77c43de23be04;hb=48189e18131e2366eb2790b37f3b6412292f2d6c;hpb=5b560ec1a01349562ac58051ca7e7fa899d4b994 diff --git a/src/core/basichandler.cpp b/src/core/basichandler.cpp index 3c981515..8b9fd03a 100644 --- a/src/core/basichandler.cpp +++ b/src/core/basichandler.cpp @@ -21,22 +21,23 @@ #include -#include "networkconnection.h" +#include "util.h" +#include "logger.h" BasicHandler::BasicHandler(NetworkConnection *parent) : QObject(parent), - server(parent), defaultHandler(-1), + _networkConnection(parent), initDone(false) { - connect(this, SIGNAL(displayMsg(Message::Type, BufferInfo::Type, QString, QString, QString, quint8)), - server, SIGNAL(displayMsg(Message::Type, BufferInfo::Type, QString, QString, QString, quint8))); + connect(this, SIGNAL(displayMsg(Message::Type, BufferInfo::Type, QString, QString, QString, Message::Flags)), + networkConnection(), SIGNAL(displayMsg(Message::Type, BufferInfo::Type, QString, QString, QString, Message::Flags))); - connect(this, SIGNAL(putCmd(QString, QStringList, QString)), - server, SLOT(putCmd(QString, QStringList, QString))); + connect(this, SIGNAL(putCmd(QString, const QList &, const QByteArray &)), + networkConnection(), SLOT(putCmd(QString, const QList &, const QByteArray &))); - connect(this, SIGNAL(putRawLine(QString)), - server, SLOT(putRawLine(QString))); + connect(this, SIGNAL(putRawLine(const QByteArray &)), + networkConnection(), SLOT(putRawLine(const QByteArray &))); } QStringList BasicHandler::providesHandlers() { @@ -77,7 +78,7 @@ void BasicHandler::handle(const QString &member, QGenericArgument val0, if(!handlerHash().contains(handler)) { if(defaultHandler == -1) { - qWarning() << QString("No such Handler: %1::handle%2").arg(metaObject()->className(), handler); + quWarning() << QString("No such Handler: %1::handle%2").arg(metaObject()->className(), handler); return; } else { void *param[] = {0, Q_ARG(QString, member).data(), val0.data(), val1.data(), val2.data(), val3.data(), val4.data(), @@ -92,13 +93,71 @@ void BasicHandler::handle(const QString &member, QGenericArgument val0, qt_metacall(QMetaObject::InvokeMetaMethod, handlerHash()[handler], param); } +QString BasicHandler::serverDecode(const QByteArray &string) { + return networkConnection()->serverDecode(string); +} + +QStringList BasicHandler::serverDecode(const QList &stringlist) { + QStringList list; + foreach(QByteArray s, stringlist) list << networkConnection()->serverDecode(s); + return list; +} + +QString BasicHandler::channelDecode(const QString &bufferName, const QByteArray &string) { + return networkConnection()->channelDecode(bufferName, string); +} + +QStringList BasicHandler::channelDecode(const QString &bufferName, const QList &stringlist) { + QStringList list; + foreach(QByteArray s, stringlist) list << networkConnection()->channelDecode(bufferName, s); + return list; +} + +QString BasicHandler::userDecode(const QString &userNick, const QByteArray &string) { + return networkConnection()->userDecode(userNick, string); +} + +QStringList BasicHandler::userDecode(const QString &userNick, const QList &stringlist) { + QStringList list; + foreach(QByteArray s, stringlist) list << networkConnection()->userDecode(userNick, s); + return list; +} + +/*** ***/ + +QByteArray BasicHandler::serverEncode(const QString &string) { + return networkConnection()->serverEncode(string); +} + +QList BasicHandler::serverEncode(const QStringList &stringlist) { + QList list; + foreach(QString s, stringlist) list << networkConnection()->serverEncode(s); + return list; +} + +QByteArray BasicHandler::channelEncode(const QString &bufferName, const QString &string) { + return networkConnection()->channelEncode(bufferName, string); +} + +QList BasicHandler::channelEncode(const QString &bufferName, const QStringList &stringlist) { + QList list; + foreach(QString s, stringlist) list << networkConnection()->channelEncode(bufferName, s); + return list; +} + +QByteArray BasicHandler::userEncode(const QString &userNick, const QString &string) { + return networkConnection()->userEncode(userNick, string); +} + +QList BasicHandler::userEncode(const QString &userNick, const QStringList &stringlist) { + QList list; + foreach(QString s, stringlist) list << networkConnection()->userEncode(userNick, s); + return list; +} + // ==================== // protected: // ==================== -Network *BasicHandler::network() const { - return server->network(); -} - BufferInfo::Type BasicHandler::typeByTarget(const QString &target) const { if(target.isEmpty()) return BufferInfo::StatusBuffer; @@ -108,3 +167,17 @@ BufferInfo::Type BasicHandler::typeByTarget(const QString &target) const { return BufferInfo::QueryBuffer; } + +void BasicHandler::putCmd(const QString &cmd, const QByteArray ¶m, const QByteArray &prefix) { + QList list; + list << param; + emit putCmd(cmd, list, prefix); +} + +void BasicHandler::displayMsg(Message::Type msgType, QString target, QString text, QString sender, Message::Flags flags) { + IrcChannel *channel = network()->ircChannel(target); + if(!channel && (target.startsWith('$') || target.startsWith('#'))) + target = nickFromMask(sender); + + emit displayMsg(msgType, typeByTarget(target), target, text, sender, flags); +}