From 46585d7c62a53bfaf5173aa4e67d64735af1d2ed Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 9 Jan 2014 14:16:53 +0300 Subject: add ability to notify setup pages about disconnect from server. Show mods page only if connected to server. --- src/gui/widgets/tabs/setup_mods.cpp | 6 +++++- src/gui/widgets/tabs/setup_mods.h | 2 ++ src/gui/widgets/tabs/setuptab.cpp | 4 ++++ src/gui/widgets/tabs/setuptab.h | 2 ++ src/gui/widgets/tabs/setuptabscroll.cpp | 12 ++++++++++++ src/gui/widgets/tabs/setuptabscroll.h | 2 ++ 6 files changed, 27 insertions(+), 1 deletion(-) (limited to 'src/gui/widgets/tabs') diff --git a/src/gui/widgets/tabs/setup_mods.cpp b/src/gui/widgets/tabs/setup_mods.cpp index 6857b6700..646bfdb7e 100644 --- a/src/gui/widgets/tabs/setup_mods.cpp +++ b/src/gui/widgets/tabs/setup_mods.cpp @@ -45,7 +45,6 @@ Setup_Mods::Setup_Mods(const Widget2 *const widget) : ContainerPlacer place = h.getPlacer(0, 0); place(0, 0, mScroll, 10, 10); - setDimension(gcn::Rectangle(0, 0, 550, 350)); } @@ -114,3 +113,8 @@ void Setup_Mods::saveMods() } serverConfig.setValue("mods", modsString); } + +void Setup_Mods::externalUnloaded() +{ + clear(); +} diff --git a/src/gui/widgets/tabs/setup_mods.h b/src/gui/widgets/tabs/setup_mods.h index 5c837811a..6c5c519fd 100644 --- a/src/gui/widgets/tabs/setup_mods.h +++ b/src/gui/widgets/tabs/setup_mods.h @@ -38,6 +38,8 @@ class Setup_Mods final : public SetupTabScroll void externalUpdated() override final; + void externalUnloaded() override final; + void loadMods(); void saveMods(); diff --git a/src/gui/widgets/tabs/setuptab.cpp b/src/gui/widgets/tabs/setuptab.cpp index ab015f9a2..c445e2ad7 100644 --- a/src/gui/widgets/tabs/setuptab.cpp +++ b/src/gui/widgets/tabs/setuptab.cpp @@ -37,3 +37,7 @@ SetupTab::SetupTab(const Widget2 *const widget) : void SetupTab::externalUpdated() { } + +void SetupTab::externalUnloaded() +{ +} diff --git a/src/gui/widgets/tabs/setuptab.h b/src/gui/widgets/tabs/setuptab.h index 9d1362faf..388b0a988 100644 --- a/src/gui/widgets/tabs/setuptab.h +++ b/src/gui/widgets/tabs/setuptab.h @@ -57,6 +57,8 @@ class SetupTab : public Container, virtual void externalUpdated(); + virtual void externalUnloaded(); + protected: explicit SetupTab(const Widget2 *const widget); diff --git a/src/gui/widgets/tabs/setuptabscroll.cpp b/src/gui/widgets/tabs/setuptabscroll.cpp index 81c191dd6..659ef5824 100644 --- a/src/gui/widgets/tabs/setuptabscroll.cpp +++ b/src/gui/widgets/tabs/setuptabscroll.cpp @@ -134,6 +134,18 @@ void SetupTabScroll::externalUpdated() } } +void SetupTabScroll::externalUnloaded() +{ + for (std::map::const_iterator + iter = mItems.begin(), iter_end = mItems.end(); + iter != iter_end; ++ iter) + { + SetupItem *const widget = (*iter).second; + if (widget && !widget->isMainConfig()) + widget->externalUnloaded((*iter).first); + } +} + void SetupTabScroll::widgetResized(const gcn::Event &event A_UNUSED) { mScroll->setWidth(getWidth() - 12); diff --git a/src/gui/widgets/tabs/setuptabscroll.h b/src/gui/widgets/tabs/setuptabscroll.h index 15b493d88..e3d495690 100644 --- a/src/gui/widgets/tabs/setuptabscroll.h +++ b/src/gui/widgets/tabs/setuptabscroll.h @@ -54,6 +54,8 @@ class SetupTabScroll : public SetupTab virtual void externalUpdated() override; + virtual void externalUnloaded() override; + virtual void action(const gcn::ActionEvent &event A_UNUSED) override final { } -- cgit v1.2.3-60-g2f50