diff options
author | Andrei Karas <akaras@inbox.ru> | 2011-03-26 20:04:40 +0200 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2011-03-26 20:04:40 +0200 |
commit | adfacb195ba653b63fec08200d0535604d45e20e (patch) | |
tree | 0222d33fd3e26b9e87cda7fa00119ac44acc94d4 | |
parent | d1be68b99867261dc9298f3441acc09028897d6f (diff) | |
download | manaplus-adfacb195ba653b63fec08200d0535604d45e20e.tar.gz manaplus-adfacb195ba653b63fec08200d0535604d45e20e.tar.bz2 manaplus-adfacb195ba653b63fec08200d0535604d45e20e.tar.xz manaplus-adfacb195ba653b63fec08200d0535604d45e20e.zip |
Add option to chat context menu to remove nicks.
Usefull for example for tmw guild bot.
-rw-r--r-- | src/gui/chat.cpp | 23 | ||||
-rw-r--r-- | src/gui/popupmenu.cpp | 21 | ||||
-rw-r--r-- | src/gui/widgets/chattab.cpp | 3 | ||||
-rw-r--r-- | src/gui/widgets/chattab.h | 7 |
4 files changed, 50 insertions, 4 deletions
diff --git a/src/gui/chat.cpp b/src/gui/chat.cpp index 8923b40f4..a72d562c2 100644 --- a/src/gui/chat.cpp +++ b/src/gui/chat.cpp @@ -904,7 +904,28 @@ void ChatWindow::whisper(const std::string &nick, } else { - tab->chatLog(nick, mes); + if (tab->getRemoveNames()) + { + std::string msg = mes; + std::string nick2; + int idx = mes.find(":"); + if (idx > 0) + { + nick2 = msg.substr(0, idx); + msg = msg.substr(idx + 1); + trim(nick2); + trim(msg); + tab->chatLog(nick2, msg); + } + else + { + tab->chatLog(nick, mes); + } + } + else + { + tab->chatLog(nick, mes); + } player_node->afkRespond(tab, nick); } } diff --git a/src/gui/popupmenu.cpp b/src/gui/popupmenu.cpp index 1850fbb68..1cca9daa6 100644 --- a/src/gui/popupmenu.cpp +++ b/src/gui/popupmenu.cpp @@ -476,14 +476,23 @@ void PopupMenu::showChatPopup(int x, int y, ChatTab *tab) { mBrowserBox->addRow(strprintf("@@disable highlight|%s@@", _("Disable highlight"))); - mBrowserBox->addRow("##3---"); } else { mBrowserBox->addRow(strprintf("@@enable highlight|%s@@", _("Enable highlight"))); - mBrowserBox->addRow("##3---"); } + if (tab->getRemoveNames()) + { + mBrowserBox->addRow(strprintf("@@dont remove name|%s@@", + _("Dont remove name"))); + } + else + { + mBrowserBox->addRow(strprintf("@@remove name|%s@@", + _("Remove name"))); + } + mBrowserBox->addRow("##3---"); if (tab->getType() == ChatTab::TAB_PARTY) { @@ -1084,6 +1093,14 @@ void PopupMenu::handleLink(const std::string &link, { mTab->setAllowHighlight(false); } + else if (link == "dont remove name" && mTab) + { + mTab->setRemoveNames(false); + } + else if (link == "remove name" && mTab) + { + mTab->setRemoveNames(true); + } else if (link == "guild-pos" && !mNick.empty()) { showChangePos(getX(), getY()); diff --git a/src/gui/widgets/chattab.cpp b/src/gui/widgets/chattab.cpp index 9675eb621..40bde104e 100644 --- a/src/gui/widgets/chattab.cpp +++ b/src/gui/widgets/chattab.cpp @@ -50,7 +50,8 @@ ChatTab::ChatTab(const std::string &name) : Tab(), - mAllowHightlight(true) + mAllowHightlight(true), + mRemoveNames(false) { setCaption(name); diff --git a/src/gui/widgets/chattab.h b/src/gui/widgets/chattab.h index 52c122e65..998ad2e3d 100644 --- a/src/gui/widgets/chattab.h +++ b/src/gui/widgets/chattab.h @@ -147,6 +147,12 @@ class ChatTab : public Tab void setAllowHighlight(bool n) { mAllowHightlight = n; } + bool getRemoveNames() + { return mRemoveNames; } + + void setRemoveNames(bool n) + { mRemoveNames = n; } + protected: friend class ChatWindow; friend class WhisperWindow; @@ -166,6 +172,7 @@ class ChatTab : public Tab ScrollArea *mScrollArea; BrowserBox *mTextOutput; bool mAllowHightlight; + bool mRemoveNames; }; extern ChatTab *localChatTab; |