From 616bc37464240538356a1f57465823915df00fd0 Mon Sep 17 00:00:00 2001 From: Tomatix Date: Thu, 19 Nov 2020 21:32:39 +0100 Subject: [PATCH] Fixed storing of updated channel modes --- IRCClient/IRCBase.cpp | 5 ++++- IdealIRC/IRC.cpp | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/IRCClient/IRCBase.cpp b/IRCClient/IRCBase.cpp index fd4a13d..70f700d 100644 --- a/IRCClient/IRCBase.cpp +++ b/IRCClient/IRCBase.cpp @@ -532,7 +532,10 @@ struct IRCBasePriv } else if (group == 'D') { - chan->setMode(m, ""); + if (sign == '+') + chan->setMode(m, ""); + else + chan->delMode(m); } else if (group == 'M') { diff --git a/IdealIRC/IRC.cpp b/IdealIRC/IRC.cpp index 6a9a5e7..566c618 100644 --- a/IdealIRC/IRC.cpp +++ b/IdealIRC/IRC.cpp @@ -210,6 +210,10 @@ void IRC::onMsgMode(const IRCPrefix& sender, const std::string& target, const st emit memberChanged(member.member()->prefix().nickname().c_str(), member); } } + + auto subwin = MdiManager::instance().findWindow(&getStatus(), QString::fromStdString(target)); + if (subwin) + subwin->refreshWindowTitle(); } /* User-mode changed */ @@ -322,6 +326,9 @@ void IRC::onMsgTopic(const IRCPrefix& sender, const std::string& target, const s else msg = fmt::format("{} removed the topic", sender.toString()); getStatus().printTo(target.c_str(), PrintType::Topic, msg.c_str()); + auto subwin = MdiManager::instance().findWindow(&getStatus(), QString::fromStdString(target)); + if (subwin) + subwin->refreshWindowTitle(); } contextualScriptEvent(&m_status, ScriptEvent::Topic, sender.toString(), target, topic);