mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-27 15:32:52 +02:00
gui/scan_setup.cpp: fix crashes due to move tuner setup;
auto-save settings;
re-order menu options;
should fix satSelect memleak
Origin commit data
------------------
Commit: c437b8cf6a
Author: [CST] Focus <focus.cst@gmail.com>
Date: 2013-10-25 (Fri, 25 Oct 2013)
This commit is contained in:
@@ -214,6 +214,8 @@ CScanSetup::CScanSetup(bool wizard_mode)
|
||||
allow_start = true;
|
||||
if (CFEManager::getInstance()->haveCable())
|
||||
nid = new CIntInput(LOCALE_SATSETUP_CABLE_NID, (int&) scansettings.cable_nid, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE);
|
||||
if (CFEManager::getInstance()->haveSat())
|
||||
satSelect = new CMenuOptionStringChooser(LOCALE_SATSETUP_SATELLITE, scansettings.satName, true, this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true);
|
||||
}
|
||||
|
||||
CScanSetup* CScanSetup::getInstance()
|
||||
@@ -230,6 +232,8 @@ CScanSetup* CScanSetup::getInstance()
|
||||
|
||||
CScanSetup::~CScanSetup()
|
||||
{
|
||||
delete satSelect;
|
||||
delete nid;
|
||||
}
|
||||
|
||||
int CScanSetup::exec(CMenuTarget* parent, const std::string &actionKey)
|
||||
@@ -376,6 +380,7 @@ int CScanSetup::showScanMenu()
|
||||
//back
|
||||
settings->addIntroItems(is_wizard ? NONEXISTANT_LOCALE : LOCALE_SERVICEMENU_SCANTS);
|
||||
//----------------------------------------------------------------------
|
||||
#if 0
|
||||
//save scan settings
|
||||
mf = new CMenuForwarder(LOCALE_MAINSETTINGS_SAVESETTINGSNOW, true, NULL, this, "save_scansettings", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
|
||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_SAVESETTINGS);
|
||||
@@ -383,16 +388,7 @@ int CScanSetup::showScanMenu()
|
||||
//----------------------------------------------------------------------
|
||||
settings->addItem(GenericMenuSeparatorLine);
|
||||
//----------------------------------------------------------------------
|
||||
//service select mode
|
||||
mc = new CMenuOptionChooser(LOCALE_ZAPIT_SCANTYPE, (int *)&scansettings.scanType, SCANTS_ZAPIT_SCANTYPE, SCANTS_ZAPIT_SCANTYPE_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++), "", true);
|
||||
mc->setHint("", LOCALE_MENU_HINT_SCAN_SCANTYPE);
|
||||
settings->addItem(mc);
|
||||
|
||||
//bouquet generate mode
|
||||
mc = new CMenuOptionChooser(LOCALE_SCANTS_BOUQUET, (int *)&scansettings.bouquetMode, SCANTS_BOUQUET_OPTIONS, SCANTS_BOUQUET_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++), "", true);
|
||||
mc->setHint("", LOCALE_MENU_HINT_SCAN_BOUQUET);
|
||||
settings->addItem(mc);
|
||||
|
||||
#endif
|
||||
//sat/provider selector
|
||||
#if 0
|
||||
if(CFEManager::getInstance()->haveSat() || CFEManager::getInstance()->getFrontendCount() > 1) {
|
||||
@@ -404,9 +400,9 @@ int CScanSetup::showScanMenu()
|
||||
if (CFEManager::getInstance()->haveSat()) {
|
||||
r_system = DVB_S;
|
||||
|
||||
settings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SCANTS_PREVERENCES_RECEIVING_SYSTEM));
|
||||
//settings->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_SCANTS_PREVERENCES_RECEIVING_SYSTEM ));
|
||||
|
||||
satSelect = new CMenuOptionStringChooser(LOCALE_SATSETUP_SATELLITE, scansettings.satName, true, this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true);
|
||||
//satSelect = new CMenuOptionStringChooser(LOCALE_SATSETUP_SATELLITE, scansettings.satName, true, this, CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED, true);
|
||||
satSelect->setHint("", LOCALE_MENU_HINT_SCAN_SATELLITE);
|
||||
|
||||
satOnOff = new CMenuWidget(LOCALE_SATSETUP_SATELLITE, NEUTRINO_ICON_SETTINGS, width);
|
||||
@@ -419,30 +415,29 @@ int CScanSetup::showScanMenu()
|
||||
std::string s_capt_part = g_Locale->getText(LOCALE_SATSETUP_SATELLITE);
|
||||
snprintf(autoscan, 64, g_Locale->getText(LOCALE_SATSETUP_AUTO_SCAN), s_capt_part.c_str());
|
||||
|
||||
/* FIXME leak, satSelect added to both auto and manual scan, so one of them cannot be deleted */
|
||||
CMenuWidget * autoScan = new CMenuWidget(LOCALE_SERVICEMENU_SCANTS, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_AUTO_SCAN);
|
||||
addScanMenuAutoScan(autoScan);
|
||||
mf = new CMenuForwarderNonLocalized(autoscan, true, NULL, autoScan, "", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
|
||||
mf = new CMenuForwarderNonLocalized(autoscan, true, NULL, autoScan, "", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
|
||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_AUTO);
|
||||
settings->addItem(mf);
|
||||
|
||||
//manual scan
|
||||
CMenuWidget * manualScan = new CMenuWidget(LOCALE_SATSETUP_MANUAL_SCAN, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN);
|
||||
addScanMenuManualScan(manualScan);
|
||||
mf = new CMenuForwarder(LOCALE_SATSETUP_MANUAL_SCAN, true, NULL, manualScan, "", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW);
|
||||
mf = new CMenuForwarder(LOCALE_SATSETUP_MANUAL_SCAN, true, NULL, manualScan, "", CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN);
|
||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_MANUAL);
|
||||
settings->addItem(mf);
|
||||
//auto scan all
|
||||
CMenuWidget * autoScanAll = new CMenuWidget(LOCALE_SATSETUP_AUTO_SCAN_ALL, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_AUTO_SCAN_ALL);
|
||||
addScanMenuAutoScanAll(autoScanAll);
|
||||
fautoScanAll = new CMenuDForwarder(LOCALE_SATSETUP_AUTO_SCAN_ALL, true /*(dmode != NO_DISEQC)*/, NULL, autoScanAll, "", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE);
|
||||
fautoScanAll = new CMenuDForwarder(LOCALE_SATSETUP_AUTO_SCAN_ALL, true /*(dmode != NO_DISEQC)*/, NULL, autoScanAll, "", CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW);
|
||||
fautoScanAll->setHint("", LOCALE_MENU_HINT_SCAN_AUTOALL);
|
||||
settings->addItem(fautoScanAll);
|
||||
#ifdef ENABLE_FASTSCAN
|
||||
//fast scan
|
||||
CMenuWidget * fastScanMenu = new CMenuWidget(LOCALE_SATSETUP_FASTSCAN_HEAD, NEUTRINO_ICON_SETTINGS, w, MN_WIDGET_ID_SCAN_FAST_SCAN);
|
||||
addScanMenuFastScan(fastScanMenu);
|
||||
mf = new CMenuDForwarder(LOCALE_SATSETUP_FASTSCAN_HEAD, true, NULL, fastScanMenu, "", CRCInput::convertDigitToKey(shortcut++));
|
||||
mf = new CMenuDForwarder(LOCALE_SATSETUP_FASTSCAN_HEAD, true, NULL, fastScanMenu, "", CRCInput::RC_blue, NEUTRINO_ICON_BUTTON_BLUE);
|
||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_FAST);
|
||||
settings->addItem(mf);
|
||||
#endif
|
||||
@@ -470,32 +465,40 @@ int CScanSetup::showScanMenu()
|
||||
snprintf(autoscan, 64, g_Locale->getText(LOCALE_SATSETUP_AUTO_SCAN), s_capt_part.c_str());
|
||||
bool have_sat = CFEManager::getInstance()->haveSat();
|
||||
|
||||
/* FIXME leak, satSelect added to both auto and manual scan, so one of them cannot be deleted */
|
||||
CMenuWidget * autoScan = new CMenuWidget(LOCALE_SERVICEMENU_SCANTS, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_AUTO_SCAN);
|
||||
addScanMenuAutoScan(autoScan);
|
||||
mf = new CMenuForwarderNonLocalized(autoscan, true, NULL, autoScan, "", have_sat ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_green, have_sat ? NULL : NEUTRINO_ICON_BUTTON_GREEN);
|
||||
mf = new CMenuForwarderNonLocalized(autoscan, true, NULL, autoScan, "", have_sat ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_red, have_sat ? NULL : NEUTRINO_ICON_BUTTON_RED);
|
||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_AUTO);
|
||||
settings->addItem(mf);
|
||||
|
||||
//manual scan
|
||||
CMenuWidget * manualScan = new CMenuWidget(LOCALE_SATSETUP_MANUAL_SCAN, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN);
|
||||
addScanMenuManualScan(manualScan);
|
||||
mf = new CMenuForwarder(LOCALE_SATSETUP_MANUAL_SCAN, true, NULL, manualScan, "", have_sat ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_yellow, have_sat ? NULL : NEUTRINO_ICON_BUTTON_YELLOW);
|
||||
mf = new CMenuForwarder(LOCALE_SATSETUP_MANUAL_SCAN, true, NULL, manualScan, "", have_sat ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_green, have_sat ? NULL : NEUTRINO_ICON_BUTTON_GREEN);
|
||||
mf->setHint("", LOCALE_MENU_HINT_SCAN_MANUAL);
|
||||
settings->addItem(mf);
|
||||
//simple cable scan
|
||||
CMenuWidget * cableScan = new CMenuWidget(LOCALE_SATSETUP_CABLE, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_CABLE_SCAN);
|
||||
addScanMenuCable(cableScan);
|
||||
CMenuForwarder * fcableScan = new CMenuDForwarder(LOCALE_SATSETUP_CABLE, true, NULL, cableScan, "", have_sat ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_blue, have_sat ? NULL : NEUTRINO_ICON_BUTTON_BLUE);
|
||||
CMenuForwarder * fcableScan = new CMenuDForwarder(LOCALE_SATSETUP_CABLE, true, NULL, cableScan, "", have_sat ? CRCInput::convertDigitToKey(shortcut++) : CRCInput::RC_yellow, have_sat ? NULL : NEUTRINO_ICON_BUTTON_YELLOW);
|
||||
fcableScan->setHint("", LOCALE_MENU_HINT_SCAN_CABLE_SIMPLE);
|
||||
settings->addItem(fcableScan);
|
||||
}
|
||||
settings->addItem(GenericMenuSeparatorLine);
|
||||
//service select mode
|
||||
mc = new CMenuOptionChooser(LOCALE_ZAPIT_SCANTYPE, (int *)&scansettings.scanType, SCANTS_ZAPIT_SCANTYPE, SCANTS_ZAPIT_SCANTYPE_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++), "", true);
|
||||
mc->setHint("", LOCALE_MENU_HINT_SCAN_SCANTYPE);
|
||||
settings->addItem(mc);
|
||||
|
||||
//bouquet generate mode
|
||||
mc = new CMenuOptionChooser(LOCALE_SCANTS_BOUQUET, (int *)&scansettings.bouquetMode, SCANTS_BOUQUET_OPTIONS, SCANTS_BOUQUET_OPTION_COUNT, true, NULL, CRCInput::convertDigitToKey(shortcut++), "", true);
|
||||
mc->setHint("", LOCALE_MENU_HINT_SCAN_BOUQUET);
|
||||
settings->addItem(mc);
|
||||
|
||||
int res = settings->exec(NULL, "");
|
||||
|
||||
//delete satSelect;
|
||||
delete satOnOff;
|
||||
delete settings;
|
||||
//delete nid;
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -599,6 +602,7 @@ int CScanSetup::showScanMenuFrontendSetup()
|
||||
if (live_channel_id && CNeutrinoApp::getInstance()->channelList)
|
||||
CNeutrinoApp::getInstance()->channelList->zapTo_ChannelID(live_channel_id, true);
|
||||
}
|
||||
saveScanSetup();
|
||||
return res;
|
||||
}
|
||||
|
||||
@@ -752,9 +756,11 @@ int CScanSetup::showFrontendSetup(int number)
|
||||
feselected = setupMenu->getSelected();
|
||||
msettings.Clear();
|
||||
|
||||
#if 0
|
||||
/* add configured satellites to satSelect in case they changed */
|
||||
if (fe->isSat())
|
||||
fillSatSelect(satSelect);
|
||||
#endif
|
||||
|
||||
delete setupMenu;
|
||||
linkfe = NULL;
|
||||
|
Reference in New Issue
Block a user