From 4642291e19a5a98d07c067baddf1b5fafbab943a Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 12 Oct 2014 22:14:50 +0300 Subject: Fix popup menu for channel chat tab. --- src/gui/windows/chatwindow.cpp | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'src/gui/windows/chatwindow.cpp') diff --git a/src/gui/windows/chatwindow.cpp b/src/gui/windows/chatwindow.cpp index 3a59279cc..357c76911 100644 --- a/src/gui/windows/chatwindow.cpp +++ b/src/gui/windows/chatwindow.cpp @@ -64,6 +64,8 @@ #include "gui/widgets/tabs/chat/tradetab.h" #include "gui/widgets/tabs/chat/whispertab.h" +#include "input/inputmanager.h" + #include "render/opengldebug.h" #include "net/chathandler.h" @@ -378,15 +380,13 @@ void ChatWindow::closeTab() const if (!mChatTabs) return; - Tab *const tab = mChatTabs->getTabByIndex( - mChatTabs->getSelectedTabIndex()); + ChatTab *const tab = dynamic_cast(mChatTabs->getTabByIndex( + mChatTabs->getSelectedTabIndex())); if (!tab) return; - WhisperTab *const whisper = dynamic_cast(tab); - if (!whisper) - return; - - whisper->handleCommand("close", ""); + const ChatTabType::Type &type = tab->getType(); + if (type == ChatTabType::WHISPER || type == ChatTabType::CHANNEL) + tab->handleCommand("close", ""); } void ChatWindow::defaultTab() @@ -546,6 +546,13 @@ void ChatWindow::removeWhisper(const std::string &nick) mWhispers.erase(tempNick); } +void ChatWindow::removeChannel(const std::string &name) +{ + std::string tempName = name; + toLower(tempName); + mChannels.erase(tempName); +} + void ChatWindow::removeAllWhispers() { std::list tabs; @@ -681,16 +688,16 @@ void ChatWindow::mousePressed(MouseEvent &event) if (tab) { event.consume(); + ChatTab *const cTab = dynamic_cast(tab); if (inputManager.isActionActive(static_cast( InputAction::CHAT_MOD))) { - ChatTab *const wTab = dynamic_cast(tab); - if (wTab) - wTab->handleCommand("close", ""); + inputManager.executeChatCommand( + InputAction::CLOSE_CHAT_TAB, + std::string(), cTab); } else { - ChatTab *const cTab = dynamic_cast(tab); if (cTab) { popupMenu->showChatPopup(viewport->mMouseX, -- cgit v1.2.3-60-g2f50