From: Johannes Huber Date: Wed, 11 Aug 2010 06:48:23 +0000 (+0200) Subject: new handler for ctcp clientinfo, fixes #1012 X-Git-Tag: 0.7-beta1~6 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=91aec4cd6a4a59dc42e18e31d69691f4499b8520 new handler for ctcp clientinfo, fixes #1012 - added new handler for ctcp clientinfo - replaced contextmenu ctcp finger command with clientinfo - finger contextmenu action was not working, no handler is implemented for this --- diff --git a/src/core/ctcphandler.cpp b/src/core/ctcphandler.cpp index 655f1700..6a28f5e9 100644 --- a/src/core/ctcphandler.cpp +++ b/src/core/ctcphandler.cpp @@ -188,6 +188,20 @@ void CtcpHandler::handleAction(CtcpType ctcptype, const QString &prefix, const Q emit displayMsg(Message::Action, typeByTarget(target), target, param, prefix); } +void CtcpHandler::handleClientinfo(CtcpType ctcptype, const QString &prefix, const QString &target, const QString ¶m) { + Q_UNUSED(target) + if(ctcptype == CtcpQuery) { + if(_ignoreListManager->ctcpMatch(prefix, network()->networkName(), "CLIENTINFO")) + return; + reply(nickFromMask(prefix), "CLIENTINFO", QString("ACTION CLIENTINFO PING TIME VERSION")); + emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("Received CTCP CLIENTINFO request from %1").arg(prefix)); + } else { + // display clientinfo answer + emit displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("Received CTCP CLIENTINFO answer from %1: %2") + .arg(nickFromMask(prefix)).arg(param)); + } +} + void CtcpHandler::handlePing(CtcpType ctcptype, const QString &prefix, const QString &target, const QString ¶m) { Q_UNUSED(target) if(ctcptype == CtcpQuery) { diff --git a/src/core/ctcphandler.h b/src/core/ctcphandler.h index 169ec16f..fde488da 100644 --- a/src/core/ctcphandler.h +++ b/src/core/ctcphandler.h @@ -49,6 +49,7 @@ public: public slots: void handleAction(CtcpType, const QString &prefix, const QString &target, const QString ¶m); + void handleClientinfo(CtcpType, const QString &prefix, const QString &target, const QString ¶m); void handlePing(CtcpType, const QString &prefix, const QString &target, const QString ¶m); void handleTime(CtcpType, const QString &prefix, const QString &target, const QString ¶m); void handleVersion(CtcpType, const QString &prefix, const QString &target, const QString ¶m); diff --git a/src/uisupport/contextmenuactionprovider.cpp b/src/uisupport/contextmenuactionprovider.cpp index 55932e3f..b10b106a 100644 --- a/src/uisupport/contextmenuactionprovider.cpp +++ b/src/uisupport/contextmenuactionprovider.cpp @@ -62,7 +62,7 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM registerAction(NickCtcpVersion, tr("Version")); registerAction(NickCtcpTime, tr("Time")); registerAction(NickCtcpPing, tr("Ping")); - registerAction(NickCtcpFinger, tr("Finger")); + registerAction(NickCtcpClientinfo, tr("Client info")); registerAction(NickIgnoreCustom, tr("Custom...")); // these texts are only dummies! don't think about tr() here! @@ -106,7 +106,7 @@ ContextMenuActionProvider::ContextMenuActionProvider(QObject *parent) : NetworkM nickCtcpMenu->addAction(action(NickCtcpPing)); nickCtcpMenu->addAction(action(NickCtcpVersion)); nickCtcpMenu->addAction(action(NickCtcpTime)); - nickCtcpMenu->addAction(action(NickCtcpFinger)); + nickCtcpMenu->addAction(action(NickCtcpClientinfo)); _nickCtcpMenuAction = new Action(tr("CTCP"), 0); _nickCtcpMenuAction->setMenu(nickCtcpMenu); diff --git a/src/uisupport/networkmodelcontroller.cpp b/src/uisupport/networkmodelcontroller.cpp index 111e1c30..020aaed4 100644 --- a/src/uisupport/networkmodelcontroller.cpp +++ b/src/uisupport/networkmodelcontroller.cpp @@ -393,8 +393,8 @@ void NetworkModelController::handleNickAction(ActionType type, QAction *action) case NickCtcpTime: Client::userInput(bufferInfo, QString("/CTCP %1 TIME").arg(nick)); break; - case NickCtcpFinger: - Client::userInput(bufferInfo, QString("/CTCP %1 FINGER").arg(nick)); + case NickCtcpClientinfo: + Client::userInput(bufferInfo, QString("/CTCP %1 CLIENTINFO").arg(nick)); break; case NickOp: Client::userInput(bufferInfo, QString("/OP %1").arg(nick)); diff --git a/src/uisupport/networkmodelcontroller.h b/src/uisupport/networkmodelcontroller.h index 4e84a6b7..4db935fc 100644 --- a/src/uisupport/networkmodelcontroller.h +++ b/src/uisupport/networkmodelcontroller.h @@ -80,7 +80,7 @@ public: NickCtcpVersion = 0x040000, NickCtcpPing = 0x050000, NickCtcpTime = 0x060000, - NickCtcpFinger = 0x070000, + NickCtcpClientinfo = 0x070000, NickOp = 0x080000, NickDeop = 0x090000, NickVoice = 0x0a0000,