Merge branch 'master' into multituner

This commit is contained in:
[CST] Focus
2012-03-26 19:49:03 +04:00
8 changed files with 27 additions and 14 deletions

View File

@@ -330,6 +330,8 @@ int CPersonalizeGui::ShowPersonalizationMenu()
delete pinChangeWidget;
delete fkeyMenu;
delete plMenu;
for(vector<CUserMenuSetup*>::iterator it = v_userMenuSetup.begin(); it != v_userMenuSetup.end(); ++it)
delete *it;
v_userMenuSetup.clear();
delete user_menu_notifier;
delete pin_setup_notifier;
@@ -374,7 +376,7 @@ void CPersonalizeGui::ShowPreverredKeySetup(CMenuWidget* p_widget)
//init usermenu items
void CPersonalizeGui::ShowUserMenu(CMenuWidget* p_widget, vector<CUserMenuSetup*> v_umenu)
void CPersonalizeGui::ShowUserMenu(CMenuWidget* p_widget, vector<CUserMenuSetup*> &v_umenu)
{
p_widget->addIntroItems(LOCALE_USERMENU_HEAD);

View File

@@ -162,7 +162,7 @@ class CPersonalizeGui : public CMenuTarget, public CChangeObserver, public CPINP
void ShowMenuOptions(const int& menu);
void ShowHelpPersonalize();
void ShowPinSetup(CMenuWidget* p_widget, CPINChangeWidget *pin_widget);
void ShowUserMenu(CMenuWidget* p_widget, std::vector<CUserMenuSetup*> v_umenu);
void ShowUserMenu(CMenuWidget* p_widget, std::vector<CUserMenuSetup*> &v_umenu);
void ShowPluginMenu(CMenuWidget* p_widget);
void ShowPreverredKeySetup(CMenuWidget* p_widget);
void SaveAndExit();

View File

@@ -57,17 +57,13 @@ CUserMenuSetup::CUserMenuSetup(neutrino_locale_t menue_title, int menue_button)
width = w_max (40, 10);
pref_name = g_settings.usermenu_text[button]; //set current button name as prefered name
ums = NULL;
mf = NULL;
}
CUserMenuSetup::~CUserMenuSetup()
{
delete ums;
if (mf != NULL)
delete mf;
}
#define USERMENU_ITEM_OPTION_COUNT SNeutrinoSettings::ITEM_MAX
const CMenuOptionChooser::keyval USERMENU_ITEM_OPTIONS[USERMENU_ITEM_OPTION_COUNT] =
{
@@ -114,15 +110,14 @@ int CUserMenuSetup::showSetup()
}else{
//if widget not clean, ensure that we have an empty widget without any item and set the last selected item
int sel = ums->getSelected();
ums->resetWidget();
ums->resetWidget(true);
ums->setSelected(sel);
}
//CUserMenuNotifier *notify = new CUserMenuNotifier();
CStringInputSMS name(LOCALE_USERMENU_NAME, &g_settings.usermenu_text[button], 11, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzäöüß/- "/*, notify*/);
if (mf == NULL)
mf = new CMenuForwarder(LOCALE_USERMENU_NAME, true, g_settings.usermenu_text[button],&name);
CMenuForwarder * mf = new CMenuForwarder(LOCALE_USERMENU_NAME, true, g_settings.usermenu_text[button],&name);
//-------------------------------------
ums->addIntroItems();

View File

@@ -72,7 +72,6 @@ const struct usermenu_props_t usermenu[USERMENU_ITEMS_COUNT] =
void checkButtonName();
CMenuWidget * ums;
CMenuForwarder *mf;
public:
CUserMenuSetup(neutrino_locale_t menue_title, int menue_button);

View File

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