summaryrefslogtreecommitdiff
path: root/src/gui/windows
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/windows')
-rw-r--r--src/gui/windows/chatwindow.cpp31
-rw-r--r--src/gui/windows/chatwindow.h6
2 files changed, 37 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(
diff --git a/src/gui/windows/chatwindow.h b/src/gui/windows/chatwindow.h
index 068ec4111..b21930bd0 100644
--- a/src/gui/windows/chatwindow.h
+++ b/src/gui/windows/chatwindow.h
@@ -223,6 +223,12 @@ class ChatWindow final : public Window,
const bool ignoreRecord = false,
const bool tryRemoveColors = true);
+ void channelChatLog(const std::string &channel,
+ const std::string &line,
+ ChatMsgType::Type own,
+ const bool ignoreRecord,
+ const bool tryRemoveColors);
+
void updateOnline(const std::set<std::string> &onlinePlayers) const;
void loadState();