mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-27 23:42:51 +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;
|
allow_start = true;
|
||||||
if (CFEManager::getInstance()->haveCable())
|
if (CFEManager::getInstance()->haveCable())
|
||||||
nid = new CIntInput(LOCALE_SATSETUP_CABLE_NID, (int&) scansettings.cable_nid, 5, NONEXISTANT_LOCALE, NONEXISTANT_LOCALE);
|
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()
|
CScanSetup* CScanSetup::getInstance()
|
||||||
@@ -230,6 +232,8 @@ CScanSetup* CScanSetup::getInstance()
|
|||||||
|
|
||||||
CScanSetup::~CScanSetup()
|
CScanSetup::~CScanSetup()
|
||||||
{
|
{
|
||||||
|
delete satSelect;
|
||||||
|
delete nid;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CScanSetup::exec(CMenuTarget* parent, const std::string &actionKey)
|
int CScanSetup::exec(CMenuTarget* parent, const std::string &actionKey)
|
||||||
@@ -376,6 +380,7 @@ int CScanSetup::showScanMenu()
|
|||||||
//back
|
//back
|
||||||
settings->addIntroItems(is_wizard ? NONEXISTANT_LOCALE : LOCALE_SERVICEMENU_SCANTS);
|
settings->addIntroItems(is_wizard ? NONEXISTANT_LOCALE : LOCALE_SERVICEMENU_SCANTS);
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
#if 0
|
||||||
//save scan settings
|
//save scan settings
|
||||||
mf = new CMenuForwarder(LOCALE_MAINSETTINGS_SAVESETTINGSNOW, true, NULL, this, "save_scansettings", CRCInput::RC_red, NEUTRINO_ICON_BUTTON_RED);
|
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);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_SAVESETTINGS);
|
||||||
@@ -383,16 +388,7 @@ int CScanSetup::showScanMenu()
|
|||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
settings->addItem(GenericMenuSeparatorLine);
|
settings->addItem(GenericMenuSeparatorLine);
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
//service select mode
|
#endif
|
||||||
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);
|
|
||||||
|
|
||||||
//sat/provider selector
|
//sat/provider selector
|
||||||
#if 0
|
#if 0
|
||||||
if(CFEManager::getInstance()->haveSat() || CFEManager::getInstance()->getFrontendCount() > 1) {
|
if(CFEManager::getInstance()->haveSat() || CFEManager::getInstance()->getFrontendCount() > 1) {
|
||||||
@@ -404,9 +400,9 @@ int CScanSetup::showScanMenu()
|
|||||||
if (CFEManager::getInstance()->haveSat()) {
|
if (CFEManager::getInstance()->haveSat()) {
|
||||||
r_system = DVB_S;
|
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);
|
satSelect->setHint("", LOCALE_MENU_HINT_SCAN_SATELLITE);
|
||||||
|
|
||||||
satOnOff = new CMenuWidget(LOCALE_SATSETUP_SATELLITE, NEUTRINO_ICON_SETTINGS, width);
|
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);
|
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());
|
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);
|
CMenuWidget * autoScan = new CMenuWidget(LOCALE_SERVICEMENU_SCANTS, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_AUTO_SCAN);
|
||||||
addScanMenuAutoScan(autoScan);
|
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);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_AUTO);
|
||||||
settings->addItem(mf);
|
settings->addItem(mf);
|
||||||
|
|
||||||
//manual scan
|
//manual scan
|
||||||
CMenuWidget * manualScan = new CMenuWidget(LOCALE_SATSETUP_MANUAL_SCAN, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN);
|
CMenuWidget * manualScan = new CMenuWidget(LOCALE_SATSETUP_MANUAL_SCAN, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN);
|
||||||
addScanMenuManualScan(manualScan);
|
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);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_MANUAL);
|
||||||
settings->addItem(mf);
|
settings->addItem(mf);
|
||||||
//auto scan all
|
//auto scan all
|
||||||
CMenuWidget * autoScanAll = new CMenuWidget(LOCALE_SATSETUP_AUTO_SCAN_ALL, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_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);
|
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);
|
fautoScanAll->setHint("", LOCALE_MENU_HINT_SCAN_AUTOALL);
|
||||||
settings->addItem(fautoScanAll);
|
settings->addItem(fautoScanAll);
|
||||||
#ifdef ENABLE_FASTSCAN
|
#ifdef ENABLE_FASTSCAN
|
||||||
//fast scan
|
//fast scan
|
||||||
CMenuWidget * fastScanMenu = new CMenuWidget(LOCALE_SATSETUP_FASTSCAN_HEAD, NEUTRINO_ICON_SETTINGS, w, MN_WIDGET_ID_SCAN_FAST_SCAN);
|
CMenuWidget * fastScanMenu = new CMenuWidget(LOCALE_SATSETUP_FASTSCAN_HEAD, NEUTRINO_ICON_SETTINGS, w, MN_WIDGET_ID_SCAN_FAST_SCAN);
|
||||||
addScanMenuFastScan(fastScanMenu);
|
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);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_FAST);
|
||||||
settings->addItem(mf);
|
settings->addItem(mf);
|
||||||
#endif
|
#endif
|
||||||
@@ -470,32 +465,40 @@ int CScanSetup::showScanMenu()
|
|||||||
snprintf(autoscan, 64, g_Locale->getText(LOCALE_SATSETUP_AUTO_SCAN), s_capt_part.c_str());
|
snprintf(autoscan, 64, g_Locale->getText(LOCALE_SATSETUP_AUTO_SCAN), s_capt_part.c_str());
|
||||||
bool have_sat = CFEManager::getInstance()->haveSat();
|
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);
|
CMenuWidget * autoScan = new CMenuWidget(LOCALE_SERVICEMENU_SCANTS, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_AUTO_SCAN);
|
||||||
addScanMenuAutoScan(autoScan);
|
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);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_AUTO);
|
||||||
settings->addItem(mf);
|
settings->addItem(mf);
|
||||||
|
|
||||||
//manual scan
|
//manual scan
|
||||||
CMenuWidget * manualScan = new CMenuWidget(LOCALE_SATSETUP_MANUAL_SCAN, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN);
|
CMenuWidget * manualScan = new CMenuWidget(LOCALE_SATSETUP_MANUAL_SCAN, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_MANUAL_SCAN);
|
||||||
addScanMenuManualScan(manualScan);
|
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);
|
mf->setHint("", LOCALE_MENU_HINT_SCAN_MANUAL);
|
||||||
settings->addItem(mf);
|
settings->addItem(mf);
|
||||||
//simple cable scan
|
//simple cable scan
|
||||||
CMenuWidget * cableScan = new CMenuWidget(LOCALE_SATSETUP_CABLE, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_CABLE_SCAN);
|
CMenuWidget * cableScan = new CMenuWidget(LOCALE_SATSETUP_CABLE, NEUTRINO_ICON_SETTINGS, w/*width*/, MN_WIDGET_ID_SCAN_CABLE_SCAN);
|
||||||
addScanMenuCable(cableScan);
|
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);
|
fcableScan->setHint("", LOCALE_MENU_HINT_SCAN_CABLE_SIMPLE);
|
||||||
settings->addItem(fcableScan);
|
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, "");
|
int res = settings->exec(NULL, "");
|
||||||
|
|
||||||
//delete satSelect;
|
|
||||||
delete satOnOff;
|
delete satOnOff;
|
||||||
delete settings;
|
delete settings;
|
||||||
//delete nid;
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -599,6 +602,7 @@ int CScanSetup::showScanMenuFrontendSetup()
|
|||||||
if (live_channel_id && CNeutrinoApp::getInstance()->channelList)
|
if (live_channel_id && CNeutrinoApp::getInstance()->channelList)
|
||||||
CNeutrinoApp::getInstance()->channelList->zapTo_ChannelID(live_channel_id, true);
|
CNeutrinoApp::getInstance()->channelList->zapTo_ChannelID(live_channel_id, true);
|
||||||
}
|
}
|
||||||
|
saveScanSetup();
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -752,9 +756,11 @@ int CScanSetup::showFrontendSetup(int number)
|
|||||||
feselected = setupMenu->getSelected();
|
feselected = setupMenu->getSelected();
|
||||||
msettings.Clear();
|
msettings.Clear();
|
||||||
|
|
||||||
|
#if 0
|
||||||
/* add configured satellites to satSelect in case they changed */
|
/* add configured satellites to satSelect in case they changed */
|
||||||
if (fe->isSat())
|
if (fe->isSat())
|
||||||
fillSatSelect(satSelect);
|
fillSatSelect(satSelect);
|
||||||
|
#endif
|
||||||
|
|
||||||
delete setupMenu;
|
delete setupMenu;
|
||||||
linkfe = NULL;
|
linkfe = NULL;
|
||||||
|
Reference in New Issue
Block a user