summaryrefslogtreecommitdiff
path: root/src/gui/windows/chatwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/windows/chatwindow.cpp')
-rw-r--r--src/gui/windows/chatwindow.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/gui/windows/chatwindow.cpp b/src/gui/windows/chatwindow.cpp
index 4abc70561..5cf727d92 100644
--- a/src/gui/windows/chatwindow.cpp
+++ b/src/gui/windows/chatwindow.cpp
@@ -1559,6 +1559,10 @@ bool ChatWindow::resortChatLog(std::string line, ChatMsgType::Type own,
ignoreRecord, tryRemoveColors);
}
}
+ else if (serverFeatures->haveChatChannels())
+ {
+ channelChatLog(channel, line, own, ignoreRecord, tryRemoveColors);
+ }
else if (mShowAllLang)
{
localChatTab->chatLog(prefix + line, own,
@@ -1584,6 +1588,33 @@ void ChatWindow::battleChatLog(const std::string &line, ChatMsgType::Type own,
debugChatTab->chatLog(line, own, ignoreRecord, tryRemoveColors);
}
+void ChatWindow::channelChatLog(const std::string &channel,
+ const std::string &line,
+ ChatMsgType::Type own,
+ const bool ignoreRecord,
+ const bool tryRemoveColors)
+{
+ std::string tempChannel = channel;
+ toLower(tempChannel);
+
+ ChannelTab *tab = nullptr;
+ const ChannelMap::const_iterator i = mChannels.find(tempChannel);
+
+ if (i != mChannels.end())
+ {
+ tab = i->second;
+ }
+ else
+ {
+ tab = addChannelTab(channel, false);
+ if (tab)
+ saveState();
+ }
+
+ if (tab)
+ tab->chatLog(line, own, ignoreRecord, tryRemoveColors);
+}
+
void ChatWindow::localPetSay(const std::string &nick, const std::string &text)
{
Being *const being = actorManager->findBeingByName(