summaryrefslogtreecommitdiff
path: root/src/gui/chatwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/chatwindow.cpp')
-rw-r--r--src/gui/chatwindow.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/gui/chatwindow.cpp b/src/gui/chatwindow.cpp
index 1065501b7..f5618a279 100644
--- a/src/gui/chatwindow.cpp
+++ b/src/gui/chatwindow.cpp
@@ -215,6 +215,7 @@ ChatWindow::ChatWindow():
mChatHistoryIndex(0),
mAwayLog(),
mHighlights(),
+ mGlobalsFilter(),
mGMLoaded(false),
mHaveMouse(false),
mAutoHide(config.getBoolValue("autohideChat")),
@@ -291,9 +292,11 @@ ChatWindow::ChatWindow():
initTradeFilter();
loadCustomList();
parseHighlights();
+ parseGlobalsFilter();
config.addListener("autohideChat", this);
config.addListener("showBattleEvents", this);
+ config.addListener("globalsFilter", this);
enableVisibleSound(true);
}
@@ -1683,6 +1686,18 @@ void ChatWindow::parseHighlights()
mHighlights.push_back(player_node->getName());
}
+void ChatWindow::parseGlobalsFilter()
+{
+ mGlobalsFilter.clear();
+ if (!player_node)
+ return;
+
+ splitToStringVector(mGlobalsFilter, config.getStringValue(
+ "globalsFilter"), ',');
+
+ mHighlights.push_back(player_node->getName());
+}
+
bool ChatWindow::findHighlight(const std::string &str)
{
return findI(str, mHighlights) != std::string::npos;
@@ -1708,6 +1723,8 @@ void ChatWindow::optionChanged(const std::string &name)
mAutoHide = config.getBoolValue("autohideChat");
else if (name == "showBattleEvents")
mShowBattleEvents = config.getBoolValue("showBattleEvents");
+ else if (name == "globalsFilter")
+ parseGlobalsFilter();
}
void ChatWindow::mouseMoved(gcn::MouseEvent &event)
@@ -1768,3 +1785,11 @@ void ChatWindow::logicChildren()
BLOCK_END("ChatWindow::logicChildren")
}
#endif
+
+void ChatWindow::addGlobalMessage(const std::string &line)
+{
+ if (debugChatTab && findI(line, mGlobalsFilter) != std::string::npos)
+ debugChatTab->chatLog(line, BY_OTHER);
+ else
+ localChatTab->chatLog(line, BY_GM);
+}