diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-01-15 01:30:24 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-01-15 01:30:24 +0300 |
commit | 1c9df7b5139f80a85333f9ab88a9500381be1690 (patch) | |
tree | 91254686697a56a76889c672863ebaadecc2605f | |
parent | c3b87f283a5a99ed8bac513c516bc5a184406391 (diff) | |
download | manaplus-1c9df7b5139f80a85333f9ab88a9500381be1690.tar.gz manaplus-1c9df7b5139f80a85333f9ab88a9500381be1690.tar.bz2 manaplus-1c9df7b5139f80a85333f9ab88a9500381be1690.tar.xz manaplus-1c9df7b5139f80a85333f9ab88a9500381be1690.zip |
Fix unloading mods setting tab if change character or network error.
-rw-r--r-- | src/gui/windows/setup.cpp | 18 | ||||
-rw-r--r-- | src/gui/windows/setup.h | 2 |
2 files changed, 14 insertions, 6 deletions
diff --git a/src/gui/windows/setup.cpp b/src/gui/windows/setup.cpp index 5ba27f23c..d0ecc2d6d 100644 --- a/src/gui/windows/setup.cpp +++ b/src/gui/windows/setup.cpp @@ -203,6 +203,7 @@ void Setup::setInGame(const bool inGame) void Setup::externalUpdate() { + unloadModTab(); mModsTab = new Setup_Mods(this); mTabs.push_back(mModsTab); mPanel->addTab(mModsTab->getName(), mModsTab); @@ -213,13 +214,8 @@ void Setup::externalUpdate() } } -void Setup::externalUnload() +void Setup::unloadModTab() { - FOR_EACH (std::list<SetupTab*>::const_iterator, it, mTabs) - { - if (*it) - (*it)->externalUnloaded(); - } if (mModsTab) { mTabs.remove(mModsTab); @@ -230,6 +226,16 @@ void Setup::externalUnload() } } +void Setup::externalUnload() +{ + FOR_EACH (std::list<SetupTab*>::const_iterator, it, mTabs) + { + if (*it) + (*it)->externalUnloaded(); + } + unloadModTab(); +} + void Setup::registerWindowForReset(Window *const window) { mWindowsToReset.push_back(window); diff --git a/src/gui/windows/setup.h b/src/gui/windows/setup.h index 9039f4e87..4c9ab2fb7 100644 --- a/src/gui/windows/setup.h +++ b/src/gui/windows/setup.h @@ -73,6 +73,8 @@ class Setup final : public Window, public gcn::ActionListener void widgetResized(const gcn::Event &event) override final; private: + void unloadModTab(); + std::list<SetupTab*> mTabs; SetupTab *mModsTab; std::list<Window*> mWindowsToReset; |