From a5426222cb3447e92a7051cbfe7ec8777648e4ee Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 30 Jun 2017 18:37:33 +0300 Subject: Allow open chat window with debug tab before connecting to game. --- src/gui/windowmanager.cpp | 21 +++++++++++++++++++++ src/gui/windows/chatwindow.cpp | 8 +++++--- src/gui/windows/chatwindow.h | 2 +- 3 files changed, 27 insertions(+), 4 deletions(-) (limited to 'src/gui') diff --git a/src/gui/windowmanager.cpp b/src/gui/windowmanager.cpp index 3a95dd712..4c414899f 100644 --- a/src/gui/windowmanager.cpp +++ b/src/gui/windowmanager.cpp @@ -48,9 +48,14 @@ #include "gui/popups/spellpopup.h" #include "gui/popups/textboxpopup.h" +#include "gui/windows/chatwindow.h" #include "gui/windows/didyouknowwindow.h" #include "gui/windows/helpwindow.h" #include "gui/windows/setupwindow.h" + +#include "gui/widgets/tabs/chat/chattab.h" + +#include "utils/gettext.h" #endif // DYECMD #include "gui/widgets/createwidget.h" @@ -123,6 +128,19 @@ void WindowManager::createWindows() CREATEWIDGETV0(itemPopup, ItemPopup); CREATEWIDGETV0(spellPopup, SpellPopup); CREATEWIDGETV0(skillPopup, SkillPopup); + delete2(debugChatTab); + if (chatWindow) + { + chatWindow->scheduleDelete(); + chatWindow = nullptr; + } + CREATEWIDGETV(chatWindow, ChatWindow, + "DebugChat"); + // TRANSLATORS: chat tab header + debugChatTab = new ChatTab(chatWindow, _("Debug"), "", + "#Debug", ChatTabType::DEBUG); + debugChatTab->setAllowHighlight(false); + chatWindow->setVisible(Visible_false); #endif // DYECMD CREATEWIDGETV0(textPopup, TextPopup); @@ -143,6 +161,9 @@ void WindowManager::deleteWindows() delete2(userPalette); delete2(spellManager) delete2(spellShortcut) + + delete2(debugChatTab); + delete2(chatWindow); #endif // DYECMD delete2(textPopup); diff --git a/src/gui/windows/chatwindow.cpp b/src/gui/windows/chatwindow.cpp index eea0905cf..279d1c712 100644 --- a/src/gui/windows/chatwindow.cpp +++ b/src/gui/windows/chatwindow.cpp @@ -89,7 +89,7 @@ ChatWindow *chatWindow = nullptr; static const char *const ACTION_COLOR_PICKER = "color picker"; -ChatWindow::ChatWindow() : +ChatWindow::ChatWindow(const std::string &name) : // TRANSLATORS: chat window name Window(_("Chat"), Modal_false, nullptr, "chat.xml"), ActionListener(), @@ -127,7 +127,7 @@ ChatWindow::ChatWindow() : mEnableTradeFilter(config.getBoolValue("enableTradeFilter")), mTmpVisible(false) { - setWindowName("Chat"); + setWindowName(name); if (setupWindow != nullptr) setupWindow->registerWindowForReset(this); @@ -669,7 +669,9 @@ void ChatWindow::chatInput(const std::string &message) const } if (tab != nullptr) tab->chatInput(msg); - Game::instance()->setValidSpeed(); + Game *const game = Game::instance(); + if (game) + game->setValidSpeed(); } void ChatWindow::localChatInput(const std::string &msg) const diff --git a/src/gui/windows/chatwindow.h b/src/gui/windows/chatwindow.h index 3191c4072..2961af9a1 100644 --- a/src/gui/windows/chatwindow.h +++ b/src/gui/windows/chatwindow.h @@ -64,7 +64,7 @@ class ChatWindow final : public Window, /** * Constructor. */ - ChatWindow(); + ChatWindow(const std::string &name); A_DELETE_COPY(ChatWindow) -- cgit v1.2.3-70-g09d2