From faa6c2a26deb18469066a74b2d6c76fdae5931c7 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 19 Jan 2012 18:38:02 +0300 Subject: Prevent adding double attributes to status window. --- src/gui/statuswindow.cpp | 12 +++++++++++- src/gui/statuswindow.h | 2 ++ src/gui/widgets/vertcontainer.cpp | 1 + 3 files changed, 14 insertions(+), 1 deletion(-) (limited to 'src/gui') diff --git a/src/gui/statuswindow.cpp b/src/gui/statuswindow.cpp index b3e3f38f3..20a017a41 100644 --- a/src/gui/statuswindow.cpp +++ b/src/gui/statuswindow.cpp @@ -431,10 +431,20 @@ void StatusWindow::addAttribute(int id, const std::string &name, disp = new DerDisplay(id, name); mDAttrCont->add(disp); } - mAttrs[id] = disp; } +void StatusWindow::clearAttributes() +{ + mAttrCont->clear(); + mDAttrCont->clear(); + Attrs::iterator it = mAttrs.begin(); + Attrs::iterator it_end = mAttrs.end(); + for (; it != it_end; ++ it) + delete (*it).second; + mAttrs.clear(); +} + void StatusWindow::updateHPBar(ProgressBar *bar, bool showMax) { if (!bar) diff --git a/src/gui/statuswindow.h b/src/gui/statuswindow.h index 87107694f..8e110a354 100644 --- a/src/gui/statuswindow.h +++ b/src/gui/statuswindow.h @@ -75,6 +75,8 @@ class StatusWindow : public Window, void action(const gcn::ActionEvent &event); + void clearAttributes(); + private: static std::string translateLetter(const char* letters); diff --git a/src/gui/widgets/vertcontainer.cpp b/src/gui/widgets/vertcontainer.cpp index 36daf7676..305343d1a 100644 --- a/src/gui/widgets/vertcontainer.cpp +++ b/src/gui/widgets/vertcontainer.cpp @@ -69,6 +69,7 @@ void VertContainer::clear() Container::clear(); mCount = 0; + mNextY = 0; } void VertContainer::widgetResized(const gcn::Event &event A_UNUSED) -- cgit v1.2.3-70-g09d2