/***************************************************************************
- * Copyright (C) 2005-2020 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 *
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()),
//: 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)