From 182fe0545897aae420dddf92efc17784be622ebf Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 26 Jul 2016 22:58:31 +0300 Subject: Try update attributes/stats in stat pages in any changes. --- src/gui/widgets/statspage.cpp | 10 ++++++++++ src/gui/widgets/statspage.h | 6 ++++++ src/gui/widgets/statspagebasic.cpp | 7 +++++-- 3 files changed, 21 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/gui/widgets/statspage.cpp b/src/gui/widgets/statspage.cpp index 1f30f2862..9b45ce227 100644 --- a/src/gui/widgets/statspage.cpp +++ b/src/gui/widgets/statspage.cpp @@ -41,6 +41,7 @@ StatsPage::StatsPage(const Widget2 *const widget, const std::string &page) : Container(widget), WidgetListener(), + AttributeListener(), StatListener(), mAttrs(), mAttrCont(new VertContainer(this, 32)), @@ -68,6 +69,15 @@ void StatsPage::widgetResized(const Event &event A_UNUSED) mAttrScroll->setSize(getWidth(), getHeight()); } +void StatsPage::attributeChanged(const AttributesT id, + const int oldVal A_UNUSED, + const int newVal A_UNUSED) +{ + const Attrs::const_iterator it = mAttrs.find(id); + if (it != mAttrs.end() && it->second) + it->second->update(); +} + void StatsPage::statChanged(const AttributesT id, const int oldVal1 A_UNUSED, const int oldVal2 A_UNUSED) diff --git a/src/gui/widgets/statspage.h b/src/gui/widgets/statspage.h index b9ab37df5..5723b7d3d 100644 --- a/src/gui/widgets/statspage.h +++ b/src/gui/widgets/statspage.h @@ -23,6 +23,7 @@ #include "gui/widgets/attrs/attrdisplay.h" +#include "listeners/attributelistener.h" #include "listeners/statlistener.h" #include "localconsts.h" @@ -32,6 +33,7 @@ class VertContainer; class StatsPage final : public Container, public WidgetListener, + public AttributeListener, public StatListener { public: @@ -42,6 +44,10 @@ class StatsPage final : public Container, void widgetResized(const Event &event) override final; + void attributeChanged(const AttributesT id, + const int oldVal, + const int newVal) override final; + void statChanged(const AttributesT id, const int oldVal1, const int oldVal2) override final; diff --git a/src/gui/widgets/statspagebasic.cpp b/src/gui/widgets/statspagebasic.cpp index 04252abf5..5732afd29 100644 --- a/src/gui/widgets/statspagebasic.cpp +++ b/src/gui/widgets/statspagebasic.cpp @@ -105,7 +105,7 @@ void StatsPageBasic::attributeChanged(const AttributesT id, if (it->second) it->second->update(); } - break; + return; case Attributes::PLAYER_CORR_POINTS: // Update all attributes @@ -115,12 +115,15 @@ void StatsPageBasic::attributeChanged(const AttributesT id, if (it->second) it->second->update(); } - break; + return; default: break; } PRAGMA45(GCC diagnostic pop) + const Attrs::const_iterator it = mAttrs.find(id); + if (it != mAttrs.end() && it->second) + it->second->update(); } void StatsPageBasic::setPointsNeeded(const AttributesT id, -- cgit v1.2.3-70-g09d2