summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-07-27 02:38:38 +0300
committerAndrei Karas <akaras@inbox.ru>2016-07-27 02:38:38 +0300
commitde43e2592dfce797245e63e865a0f8e8567b4ac7 (patch)
tree4d7fdbf2095767a47a085667e3438f2edd6cabef /src/gui
parent0419f9b7ea98b9de36b6af97fccd964d3cda4750 (diff)
downloadmv-de43e2592dfce797245e63e865a0f8e8567b4ac7.tar.gz
mv-de43e2592dfce797245e63e865a0f8e8567b4ac7.tar.bz2
mv-de43e2592dfce797245e63e865a0f8e8567b4ac7.tar.xz
mv-de43e2592dfce797245e63e865a0f8e8567b4ac7.zip
Remove all pages after status window deleted.
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/windows/statuswindow.cpp13
-rw-r--r--src/gui/windows/statuswindow.h5
2 files changed, 17 insertions, 1 deletions
diff --git a/src/gui/windows/statuswindow.cpp b/src/gui/windows/statuswindow.cpp
index 57ca97206..6106372bf 100644
--- a/src/gui/windows/statuswindow.cpp
+++ b/src/gui/windows/statuswindow.cpp
@@ -52,6 +52,8 @@
#include "resources/item/item.h"
+#include "utils/delete2.h"
+#include "utils/dtor.h"
#include "utils/gettext.h"
#include "debug.h"
@@ -64,6 +66,7 @@ StatusWindow::StatusWindow() :
ActionListener(),
AttributeListener(),
StatListener(),
+ mPages(),
mTabs(CREATEWIDGETR(TabbedArea, this)),
// TRANSLATORS: status window label
mLvlLabel(new Label(this, strprintf(_("Level: %d"), 0))),
@@ -211,6 +214,12 @@ StatusWindow::StatusWindow() :
addTabs();
}
+StatusWindow::~StatusWindow()
+{
+ delete2(mBasicStatsPage);
+ delete_all(mPages);
+}
+
void StatusWindow::addTabs()
{
// TRANSLATORS: status window tab name
@@ -225,8 +234,10 @@ void StatusWindow::addTabs()
void StatusWindow::addTab(const std::string &name)
{
+ StatsPage *const page = new StatsPage(this, name);
mTabs->addTab(name,
- new StatsPage(this, name));
+ page);
+ mPages.push_back(page);
}
void StatusWindow::addTabBasic(const std::string &name)
diff --git a/src/gui/windows/statuswindow.h b/src/gui/windows/statuswindow.h
index 2bb457acf..ecb7c604a 100644
--- a/src/gui/windows/statuswindow.h
+++ b/src/gui/windows/statuswindow.h
@@ -34,6 +34,7 @@ class Button;
class Label;
class ProgressBar;
class ScrollArea;
+class StatsPage;
class StatsPageBasic;
class TabbedArea;
class VertContainer;
@@ -56,6 +57,8 @@ class StatusWindow final : public Window,
A_DELETE_COPY(StatusWindow)
+ ~StatusWindow();
+
void setPointsNeeded(const AttributesT id,
const int needed);
@@ -100,6 +103,8 @@ class StatusWindow final : public Window,
static std::string translateLetter(const char *const letters);
static std::string translateLetter2(const std::string &letters);
+ std::vector<StatsPage*> mPages;
+
TabbedArea *mTabs A_NONNULLPOINTER;
Label *mLvlLabel A_NONNULLPOINTER;
Label *mMoneyLabel A_NONNULLPOINTER;