diff options
Diffstat (limited to 'src/gui/widgets/chattab.cpp')
-rw-r--r-- | src/gui/widgets/chattab.cpp | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/gui/widgets/chattab.cpp b/src/gui/widgets/chattab.cpp index 5f97cd613..fa61f0dcd 100644 --- a/src/gui/widgets/chattab.cpp +++ b/src/gui/widgets/chattab.cpp @@ -30,6 +30,8 @@ #include "logger.h" #include "sound.h" +#include "gui/helpwindow.h" + #include "gui/widgets/browserbox.h" #include "gui/widgets/scrollarea.h" #include "gui/widgets/itemlinkhandler.h" @@ -379,11 +381,18 @@ void ChatTab::chatInput(const std::string &message) if (commandHandler) commandHandler->replaceVars(msg); - // Prepare ordinary message - if (msg[0] != '/') - handleInput(msg); - else - handleCommand(std::string(msg, 1)); + switch (msg[0]) + { + case '/': + handleCommand(std::string(msg, 1)); + break; + case '?': + handleHelp(std::string(msg, 1)); + break; + default: + handleInput(msg); + break; + } } void ChatTab::scroll(int amount) @@ -414,6 +423,12 @@ void ChatTab::handleCommand(const std::string &msg) commandHandler->handleCommands(msg, this); } +void ChatTab::handleHelp(const std::string &msg) +{ + if (commandHandler) + helpWindow->search(msg); +} + bool ChatTab::handleCommands(const std::string &type, const std::string &args) { // need split to commands and call each |