gui/scan_setup.cpp: fix crash, when changing diseqc type after sat lnb configure -

comment unneeded CGenericMenuActivate items, lnb setup menu is dynamic


Origin commit data
------------------
Branch: ni/coolstream
Commit: c19de32b6a
Author: [CST] Focus <focus.cst@gmail.com>
Date: 2012-05-24 (Thu, 24 May 2012)



------------------
This commit was generated by Migit
This commit is contained in:
[CST] Focus
2012-05-24 13:27:11 +04:00
parent cba57021df
commit 822c232e2a
2 changed files with 22 additions and 8 deletions

View File

@@ -469,9 +469,11 @@ int CScanSetup::showFrontendSetup(int number)
fenumber = number; fenumber = number;
#if 0
itemsForAnyDiseqc.Clear();
itemsForAdvancedDiseqc.Clear(); itemsForAdvancedDiseqc.Clear();
itemsForNonAdvancedDiseqc.Clear(); itemsForNonAdvancedDiseqc.Clear();
itemsForAnyDiseqc.Clear(); #endif
CFrontend * fe = CFEManager::getInstance()->getFE(number); CFrontend * fe = CFEManager::getInstance()->getFE(number);
frontend_config_t & fe_config = fe->getConfig(); frontend_config_t & fe_config = fe->getConfig();
@@ -485,9 +487,9 @@ int CScanSetup::showFrontendSetup(int number)
setupMenu->addIntroItems(); setupMenu->addIntroItems();
CMenuOptionChooser * ojDiseqc = new CMenuOptionChooser(LOCALE_SATSETUP_DISEQC, (int *)&dmode, SATSETUP_DISEQC_OPTIONS, SATSETUP_DISEQC_OPTION_COUNT, allow_start, this, CRCInput::convertDigitToKey(shortcut++), "", true); CMenuOptionChooser * ojDiseqc = new CMenuOptionChooser(LOCALE_SATSETUP_DISEQC, (int *)&dmode, SATSETUP_DISEQC_OPTIONS, SATSETUP_DISEQC_OPTION_COUNT, allow_start, this, CRCInput::convertDigitToKey(shortcut++), "", true);
CMenuOptionNumberChooser * ojDiseqcRepeats = new CMenuOptionNumberChooser(LOCALE_SATSETUP_DISEQCREPEAT, (int *)&fe_config.diseqcRepeats, (dmode != NO_DISEQC) && (dmode != DISEQC_ADVANCED), 0, 2, NULL); /*CMenuOptionNumberChooser * */ ojDiseqcRepeats = new CMenuOptionNumberChooser(LOCALE_SATSETUP_DISEQCREPEAT, (int *)&fe_config.diseqcRepeats, (dmode != NO_DISEQC) && (dmode != DISEQC_ADVANCED), 0, 2, NULL);
itemsForAnyDiseqc.Add(ojDiseqcRepeats); //itemsForAnyDiseqc.Add(ojDiseqcRepeats);
setupMenu->addItem(ojDiseqc); setupMenu->addItem(ojDiseqc);
setupMenu->addItem(ojDiseqcRepeats); setupMenu->addItem(ojDiseqcRepeats);
@@ -701,10 +703,11 @@ void CScanSetup::addScanMenuTempSat(CMenuWidget *temp_sat, sat_config_t & satcon
if(!satconfig.use_usals) if(!satconfig.use_usals)
all_usals = 0; all_usals = 0;
#if 0
itemsForAnyDiseqc.Add(diseqc); itemsForAnyDiseqc.Add(diseqc);
itemsForAdvancedDiseqc.Add(comm); itemsForAdvancedDiseqc.Add(comm);
itemsForAdvancedDiseqc.Add(uncomm); itemsForAdvancedDiseqc.Add(uncomm);
#endif
//FIXME testing motor without DISEQC_ADVANCED //FIXME testing motor without DISEQC_ADVANCED
//itemsForAdvancedDiseqc.Add(motor); //itemsForAdvancedDiseqc.Add(motor);
//itemsForAdvancedDiseqc.Add(usals); //itemsForAdvancedDiseqc.Add(usals);
@@ -917,19 +920,28 @@ bool CScanSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data*
//FIXME 2 frontends ?? //FIXME 2 frontends ??
fautoScanAll->setActive(dmode != NO_DISEQC); fautoScanAll->setActive(dmode != NO_DISEQC);
if(dmode == NO_DISEQC) { if(dmode == NO_DISEQC) {
ojDiseqcRepeats->setActive(false);
#if 0
itemsForAnyDiseqc.Activate(false);
itemsForAdvancedDiseqc.Activate(false); itemsForAdvancedDiseqc.Activate(false);
itemsForNonAdvancedDiseqc.Activate(false); itemsForNonAdvancedDiseqc.Activate(false);
itemsForAnyDiseqc.Activate(false); #endif
} }
else if(dmode < DISEQC_ADVANCED) { else if(dmode < DISEQC_ADVANCED) {
ojDiseqcRepeats->setActive(true);
#if 0
itemsForAnyDiseqc.Activate(true);
itemsForAdvancedDiseqc.Activate(false); itemsForAdvancedDiseqc.Activate(false);
itemsForNonAdvancedDiseqc.Activate(true); itemsForNonAdvancedDiseqc.Activate(true);
itemsForAnyDiseqc.Activate(true); #endif
} }
else if(dmode == DISEQC_ADVANCED) { else if(dmode == DISEQC_ADVANCED) {
ojDiseqcRepeats->setActive(true);
#if 0
itemsForAnyDiseqc.Activate(true);
itemsForAdvancedDiseqc.Activate(true); itemsForAdvancedDiseqc.Activate(true);
itemsForNonAdvancedDiseqc.Activate(false); itemsForNonAdvancedDiseqc.Activate(false);
itemsForAnyDiseqc.Activate(true); #endif
} }
CFrontend * fe = CFEManager::getInstance()->getFE(fenumber); CFrontend * fe = CFEManager::getInstance()->getFE(fenumber);
fe->setDiseqcType((diseqc_t) dmode); fe->setDiseqcType((diseqc_t) dmode);

View File

@@ -56,12 +56,14 @@ class CScanSetup : public CMenuTarget, public CChangeObserver
CMenuForwarder *fautoScanAll; CMenuForwarder *fautoScanAll;
CMenuForwarder *frontendSetup; CMenuForwarder *frontendSetup;
CMenuForwarder *fsatSetup; CMenuForwarder *fsatSetup;
CMenuOptionNumberChooser * ojDiseqcRepeats;
/* dynamic frontend items to be enabled/disabled in notify */ /* dynamic frontend items to be enabled/disabled in notify */
#if 0
CGenericMenuActivate itemsForAdvancedDiseqc; CGenericMenuActivate itemsForAdvancedDiseqc;
CGenericMenuActivate itemsForNonAdvancedDiseqc; CGenericMenuActivate itemsForNonAdvancedDiseqc;
CGenericMenuActivate itemsForAnyDiseqc; CGenericMenuActivate itemsForAnyDiseqc;
#endif
/* variables for selected frontend */ /* variables for selected frontend */
/* diseqc mode */ /* diseqc mode */
int dmode; int dmode;