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/widgets/tabs/chat/channeltab.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/gui/widgets/tabs/chat/channeltab.cpp') diff --git a/src/gui/widgets/tabs/chat/channeltab.cpp b/src/gui/widgets/tabs/chat/channeltab.cpp index f4b26f4bc..43ba86acf 100644 --- a/src/gui/widgets/tabs/chat/channeltab.cpp +++ b/src/gui/widgets/tabs/chat/channeltab.cpp @@ -25,6 +25,8 @@ #include "chatlogger.h" #include "configuration.h" +#include "gui/widgets/windowcontainer.h" + #include "gui/windows/chatwindow.h" #include "net/chathandler.h" @@ -40,6 +42,8 @@ ChannelTab::ChannelTab(const Widget2 *const widget, ChannelTab::~ChannelTab() { + if (chatWindow) + chatWindow->removeChannel(mChannelName); } void ChannelTab::handleInput(const std::string &msg) @@ -48,3 +52,23 @@ void ChannelTab::handleInput(const std::string &msg) newMsg = ChatWindow::doReplace(msg); chatHandler->privateMessage(mChannelName, newMsg); } + +bool ChannelTab::handleCommand(const std::string &restrict type, + const std::string &restrict args A_UNUSED) +{ + if (type == "close") + { + if (windowContainer) + windowContainer->scheduleDelete(this); + else + delete this; + if (chatWindow) + chatWindow->defaultTab(); + } + else + { + return false; + } + + return true; +} -- cgit v1.2.3-70-g09d2