diff --git a/data/locale/english.locale b/data/locale/english.locale index dc66aae4c..8911d3455 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -142,6 +142,7 @@ audiomenu.avsync A/V sync audiomenu.avsync_am Audio master audiomenu.auto_lang Auto select audio audiomenu.auto_subs Auto select subtitles +audiomenu.pref_languages Language preferences audiomenu.pref_lang_head Audio/EPG language preferences audiomenu.pref_lang Prefered language audiomenu.pref_subs_head Subtitle language preferences diff --git a/src/driver/pictureviewer/pictureviewer.cpp b/src/driver/pictureviewer/pictureviewer.cpp index 02be303a9..e0788d1ea 100644 --- a/src/driver/pictureviewer/pictureviewer.cpp +++ b/src/driver/pictureviewer/pictureviewer.cpp @@ -83,11 +83,12 @@ CPictureViewer::CFormathandler * CPictureViewer::fh_getsize (const char *name, i bool CPictureViewer::DecodeImage (const std::string & name, bool showBusySign, bool unscaled) { // dbout("DecodeImage {\n"); +#if 0 // quick fix for issue #245. TODO more smart fix for this problem if (name == m_NextPic_Name) { // dbout("DecodeImage }\n"); return true; } - +#endif int x, y, xs, ys, imx, imy; xs = CFrameBuffer::getInstance()->getScreenWidth(true); diff --git a/src/gui/channellist.cpp b/src/gui/channellist.cpp index 0c2ab9a78..2873f3980 100644 --- a/src/gui/channellist.cpp +++ b/src/gui/channellist.cpp @@ -546,8 +546,16 @@ int CChannelList::show() step = ((int) msg == g_settings.key_channelList_pageup) ? listmaxshow : 1; // browse or step 1 selected -= step; +#if 0 if((prev_selected-step) < 0) // because of uint selected = chanlist.size() - 1; +#endif + if((prev_selected-step) < 0) { + if(prev_selected != 0 && step != 1) + selected = 0; + else + selected = chanlist.size() - 1; + } paintItem(prev_selected - liststart); unsigned int oldliststart = liststart; @@ -569,13 +577,22 @@ int CChannelList::show() step = ((int) msg == g_settings.key_channelList_pagedown) ? listmaxshow : 1; // browse or step 1 selected += step; - +#if 0 if(selected >= chanlist.size()) { if (((chanlist.size() / listmaxshow) + 1) * listmaxshow == chanlist.size() + listmaxshow) // last page has full entries selected = 0; else selected = ((step == listmaxshow) && (selected < (((chanlist.size() / listmaxshow)+1) * listmaxshow))) ? (chanlist.size() - 1) : 0; } +#endif + if(selected >= chanlist.size()) { + if((chanlist.size() - listmaxshow -1 < prev_selected) && (prev_selected != (chanlist.size() - 1)) && (step != 1)) + selected = chanlist.size() - 1; + else if (((chanlist.size() / listmaxshow) + 1) * listmaxshow == chanlist.size() + listmaxshow) // last page has full entries + selected = 0; + else + selected = ((step == listmaxshow) && (selected < (((chanlist.size() / listmaxshow)+1) * listmaxshow))) ? (chanlist.size() - 1) : 0; + } paintItem(prev_selected - liststart); unsigned int oldliststart = liststart; diff --git a/src/neutrino_menue.cpp b/src/neutrino_menue.cpp index 5e7916e46..7f04494ab 100644 --- a/src/neutrino_menue.cpp +++ b/src/neutrino_menue.cpp @@ -1674,12 +1674,8 @@ void CNeutrinoApp::InitLanguageSettings(CMenuWidget &languageSettings) xmlFreeDoc(parser); } -// languageSettings.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_AUDIOMENU_PREF_LANG_HEAD)); + CMenuWidget * prefMenu = new CMenuWidget(LOCALE_AUDIOMENU_PREF_LANGUAGES, NEUTRINO_ICON_LANGUAGE); - //audioSettings.addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_AUDIOMENU_PREF_LANG_HEAD)); - - CMenuWidget * prefMenu = new CMenuWidget(LOCALE_AUDIOMENU_PREF_LANG, NEUTRINO_ICON_LANGUAGE); - //addMenueIntroItems(*prefMenu); prefMenu->addItem(GenericMenuSeparator); prefMenu->addItem(GenericMenuBack); prefMenu->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_AUDIOMENU_PREF_LANG_HEAD)); @@ -1699,7 +1695,7 @@ void CNeutrinoApp::InitLanguageSettings(CMenuWidget &languageSettings) prefMenu->addItem(new CMenuSeparator(CMenuSeparator::LINE | CMenuSeparator::STRING, LOCALE_AUDIOMENU_PREF_SUBS_HEAD)); prefMenu->addItem(new CMenuOptionChooser(LOCALE_AUDIOMENU_AUTO_SUBS, &g_settings.auto_subs, OPTIONS_OFF0_ON1_OPTIONS, OPTIONS_OFF0_ON1_OPTION_COUNT, true, NULL)); for(int i = 0; i < 3; i++) { - CMenuOptionStringChooser * langSelect = new CMenuOptionStringChooser(LOCALE_AUDIOMENU_PREF_SUBS, g_settings.pref_subs[i], true, NULL, CRCInput::RC_nokey, "", true); + CMenuOptionStringChooser * langSelect = new CMenuOptionStringChooser(LOCALE_AUDIOMENU_PREF_SUBS, g_settings.pref_subs[i], true, NULL, CRCInput::convertDigitToKey(i+4), "", true); std::map::const_iterator it; for(it = iso639rev.begin(); it != iso639rev.end(); it++) { langSelect->addOption(it->first.c_str()); @@ -1707,7 +1703,7 @@ void CNeutrinoApp::InitLanguageSettings(CMenuWidget &languageSettings) prefMenu->addItem(langSelect); } - languageSettings.addItem(new CMenuForwarder(LOCALE_AUDIOMENU_PREF_LANG_HEAD, true, NULL, prefMenu, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); + languageSettings.addItem(new CMenuForwarder(LOCALE_AUDIOMENU_PREF_LANGUAGES, true, NULL, prefMenu, NULL, CRCInput::RC_yellow, NEUTRINO_ICON_BUTTON_YELLOW)); langNotifier->changeNotify(NONEXISTANT_LOCALE, NULL); } diff --git a/src/system/locals.h b/src/system/locals.h index a976cb451..a0f284d5c 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -149,6 +149,7 @@ typedef enum { LOCALE_AUDIOMENU_CLOCKREC, LOCALE_AUDIOMENU_AUTO_LANG, LOCALE_AUDIOMENU_AUTO_SUBS, + LOCALE_AUDIOMENU_PREF_LANGUAGES, LOCALE_AUDIOMENU_PREF_LANG_HEAD, LOCALE_AUDIOMENU_PREF_LANG, LOCALE_AUDIOMENU_PREF_SUBS_HEAD, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index 0c70f856c..6eb2b4965 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -149,6 +149,7 @@ const char *locale_real_names[] = { "audiomenu.clockrec", "audiomenu.auto_lang", "audiomenu.auto_subs", + "audiomenu.pref_languages", "audiomenu.pref_lang_head", "audiomenu.pref_lang", "audiomenu.pref_subs_head",