X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Feventstringifier.cpp;h=a852be1b8facedc6b69b2a87b1a64865978ba45a;hb=48017b680ede0dbfb121d1184dfbd13536cfc53f;hp=740310da4148f45e0f3120492ed6ae3c58b39b1d;hpb=e14649614fbbf9b386505a5d782b88b1ac313c1f;p=quassel.git diff --git a/src/core/eventstringifier.cpp b/src/core/eventstringifier.cpp index 740310da..a852be1b 100644 --- a/src/core/eventstringifier.cpp +++ b/src/core/eventstringifier.cpp @@ -801,7 +801,12 @@ void EventStringifier::processCtcpEvent(CtcpEvent* e) if (e->type() != EventManager::CtcpEvent) return; - if (e->testFlag(EventManager::Self)) { + // Only stringify outgoing CTCP messages this way + if (e->testFlag(EventManager::Self) && + // Only stringify CTCP queries this way + e->ctcpType() == CtcpEvent::CtcpType::Query && + // Always handle ACTIONs as if they were sent from network, to properly handle echo-message + e->ctcpCmd() != "ACTION") { displayMsg(e, Message::Action, tr("sending CTCP-%1 request to %2").arg(e->ctcpCmd(), e->target()), @@ -823,14 +828,24 @@ void EventStringifier::defaultHandler(const QString& ctcpCmd, CtcpEvent* e) //: Optional "unknown" in "Received unknown CTCP-FOO request by bar" unknown = tr("unknown") + ' '; displayMsg(e, Message::Server, tr("Received %1CTCP-%2 request by %3").arg(unknown, e->ctcpCmd(), e->prefix())); - return; + } else { + // Ignore echo messages for our own answers + if (!e->testFlag(EventManager::Self)) { + displayMsg(e, Message::Server, + tr("Received CTCP-%1 answer from %2: %3").arg(e->ctcpCmd(), nickFromMask(e->prefix()),e->param())); + } } - displayMsg(e, Message::Server, tr("Received CTCP-%1 answer from %2: %3").arg(e->ctcpCmd(), nickFromMask(e->prefix()), e->param())); } void EventStringifier::handleCtcpAction(CtcpEvent* e) { - displayMsg(e, Message::Action, e->param(), e->prefix(), e->target()); + Message::Flag msgFlags = Message::Flag::None; + if (e->testFlag(EventManager::Self)) { + // Mark the message as Self + msgFlags = Message::Self; + } + + displayMsg(e, Message::Action, e->param(), e->prefix(), e->target(), msgFlags); } void EventStringifier::handleCtcpPing(CtcpEvent* e)