diff --git a/data/locale/slovak.locale b/data/locale/slovak.locale index 22ca09a52..153c31359 100644 --- a/data/locale/slovak.locale +++ b/data/locale/slovak.locale @@ -461,7 +461,7 @@ extra.key_timeshift Časový posun extra.key_unlock Odblokovanie extra.ladirection Umiestnenie zem.šírky extra.latitude Zem.šírka [N/S] -extra.loadconfig Obnoviť nastavenia z... +extra.loadconfig Obnoviť nastavenia z ... extra.loadkeys Obnoviť nastavenia kláves z ... extra.lodirection Umiestnenie zem.dľžky extra.longitude Zem.dľžka [E/W] @@ -473,7 +473,7 @@ extra.rotor_swap Vymeniť východ/západ motoru extra.rounded_corners Vzhľad rohov extra.rounded_corners_off hranatý extra.rounded_corners_on zaoblený -extra.saveconfig Uložiť nastavenia do... +extra.saveconfig Uložiť nastavenia do ... extra.savekeys Uložiť nastavenia kláves do ... extra.scrambled_message Správa o kódovaní extra.show_mute_icon Ikona umlčania pri hlasitosti 0 @@ -703,7 +703,7 @@ fontmenu.eventlist Programový sprievodca fontmenu.head Nastavenie písma fontmenu.infobar Informačná lišta fontmenu.menu Menu -fontmenu.messages Messages +fontmenu.messages Správy fontmenu.moviebrowser Prehliadač filmov fontmenu.other Iné fontmenu.scaling Faktor zoomu globálneho fontu @@ -712,7 +712,6 @@ fontmenu.scaling_x_hint2 Vodorovne (v %) min 50 / max 200 fontmenu.scaling_y Zvislo (v %) fontmenu.scaling_y_hint2 Zvislo (v %) min 50 / max 200 fontmenu.sizes Veľkosti písma -fontsize.button_text Button text fontsize.channel_num_zap Priamy výber fontsize.channellist Zoznam kanálov fontsize.channellist_descr Popis @@ -738,7 +737,7 @@ fontsize.menu_foot Päta (vo všetkých grafických elementoch) fontsize.menu_hint Popis menu fontsize.menu_info Informačné menu fontsize.menu_title Titulok menu -fontsize.message_text Messagwe Text +fontsize.message_text Text správy fontsize.moviebrowser_head Hlavičky fontsize.moviebrowser_info Informačné okno fontsize.moviebrowser_list Zoznam položiek @@ -787,7 +786,7 @@ hdd_statfs_recording len pri nahrávaní hdd_umount Odpojenie hdd_umount_warn Chyba odpájania disku! hdd_umounted Zariadenie odstránené -help_box_title Help +help_box_title Pomoc imageinfo.api API: imageinfo.creator Vytvoril: imageinfo.date Dátum: @@ -1040,7 +1039,8 @@ menu.hint_epg_extendedcache Maximálny čas ukladania\npopisov doplňujúcich ud menu.hint_epg_fonts Zmena veľkosti písma okna EPG podrobností menu.hint_epg_max_events Maximálny počet uložených udalostí. Po dosiahnutí hranice\nEPG cache odstráni nasledujúce udalosti menu.hint_epg_old_events Hodiny po skončení udalosti, kedy sa označí\nako staré a odstráni sa z uložených -menu.hint_epg_read Načíta uložené EPG údaje po zavedení z externého zariadenia +menu.hint_epg_read Po reštarte načíta uložené EPG údaje z externého zariadenia +menu.hint_epg_read_frequently Načíta uložené EPG údaje v častejších intervaloch z externého zariadenia menu.hint_epg_save Uloženie EPG na disk alebo usb\pre načítanie po spustení menu.hint_epg_save_frequently Ukladanie EPG v pravidelných intervaloch na externé zariadenie menu.hint_epg_save_mode Ukladať EPG iba pre kanály uložené v obľúbených buketoch @@ -1186,7 +1186,7 @@ menu.hint_menu_fonts Zmena veľkosti písma menu menu.hint_menu_hints Zobrazí túto nápovedu. Taktiež môžno kedykoľvek zmeniť použitím tlačidla ´HELP´. menu.hint_menu_pos Výber umiestnenia menu menu.hint_menus Konfigurácia volieb ponuky -menu.hint_message_fonts Change message text font sizes +menu.hint_message_fonts Zmena veľkosti písma správy menu.hint_misc_cec HDMI-CEC voľby menu.hint_misc_channellist HD/Nové/Odstránené zoznamy kanálov, cyklické prepnutie menu.hint_misc_energy Použitie pohotovostného režimu, oneskorené vypnutie\nčasovače neaktivity @@ -1407,14 +1407,14 @@ menu.hint_selected_text Zmena farby textu označenej položky menu.hint_service Nastavenie tuneru, vyhľadanie služieb,\núprava buketov, aktualizácia software menu.hint_service_scan Automatické / manuálne vyhľadávanie staníc, FastScan, Test signálu menu.hint_settings Konfigurácia system, sieť, zvuk, obraz, OSD a iné -menu.hint_shoutcast_dev_id Vložte vaše SHOUTcast údaje. Neuvedením údajov sa vypne podpora SHOUTcast. -menu.hint_shoutcast_enabled Povoliť alebo zakázať podporu SHOUTcast +menu.hint_shoutcast_dev_id Vložte vaše SHOUTcast ID. Prázdne pole vypne podporu pre SHOUTcast. +menu.hint_shoutcast_enabled Povolí alebo zakáže podporu pre SHOUTcast. menu.hint_show_mute_icon Zobrazenie ikony umlčania, ak nastavenie hlasitosťi bude 0 -menu.hint_shutdown Vypnutie prijímača - bez potvrdzovania -menu.hint_shutdown_count Čas prepnutia prijímača z pohotovostného režimu do stavu vypnutia -menu.hint_shutdown_menu Prepne prijímač do pohotovostného režimu alebo ho vypne, nastaví časovač vypnutia -menu.hint_shutdown_rcdelay Aktivuje vypnutie prijímača, ak je tlačidlo zapnutia\nstlačené viac ako 1 sekundu -menu.hint_shutdown_real Aktivuje pohotovostný režim\nAk je zakázané, tlačidlo zapnutia vypne prístroj +menu.hint_shutdown Vypne prijímač do hlbokého spánku.\nBez potvrdzovania +menu.hint_shutdown_count Čas prepnutia prijímača z pohotovostného režimu do hlbokého spánku +menu.hint_shutdown_menu Uvedie prijímač do pohotovostného režimu alebo hlbokého spánku, nastavte časovač spánku +menu.hint_shutdown_rcdelay Povolí hlboký spánok v prípade stlačenia\ntlačidla napájania dlhšie ako 1 sekunda +menu.hint_shutdown_real Povolí pohotovostný režim\nAk je zakázané, tlačidlo napájania uvedie prijímač do hlbokého spánku menu.hint_sleeptimer Nastavenie časovača pre prechod prijímača do pohotovostného režimu menu.hint_sleeptimer_min Prednastavené nastavenia pre časovač vypnutia menu.hint_sms_channel Ak povolené, číselné klávesy v zozname kanálov budú použité pre vyhľadávanie kanálu v štýle SMS @@ -1434,7 +1434,8 @@ menu.hint_subchannel_pos Pozícia menu výberu sub-kanálov menu.hint_sw_update Aktualizácia software menu.hint_theme Výber prednastavených farebných vzhľadov\nUloženie alebo nahranie vzhľadu zo súborov menu.hint_timeouts Konfigurácia času zmiznutia GUI okien\nv sekundách -menu.hint_timeouts_static_messages Timeout for specific messages with user interaction +menu.hint_timeouts_static_messages Čas pre špecifické správy so zásahom užívateľa +menu.hint_timer_followscreenings Pre nastavenie časovača zobraziť výber s nasledujúcim vysielaním menu.hint_timers Pridanie/Odstránenie/Upravenie plánovaného\nnahrávania, pripomienky atď. menu.hint_timezone Výber časového pásma menu.hint_tmdb_api_key Vložte váš TMDb API kľúč. Neuvedením údajov sa vypne podpora TMDb @@ -1515,6 +1516,7 @@ miscsettings.epg_old_events Odstrániť neaktuálne EPG (hod.) miscsettings.epg_old_events_hint1 Ako dlho zapisovať EPG údaje po skončení? miscsettings.epg_old_events_hint2 Nastavenie v hodinách. miscsettings.epg_read Obnoviť EPG po reštarte +miscsettings.epg_read_frequently Časté obnovovanie EPG miscsettings.epg_save Uložiť EPG pred vypnutím miscsettings.epg_save_frequently Periodické ukladanie EPG miscsettings.epg_save_mode Iba obľúbené @@ -1669,6 +1671,7 @@ moviebrowser.edit_book_type_info1 Zadanie novej dĺžky skoku moviebrowser.edit_book_type_info2 <0 vzad , >0 vpred, 0: nikde moviebrowser.edit_serie Zadanie názvu série moviebrowser.error_no_movies Nenájdené filmy +moviebrowser.filter_off Filter vyp moviebrowser.foot_filter Filter: moviebrowser.foot_focus Prepnúť okno moviebrowser.foot_options Voľby @@ -1753,7 +1756,7 @@ moviebrowser.menu_truncate Skrátiť film moviebrowser.option_browser Možnosti prehliadača moviebrowser.reload_at_start Načítanie informácie o filme pri štarte moviebrowser.remount_at_start Pripojiť pri štarte -moviebrowser.scan_for_movies Hľadať filmy ... +moviebrowser.scan_for_movies Prehľadávanie nahrávok ... moviebrowser.serie_auto_create Automaticky doplniť seriály moviebrowser.serie_head Seriály moviebrowser.serie_name Zmena názvu @@ -1825,24 +1828,27 @@ movieplayer.bookmarkname_hint2 movieplayer.chapters Kapitoly movieplayer.fileplayback Prehliadač súborov movieplayer.head Prehrávač filmov +movieplayer.help_additional Ak chcete nájsť viac definovateľných kláves, vojdite do\n"Hlavné menuu" > "Nastavenia" > "Nastavenie kláves" > "Upraviť..." > "Prehrávač filmov".\n\nPočas prehrávania filmu sú niektoré položky hlavného menu deaktivované. +movieplayer.help_button_1 1 minúta späť +movieplayer.help_button_2 Skok na začiatok filmu +movieplayer.help_button_3 1 minúta vpred +movieplayer.help_button_4 3 minúty späť +movieplayer.help_button_5 Skok na stred filmu +movieplayer.help_button_6 3 minúty vpred +movieplayer.help_button_7 10 minút späť +movieplayer.help_button_8 Skok na koniec filmu +movieplayer.help_button_9 10 minút vpred +movieplayer.help_button_backward Zrýchlene späť +movieplayer.help_button_forward Zrýchlene vpred +movieplayer.help_button_menu Otvoriť hlavné menu +movieplayer.help_button_pause Pozastaviť / Pokračovať +movieplayer.help_button_stop Zastaviť movieplayer.plugin Doplnky Prhrávača filmov movieplayer.starting Spúšťa sa prehrávanie... movieplayer.titles Tituly movieplayer.toomanybookmarks Veľa záložiek.\nJe potrebné vymazať jednu najprv. -movieplayer.tshelp1 Zastavenie -movieplayer.tshelp10 asi 10 min dozadu -movieplayer.tshelp11 asi 10 min dopredu -movieplayer.tshelp12 Nápoveda: http://www.giggo.de/dbox2/movieplayer.html\n -movieplayer.tshelp2 Výbrer zvukovej stopy -movieplayer.tshelp3 Prerušenie/Pokračovanie -movieplayer.tshelp4 Vytvoriť záložku -movieplayer.tshelp5 Zobraziť čas -movieplayer.tshelp6 asi 1 min dozadu -movieplayer.tshelp7 asi 1 min dopredu -movieplayer.tshelp8 asi 5 min dozadu -movieplayer.tshelp9 asi 5 min dopredu movieplayer.tsplayback Prehrať TS -movieplayer.ytplayback YouTube prehrávač +movieplayer.ytplayback YouTube video prehrávač mpkey.audio Zvuková stopa mpkey.bookmark Uložiť záložku mpkey.forward Dopredu @@ -2386,6 +2392,7 @@ timerlist.type.zapto Prepnutie timerlist.weekdays V dňoch týždňa timerlist.weekdays.hint_1 Po Ut St Št Pi So Ne timerlist.weekdays.hint_2 'X'=plánované '-' neplánované +timersettings.followscreenings Ukázať výber vysielania timersettings.record_safety_time_after Korekcia času ukončenia nahrávania timersettings.record_safety_time_after.hint_1 Čas v min. (00=vypnuté), ktorý bude pripočítaný timersettings.record_safety_time_after.hint_2 po ukončení daného plánu @@ -2403,8 +2410,8 @@ timing.infobar_movieplayer Stavový riadok (filmový mód) timing.infobar_radio Stavový riadok (rádio mód) timing.menu Ponuka timing.numericzap Prepínanie číslami -timing.popup_messages Popup messages -timing.static_messages Interactive messages +timing.popup_messages Vyskakovacie správy +timing.static_messages Interaktívne správy timing.volumebar Ukazateľ hlasitosti tmdb.api_key TMDb API kľúč tmdb.enabled TMDb podpora @@ -2444,6 +2451,7 @@ usermenu.title_blue Možnosti usermenu.title_green Zvuk usermenu.title_red Udalosti usermenu.title_yellow Obraz +usermenus.head Užívateľské menu video_mode_ok Pracuje tento video režim správne? videomenu.43mode Zobrazenie formátu 4:3 videomenu.analog_auto AUTO diff --git a/src/driver/fontrenderer.cpp b/src/driver/fontrenderer.cpp index 7f76ff854..dac660370 100644 --- a/src/driver/fontrenderer.cpp +++ b/src/driver/fontrenderer.cpp @@ -287,10 +287,14 @@ return 0; ascender=tM; descender=tg-hg; //this is a negative value! int halflinegap= -(descender>>1); // |descender/2| - we use descender as linegap, half at top, half at bottom - upper = halflinegap+ascender+3; // we add 3 at top - lower = -descender+halflinegap+1; // we add 1 at bottom + + //hack: Use additional percentage height offset, font types could have different heights, static values seems not really senseful. + upper = halflinegap+ascender+hg/7; // we add 1/7 of glyph height at top + lower = -descender+halflinegap-hg/10; // we add 1/10 of glyph height at bottom + height=upper+lower; // this is total height == distance of lines - DigitHeight = ascender+2; + + DigitHeight = ascender+2; //Is this static value really ok? DigitOffset = -descender+halflinegap; // hack end diff --git a/src/driver/pictureviewer/png.cpp b/src/driver/pictureviewer/png.cpp index c684eecf3..83b01976b 100644 --- a/src/driver/pictureviewer/png.cpp +++ b/src/driver/pictureviewer/png.cpp @@ -35,7 +35,7 @@ int int_png_load(const char *name, unsigned char **buffer, int* xp, int* yp, int int bit_depth, color_type, interlace_type, number_passes, pass, int_bpp; png_byte * fbptr; FILE * fh; - bool updateInfo_alreadyRead = false; + bool updateInfo_alreadyRead; if(!(fh=fopen(name,"rb"))) return(FH_ERROR_FILE); @@ -64,6 +64,7 @@ int int_png_load(const char *name, unsigned char **buffer, int* xp, int* yp, int png_init_io(png_ptr,fh); png_read_info(png_ptr, info_ptr); png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, NULL, NULL); + updateInfo_alreadyRead = false; if (alpha) // 24bit or gray scale PNGs with alpha-channel { *bpp = png_get_channels(png_ptr, info_ptr); diff --git a/src/eitd/edvbstring.cpp b/src/eitd/edvbstring.cpp index 0e29d0456..cb495b1cc 100644 --- a/src/eitd/edvbstring.cpp +++ b/src/eitd/edvbstring.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include "SIutils.hpp" #include "debug.h" @@ -2105,6 +2106,7 @@ std::string convertDVBUTF8(const char *data, int len, int table, int tsidonid) //dprintf("recode:::: tsidonid %X table %d two-char %d len %d\n", tsidonid, table, twochar, len); unsigned char res[2048]; + memset(res,0,sizeof(res)); while (i < len) { unsigned long code=0; @@ -2267,6 +2269,7 @@ const std::string convertLatin1UTF8(const std::string &string) unsigned int t=0, i=0, len=string.size(); unsigned char res[2048]; + memset(res,0,sizeof(res)); while (i < len) { diff --git a/src/gui/bedit/bouqueteditor_bouquets.cpp b/src/gui/bedit/bouqueteditor_bouquets.cpp index 9c7017a46..5e2e348c8 100644 --- a/src/gui/bedit/bouqueteditor_bouquets.cpp +++ b/src/gui/bedit/bouqueteditor_bouquets.cpp @@ -157,7 +157,7 @@ const struct button_label CBEBouquetWidgetButtons[6] = void CBEBouquetWidget::paintFoot() { size_t numbuttons = sizeof(CBEBouquetWidgetButtons)/sizeof(CBEBouquetWidgetButtons[0]); - footer.paintButtons(x, y+height, width, ButtonHeight, numbuttons, CBEBouquetWidgetButtons, width/numbuttons-20); + footer.paintButtons(x, y+height, width, ButtonHeight, numbuttons, CBEBouquetWidgetButtons, width/numbuttons-2*OFFSET_INNER_MID, 0, g_Font[SNeutrinoSettings::FONT_TYPE_MENU_FOOT]); } void CBEBouquetWidget::hide() diff --git a/src/gui/bedit/bouqueteditor_channels.cpp b/src/gui/bedit/bouqueteditor_channels.cpp index 03f3776d8..8fea35409 100644 --- a/src/gui/bedit/bouqueteditor_channels.cpp +++ b/src/gui/bedit/bouqueteditor_channels.cpp @@ -194,7 +194,7 @@ const struct button_label CBEChannelWidgetButtons[6] = void CBEChannelWidget::paintFoot() { size_t numbuttons = sizeof(CBEChannelWidgetButtons)/sizeof(CBEChannelWidgetButtons[0]); - footer.paintButtons(x, y + (height-footerHeight), width, footerHeight, numbuttons, CBEChannelWidgetButtons, width/numbuttons-20); + footer.paintButtons(x, y + (height-footerHeight), width, footerHeight, numbuttons, CBEChannelWidgetButtons, width/numbuttons-2*OFFSET_INNER_MID, 0, g_Font[SNeutrinoSettings::FONT_TYPE_MENU_FOOT]); } std::string CBEChannelWidget::getInfoText(int index) diff --git a/src/gui/components/cc_frm_button.cpp b/src/gui/components/cc_frm_button.cpp index 18b3d31ea..3ec7ce20b 100644 --- a/src/gui/components/cc_frm_button.cpp +++ b/src/gui/components/cc_frm_button.cpp @@ -120,7 +120,7 @@ void CComponentsButton::initVarButton( const int& x_pos, const int& y_pos, const cc_btn_icon_obj = NULL; cc_btn_text_obj = NULL; cc_btn_dy_font = CNeutrinoFonts::getInstance(); - cc_btn_font = g_Font[SNeutrinoSettings::FONT_TYPE_BUTTON_TEXT]; + cc_btn_font = NULL; cc_btn_icon = icon_name; cc_btn_text = caption; cc_directKey = CRCInput::RC_nokey; @@ -188,6 +188,7 @@ void CComponentsButton::initCaption() //set basic properties int w_frame = fr_thickness; + int reduce = 2*w_frame; if (cc_btn_text_obj){ //position and size int x_cap = w_frame; @@ -197,8 +198,8 @@ void CComponentsButton::initCaption() if (cc_btn_font == NULL) cc_btn_font = g_Font[SNeutrinoSettings::FONT_TYPE_BUTTON_TEXT]; - int w_cap = width - w_frame - append_x_offset - x_cap - w_frame; - int h_cap = min(height - 2*w_frame, cc_btn_font->getHeight()); + int w_cap = min(width - append_x_offset - x_cap - reduce, cc_btn_font->getRenderWidth(cc_btn_text)); + int h_cap = min(height - reduce, cc_btn_font->getHeight()); /*NOTE: paint of centered text in y direction without y_offset looks unlovely displaced in y direction especially besides small icons and inside small areas, @@ -210,13 +211,17 @@ void CComponentsButton::initCaption() cc_btn_text_obj->setDimensionsAll(x_cap, y_cap, w_cap, h_cap); //text and font - Font* def_font = *cc_btn_dy_font->getDynFont(w_cap, h_cap, cc_btn_text); /* If button dimension too small, use dynamic font, this ignores possible defined font * Otherwise definied font will be used. Button dimensions are calculated from parent container (e.g. footer...). * These dimensions must be enough to display complete content like possible icon and without truncated text. */ - if ((cc_btn_font->getHeight()- 2*w_frame) > h_cap && (cc_btn_font->getRenderWidth(cc_btn_text)- 2*w_frame) > w_cap) - cc_btn_font = def_font; + Font *tmp_font = cc_btn_font; + if ((tmp_font->getHeight()-reduce) > (height-reduce) && (tmp_font->getRenderWidth(cc_btn_text)-reduce) > width-reduce) + tmp_font = *cc_btn_dy_font->getDynFont(w_cap, h_cap, cc_btn_text); + if ((cc_btn_font->getHeight()-reduce) > (height-reduce)) + tmp_font = *cc_btn_dy_font->getDynFont(w_cap, h_cap, cc_btn_text); + + cc_btn_font = tmp_font; cc_btn_text_obj->setText(cc_btn_text, CTextBox::NO_AUTO_LINEBREAK, cc_btn_font); cc_btn_text_obj->forceTextPaint(); //here required; diff --git a/src/gui/components/cc_frm_footer.cpp b/src/gui/components/cc_frm_footer.cpp index befc333e8..6653d6616 100644 --- a/src/gui/components/cc_frm_footer.cpp +++ b/src/gui/components/cc_frm_footer.cpp @@ -137,11 +137,14 @@ void CComponentsFooter::setButtonLabels(const struct button_label_s * const cont * With this container we can work inside footer as primary container (in this context '=this') and the parent for the button label container (chain object). * Button label container (chain object) itself is concurrent to the parent object for button objects. */ + int dist = height/2-cch_offset; + int h_chain = ccf_btn_font->getHeight() > height+dist ? height-dist : ccf_btn_font->getHeight()+dist; int x_chain = width/2 - w_chain/2; + int y_chain = height/2 - h_chain/2; if (cch_icon_obj) x_chain = cch_offset+cch_icon_obj->getWidth()+cch_offset; if (chain == NULL){ - chain = new CComponentsFrmChain(x_chain, 0, w_chain, height, 0, CC_DIR_X, this, CC_SHADOW_OFF, COL_MENUCONTENT_PLUS_6, col_body); + chain = new CComponentsFrmChain(x_chain, y_chain, w_chain, h_chain, 0, CC_DIR_X, this, CC_SHADOW_OFF, COL_MENUCONTENT_PLUS_6, col_body); chain->setAppendOffset(0, 0); chain->setCorner(this->corner_rad, this->corner_type); chain->doPaintBg(false); @@ -172,7 +175,7 @@ void CComponentsFooter::setButtonLabels(const struct button_label_s * const cont * with default width to chain object. */ vector v_btns; - int h_btn = /*(ccf_enable_button_bg ? */(height*85/100)-2*fr_thickness-OFFSET_INNER_SMALL/* : height)*/-ccf_button_shadow_width; + int h_btn = /*(ccf_enable_button_bg ? */chain->getHeight()-2*fr_thickness/*-OFFSET_INNER_SMALL*//* : height)*/-ccf_button_shadow_width; for (size_t i= 0; i< label_count; i++){ string txt = content[i].text; string icon_name = string(content[i].button); @@ -426,7 +429,8 @@ void CComponentsFooter::enableButtonShadow(int mode, const int& shadow_width, bo if (chain){ for(size_t i=0; isize(); i++){ chain->getCCItem(i)->enableShadow(ccf_enable_button_shadow, ccf_button_shadow_width, ccf_button_shadow_force_paint); - int y_btn = ccf_enable_button_shadow == CC_SHADOW_OFF ? CC_CENTERED : chain->getHeight()/2 - chain->getCCItem(i)->getHeight()/2 - ccf_button_shadow_width; + //int y_btn = ccf_enable_button_shadow == CC_SHADOW_OFF ? CC_CENTERED : chain->getHeight()/2 - chain->getCCItem(i)->getHeight()/2 - ccf_button_shadow_width; + int y_btn = chain->getHeight()/2 - chain->getCCItem(i)->getHeight()/2; chain->getCCItem(i)->setYPos(y_btn); } } diff --git a/src/gui/components/cc_frm_footer.h b/src/gui/components/cc_frm_footer.h index 23ea75125..aebaddcc0 100644 --- a/src/gui/components/cc_frm_footer.h +++ b/src/gui/components/cc_frm_footer.h @@ -204,7 +204,7 @@ class CComponentsFooter : public CComponentsHeader const struct button_label * const content, const int& label_width = 0, const int& context_buttons = 0, - Font* font = g_Font[SNeutrinoSettings::FONT_TYPE_MENU_FOOT], + Font* font = g_Font[SNeutrinoSettings::FONT_TYPE_BUTTON_TEXT], bool do_save_bg = CC_SAVE_SCREEN_NO ); diff --git a/src/gui/moviebrowser/mb.cpp b/src/gui/moviebrowser/mb.cpp index a20f84393..6bdb0b8e6 100644 --- a/src/gui/moviebrowser/mb.cpp +++ b/src/gui/moviebrowser/mb.cpp @@ -272,7 +272,7 @@ CMovieBrowser::~CMovieBrowser() delete m_movieCover; if (m_header) - delete m_header; m_header = NULL; + delete m_header; } void CMovieBrowser::clearListLines() diff --git a/src/gui/widget/hintbox.cpp b/src/gui/widget/hintbox.cpp index 45883cc22..45ec42223 100644 --- a/src/gui/widget/hintbox.cpp +++ b/src/gui/widget/hintbox.cpp @@ -330,6 +330,11 @@ void CHintBox::setMsgText(const std::string& Text, const uint& hint_id, const in obj_text->setText(Text, mode, font, color_text, style); } +void CHintBox::setMsgText(const neutrino_locale_t& locale, const uint& hint_id, const int& mode, Font* font_text, const fb_pixel_t& color_text, const int& style) +{ + setMsgText(g_Locale->getText(locale), hint_id, mode, font_text, color_text, style); +} + void CHintBox::ReSize() { int h = (ccw_head ? ccw_head->getHeight() : 0); diff --git a/src/gui/widget/hintbox.h b/src/gui/widget/hintbox.h index c005feb26..0bd123c45 100644 --- a/src/gui/widget/hintbox.h +++ b/src/gui/widget/hintbox.h @@ -32,7 +32,7 @@ #include -#define HINTBOX_MIN_WIDTH 420 +#define HINTBOX_MIN_WIDTH 320 #define HINTBOX_MIN_HEIGHT 125 #define HINTBOX_MAX_HEIGHT 520 #define HINTBOX_DEFAULT_TIMEOUT g_settings.timing[SNeutrinoSettings::TIMING_POPUP_MESSAGES] @@ -290,6 +290,12 @@ class CHintBox : public CComponentsWindow Font* font_text = NULL, const fb_pixel_t& color_text = COL_MENUCONTENT_TEXT, const int& style = CComponentsText::FONT_STYLE_REGULAR); + void setMsgText(const neutrino_locale_t& locale, + const uint& hint_id = 0, + const int& mode = CTextBox::AUTO_WIDTH | CTextBox::AUTO_HIGH | CTextBox::CENTER, + Font* font_text = NULL, + const fb_pixel_t& color_text = COL_MENUCONTENT_TEXT, + const int& style = CComponentsText::FONT_STYLE_REGULAR); }; /** diff --git a/src/gui/widget/msgbox.h b/src/gui/widget/msgbox.h index f20083296..f15060973 100644 --- a/src/gui/widget/msgbox.h +++ b/src/gui/widget/msgbox.h @@ -35,7 +35,7 @@ #include "hintbox.h" #define MSGBOX_MIN_WIDTH HINTBOX_MIN_WIDTH -#define MSGBOX_MIN_HEIGHT HINTBOX_MIN_HEIGHT + 75 +#define MSGBOX_MIN_HEIGHT HINTBOX_MIN_HEIGHT #define MSGBOX_DEFAULT_TIMEOUT g_settings.timing[SNeutrinoSettings::TIMING_STATIC_MESSAGES] #define DEFAULT_MSGBOX_TEXT_MODE (CMsgBox::CENTER | CMsgBox::AUTO_WIDTH | CMsgBox::AUTO_HIGH) diff --git a/src/neutrino.cpp b/src/neutrino.cpp index 7fd619cad..86362dc6a 100644 --- a/src/neutrino.cpp +++ b/src/neutrino.cpp @@ -2343,7 +2343,6 @@ TIMER_START(); frameBuffer->stopFrame(); } - InitZapper(); if(loadSettingsErg) { hintBox->hide(); dprintf(DEBUG_INFO, "config file or options missing\n"); @@ -2353,6 +2352,8 @@ TIMER_START(); saveSetup(NEUTRINO_SETTINGS_FILE); } + InitZapper(); + CHDDDestExec * hdd = new CHDDDestExec(); hdd->exec(NULL, ""); delete hdd; diff --git a/src/timerd/timermanager.cpp b/src/timerd/timermanager.cpp index 766aab532..b9170ff68 100644 --- a/src/timerd/timermanager.cpp +++ b/src/timerd/timermanager.cpp @@ -723,7 +723,6 @@ bool CTimerManager::shutdown() time_t nextAnnounceTime=0; bool status=false; timer_is_rec = false; - dprintf("stopping timermanager thread ...\n"); dprintf("Waiting for timermanager thread to terminate ...\n"); @@ -737,7 +736,8 @@ bool CTimerManager::shutdown() saveEventsToConfig(); dprintf("shutdown: saved config\n"); } - if (pthread_mutex_trylock(&tm_eventsMutex) == EBUSY) + int rc = pthread_mutex_trylock(&tm_eventsMutex); + if (rc == EBUSY) { dprintf("error: mutex is still LOCKED\n"); return false; @@ -772,8 +772,8 @@ bool CTimerManager::shutdown() timer_minutes = (nextAnnounceTime - 3*60)/60; } dprintf("shutdown: timeset: %d timer_minutes %ld\n", timeset, timer_minutes); - - pthread_mutex_unlock(&tm_eventsMutex); + if(rc == 0) + pthread_mutex_unlock(&tm_eventsMutex); return status; } //------------------------------------------------------------