From 0591d8477c33b7dd43bc7219d30801332c9a49e4 Mon Sep 17 00:00:00 2001 From: John Scipione Date: Wed, 26 Feb 2014 16:46:13 -0500 Subject: [PATCH] ScreenSaver: Refactor ModulesView Create controls in initializer list of constructor, delete controls in the (newly-added) destructor. Make fSettings the first private member. --- .../screensaver/ScreenSaverWindow.cpp | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/preferences/screensaver/ScreenSaverWindow.cpp b/src/preferences/screensaver/ScreenSaverWindow.cpp index a3cc3e76e1..f700cc96f2 100644 --- a/src/preferences/screensaver/ScreenSaverWindow.cpp +++ b/src/preferences/screensaver/ScreenSaverWindow.cpp @@ -132,6 +132,7 @@ class ModulesView : public BView { public: ModulesView(const char* name, ScreenSaverSettings& settings); + virtual ~ModulesView(); virtual void DetachedFromWindow(); virtual void AttachedToWindow(); @@ -153,10 +154,11 @@ private: void _OpenSaver(); private: + ScreenSaverSettings& fSettings; + BListView* fScreenSaversListView; BButton* fTestButton; - ScreenSaverSettings& fSettings; ScreenSaverRunner* fSaverRunner; BString fCurrentName; @@ -522,25 +524,22 @@ ModulesView::ModulesView(const char* name, ScreenSaverSettings& settings) : BView(name, B_WILL_DRAW), fSettings(settings), + fScreenSaversListView(new BListView("SaversListView")), + fTestButton(new BButton("TestButton", B_TRANSLATE("Test"), + new BMessage(kMsgTestSaver))), fSaverRunner(NULL), + fSettingsBox(new BBox("SettingsBox")), fSettingsView(NULL), + fPreviewView(new PreviewView("preview")), fScreenSaverTestTeam(-1) { SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); - fTestButton = new BButton("TestButton", B_TRANSLATE("Test"), - new BMessage(kMsgTestSaver)); - - fPreviewView = new PreviewView("preview"); - - fScreenSaversListView = new BListView("SaversListView", - B_SINGLE_SELECTION_LIST); fScreenSaversListView->SetSelectionMessage( new BMessage(kMsgSaverSelected)); BScrollView* saversListScrollView = new BScrollView("scroll_list", fScreenSaversListView, 0, false, true); - fSettingsBox = new BBox("SettingsBox"); fSettingsBox->SetLabel(B_TRANSLATE("Screensaver settings")); BLayoutBuilder::Group<>(this, B_HORIZONTAL) @@ -558,6 +557,14 @@ ModulesView::ModulesView(const char* name, ScreenSaverSettings& settings) } +ModulesView::~ModulesView() +{ + delete fTestButton; + delete fSettingsBox; + delete fPreviewView; +} + + void ModulesView::DetachedFromWindow() {