From 00345798a405d4e28f489d01a2dea6afb01a6c18 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 13 Oct 2014 01:48:00 +0300 Subject: Autojoin channels on open channel tab. --- src/gui/windows/chatwindow.cpp | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'src/gui/windows/chatwindow.cpp') diff --git a/src/gui/windows/chatwindow.cpp b/src/gui/windows/chatwindow.cpp index 357c76911..4abc70561 100644 --- a/src/gui/windows/chatwindow.cpp +++ b/src/gui/windows/chatwindow.cpp @@ -1203,12 +1203,16 @@ ChannelTab *ChatWindow::addChannelTab(const std::string &name, } ChatTab *ChatWindow::addChatTab(const std::string &name, - const bool switchTo) + const bool switchTo, + const bool join) { if (serverFeatures->haveChatChannels() && name.size() > 1 && name[0] == '#') { - return addChannelTab(name, switchTo); + ChatTab *const tab = addChannelTab(name, switchTo); + if (tab && join) + chatHandler->joinChannel(name); + return tab; } else { @@ -1216,6 +1220,17 @@ ChatTab *ChatWindow::addChatTab(const std::string &name, } } +void ChatWindow::postConnection() +{ + FOR_EACH (ChannelMap::const_iterator, iter, mChannels) + { + ChatTab *const tab = iter->second; + if (!tab) + return; + chatHandler->joinChannel(tab->getChannelName()); + } +} + #define changeColor(fun) \ { \ msg = removeColors(msg); \ @@ -1699,10 +1714,11 @@ void ChatWindow::loadState() if (nick.empty()) break; + const int flags = serverConfig.getValue( "chatWhisperFlags" + toString(num), 1); - ChatTab *const tab = addChatTab(nick, false); + ChatTab *const tab = addChatTab(nick, false, false); if (tab) { tab->setAllowHighlight(flags & 1); -- cgit v1.2.3-60-g2f50