diff --git a/src/gui/scan_setup.cpp b/src/gui/scan_setup.cpp index 5367c2111..9cfc0ede6 100644 --- a/src/gui/scan_setup.cpp +++ b/src/gui/scan_setup.cpp @@ -694,11 +694,12 @@ int CScanSetup::showFrontendSetup(int number) if (fe->getInfo()->type == FE_QPSK) { /* disable all but mode option for linked frontends */ - bool allow_moptions = !CFrontend::linked(femode); + bool allow_moptions = !CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED; if (fecount > 1) { /* link to master select */ linkfe = new CMenuOptionChooser(LOCALE_SATSETUP_FE_MODE_MASTER, &femaster, feselect, select_count, !allow_moptions, this, CRCInput::RC_green, NEUTRINO_ICON_BUTTON_GREEN, true); + linkfe->setHint("", LOCALE_MENU_HINT_SCAN_FELINK); setupMenu->addItem(linkfe); } /* diseqc type select */ @@ -713,6 +714,13 @@ int CScanSetup::showFrontendSetup(int number) ojDiseqcRepeats->setHint("", LOCALE_MENU_HINT_SCAN_DISEQCREPEAT); setupMenu->addItem(ojDiseqcRepeats); + /* diseqc cmd order select */ + dorder = new CMenuOptionChooser(LOCALE_SATSETUP_DISEQC_ORDER, (int *)&fe_config.diseqc_order, DISEQC_ORDER_OPTIONS, DISEQC_ORDER_OPTION_COUNT, + allow_moptions && (dmode == DISEQC_ADVANCED), + this, CRCInput::convertDigitToKey(shortcut++), "", true); + dorder->setHint("", LOCALE_MENU_HINT_SCAN_DISEQCORDER); + setupMenu->addItem(dorder); + CMenuWidget * satToSelect = new CMenuWidget(LOCALE_SATSETUP_SELECT_SAT, NEUTRINO_ICON_SETTINGS, width); satToSelect->addIntroItems(); @@ -1378,7 +1386,8 @@ bool CScanSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data* #endif uniSetup->setActive(dmode == DISEQC_UNICABLE); bool enable = (dmode < DISEQC_ADVANCED) && (dmode != NO_DISEQC); - ojDiseqcRepeats->setActive(enable); + ojDiseqcRepeats->setActive(enable && !CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED); + dorder->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED && dmode == DISEQC_ADVANCED); } else if(ARE_LOCALES_EQUAL(OptionName, LOCALE_SATSETUP_FE_MODE)) { @@ -1404,12 +1413,14 @@ bool CScanSetup::changeNotify(const neutrino_locale_t OptionName, void * /*data* if (fe && fe->getType() == FE_QPSK) { if (linkfe) linkfe->setActive(CFrontend::linked(femode)); + /* leave diseqc type enabled for TWIN in case user need different unicable setup */ dtype->setActive(femode != CFrontend::FE_MODE_UNUSED && femode != CFrontend::FE_MODE_LINK_LOOP); uniSetup->setActive(dmode == DISEQC_UNICABLE && femode != CFrontend::FE_MODE_UNUSED && femode != CFrontend::FE_MODE_LINK_LOOP); + dorder->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED && dmode == DISEQC_ADVANCED); fsatSelect->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED); fsatSetup->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED); bool enable = (dmode < DISEQC_ADVANCED) && (dmode != NO_DISEQC); - ojDiseqcRepeats->setActive(!CFrontend::linked(femode) && enable); + ojDiseqcRepeats->setActive(!CFrontend::linked(femode) && femode != CFrontend::FE_MODE_UNUSED && enable); /* if mode changed, set current master too */ if (femaster >= 0)