X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreuserinputhandler.cpp;h=0b6e5b73995b48e45e6ccf09f26143f5da240f02;hp=1e00426dfdc47ba4938ea4a4a4881b63b3033b1e;hb=HEAD;hpb=d030c159599a22c9023b8f0d34909d3277707f52 diff --git a/src/core/coreuserinputhandler.cpp b/src/core/coreuserinputhandler.cpp index 1e00426d..5c6f388f 100644 --- a/src/core/coreuserinputhandler.cpp +++ b/src/core/coreuserinputhandler.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2019 by the Quassel Project * + * Copyright (C) 2005-2022 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -183,14 +183,16 @@ void CoreUserInputHandler::handleCtcp(const BufferInfo& bufferInfo, const QStrin // FIXME make this a proper event coreNetwork()->coreSession()->ctcpParser()->query(coreNetwork(), nick, ctcpTag, message); - emit displayMsg(NetworkInternalMessage( - Message::Action, - BufferInfo::StatusBuffer, - "", - verboseMessage, - network()->myNick(), - Message::Flag::Self - )); + if (!network()->capEnabled(IrcCap::ECHO_MESSAGE)) { + emit displayMsg(NetworkInternalMessage( + Message::Action, + BufferInfo::StatusBuffer, + "", + verboseMessage, + network()->myNick(), + Message::Flag::Self + )); + } } void CoreUserInputHandler::handleDelkey(const BufferInfo& bufferInfo, const QString& msg) @@ -510,14 +512,16 @@ void CoreUserInputHandler::handleMe(const BufferInfo& bufferInfo, const QString& for (const auto& message : messages) { // Handle each separated message independently coreNetwork()->coreSession()->ctcpParser()->query(coreNetwork(), bufferInfo.bufferName(), "ACTION", message); - emit displayMsg(NetworkInternalMessage( - Message::Action, - bufferInfo.type(), - bufferInfo.bufferName(), - message, - network()->myNick(), - Message::Self - )); + if (!network()->capEnabled(IrcCap::ECHO_MESSAGE)) { + emit displayMsg(NetworkInternalMessage( + Message::Action, + bufferInfo.type(), + bufferInfo.bufferName(), + message, + network()->myNick(), + Message::Self + )); + } } } @@ -590,14 +594,16 @@ void CoreUserInputHandler::handleNotice(const BufferInfo& bufferInfo, const QStr params.clear(); params << serverEncode(bufferName) << channelEncode(bufferInfo.bufferName(), message); emit putCmd("NOTICE", params); - emit displayMsg(NetworkInternalMessage( - Message::Notice, - typeByTarget(bufferName), - bufferName, - message, - network()->myNick(), - Message::Self - )); + if (!network()->capEnabled(IrcCap::ECHO_MESSAGE)) { + emit displayMsg(NetworkInternalMessage( + Message::Notice, + typeByTarget(bufferName), + bufferName, + message, + network()->myNick(), + Message::Self + )); + } } } @@ -680,14 +686,16 @@ void CoreUserInputHandler::handleQuery(const BufferInfo& bufferInfo, const QStri // handleMsg is a no-op if message is empty } else { - emit displayMsg(NetworkInternalMessage( - Message::Plain, - BufferInfo::QueryBuffer, - target, - message, - network()->myNick(), - Message::Self - )); + if (!network()->capEnabled(IrcCap::ECHO_MESSAGE)) { + emit displayMsg(NetworkInternalMessage( + Message::Plain, + BufferInfo::QueryBuffer, + target, + message, + network()->myNick(), + Message::Self + )); + } // handleMsg needs the target specified at the beginning of the message handleMsg(bufferInfo, target + " " + message); } @@ -731,14 +739,16 @@ void CoreUserInputHandler::handleSay(const BufferInfo& bufferInfo, const QString #else putPrivmsg(bufferInfo.bufferName(), message, encodeFunc); #endif - emit displayMsg(NetworkInternalMessage( - Message::Plain, - bufferInfo.type(), - bufferInfo.bufferName(), - message, - network()->myNick(), - Message::Self - )); + if (!network()->capEnabled(IrcCap::ECHO_MESSAGE)) { + emit displayMsg(NetworkInternalMessage( + Message::Plain, + bufferInfo.type(), + bufferInfo.bufferName(), + message, + network()->myNick(), + Message::Self + )); + } } } @@ -769,7 +779,8 @@ void CoreUserInputHandler::handleSetkey(const BufferInfo& bufferInfo, const QStr typeByTarget(bufname), bufname, tr("[usage] /setkey sets the encryption key for nick or channel. " - "/setkey when in a channel or query buffer sets the key for it.") + "/setkey when in a channel or query buffer sets the key for it. " + "Prefix by cbc: or ebc: to explicitly set the encryption mode respectively. Default is CBC.") )); return; } @@ -798,6 +809,12 @@ void CoreUserInputHandler::handleSetkey(const BufferInfo& bufferInfo, const QStr #endif } +void CoreUserInputHandler::handleSetname(const BufferInfo& bufferInfo, const QString& msg) +{ + Q_UNUSED(bufferInfo) + emit putCmd("SETNAME", serverEncode(msg)); +} + void CoreUserInputHandler::handleShowkey(const BufferInfo& bufferInfo, const QString& msg) { QString bufname = bufferInfo.bufferName().isNull() ? "" : bufferInfo.bufferName();