gui/widget/menue.cpp: add param delete_items to CMenuWidget::resetWidget, use resetWidget in destructor

git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-beta@2161 e54a6e83-5905-42d5-8d5c-058d10e6a962
This commit is contained in:
focus
2012-03-26 14:46:42 +00:00
parent 01a520ab17
commit 384ec65631
2 changed files with 7 additions and 3 deletions

View File

@@ -380,6 +380,7 @@ void CMenuWidget::move(int xoff, int yoff)
CMenuWidget::~CMenuWidget() CMenuWidget::~CMenuWidget()
{ {
#if 0
for(unsigned int count=0;count<items.size();count++) { for(unsigned int count=0;count<items.size();count++) {
CMenuItem * item = items[count]; CMenuItem * item = items[count];
if ((item != GenericMenuSeparator) && if ((item != GenericMenuSeparator) &&
@@ -392,6 +393,8 @@ CMenuWidget::~CMenuWidget()
items.clear(); items.clear();
page_start.clear(); page_start.clear();
#endif
resetWidget(true);
} }
void CMenuWidget::addItem(CMenuItem* menuItem, const bool defaultselected) void CMenuWidget::addItem(CMenuItem* menuItem, const bool defaultselected)
@@ -411,7 +414,7 @@ void CMenuWidget::addItem(CMenuItem* menuItem, const bool defaultselected)
items.push_back(menuItem); items.push_back(menuItem);
} }
void CMenuWidget::resetWidget() void CMenuWidget::resetWidget(bool delete_items)
{ {
for(unsigned int count=0;count<items.size();count++) { for(unsigned int count=0;count<items.size();count++) {
CMenuItem * item = items[count]; CMenuItem * item = items[count];
@@ -419,7 +422,8 @@ void CMenuWidget::resetWidget()
(item != GenericMenuSeparatorLine) && (item != GenericMenuSeparatorLine) &&
(item != GenericMenuBack) && (item != GenericMenuBack) &&
(item != GenericMenuCancel)){ (item != GenericMenuCancel)){
//delete item;//FIXME: possible crash here if(delete_items)
delete item;
item = NULL; item = NULL;
} }
} }

View File

@@ -446,7 +446,7 @@ class CMenuWidget : public CMenuTarget
}; };
virtual void addIntroItems(neutrino_locale_t subhead_text = NONEXISTANT_LOCALE, neutrino_locale_t section_text = NONEXISTANT_LOCALE, int buttontype = BTN_TYPE_BACK ); virtual void addIntroItems(neutrino_locale_t subhead_text = NONEXISTANT_LOCALE, neutrino_locale_t section_text = NONEXISTANT_LOCALE, int buttontype = BTN_TYPE_BACK );
bool hasItem(); bool hasItem();
void resetWidget(); void resetWidget(bool delete_items = false);
void insertItem(const uint& item_id, CMenuItem* menuItem); void insertItem(const uint& item_id, CMenuItem* menuItem);
void removeItem(const uint& item_id); void removeItem(const uint& item_id);
int getItemId(CMenuItem* menuItem); int getItemId(CMenuItem* menuItem);