diff --git a/data/locale/deutsch.locale b/data/locale/deutsch.locale index cc4a0e127..58ccb9720 100644 --- a/data/locale/deutsch.locale +++ b/data/locale/deutsch.locale @@ -2607,8 +2607,8 @@ timerlist.repeat.wednesday Mi timerlist.repeat.weekdays An Wochentagen timerlist.repeat.weekly wöchentlich timerlist.repeatcount Wiederholungen -timerlist.repeatcount.help1 Anzahl der Timerausführungen -timerlist.repeatcount.help2 0 für unbegrenzte Anzahl +timerlist.repeatcount.hint_1 Anzahl der Timerausführungen +timerlist.repeatcount.hint_2 0 für unbegrenzte Anzahl timerlist.save Timer speichern timerlist.standby Aktion timerlist.standby.off Aufwachen aus Standby diff --git a/data/locale/english.locale b/data/locale/english.locale index 87b3211b0..1de49a9a2 100644 --- a/data/locale/english.locale +++ b/data/locale/english.locale @@ -2606,8 +2606,8 @@ timerlist.repeat.wednesday We timerlist.repeat.weekdays on weekdays timerlist.repeat.weekly weekly timerlist.repeatcount repeats -timerlist.repeatcount.help1 amount of timer repeats -timerlist.repeatcount.help2 0 for unlimited repeats +timerlist.repeatcount.hint_1 Amount of timer repeats +timerlist.repeatcount.hint_2 0 for unlimited repeats timerlist.save Save timer timerlist.standby Action timerlist.standby.off Leave standby diff --git a/src/gui/components/cc_draw.cpp b/src/gui/components/cc_draw.cpp index c0a281434..a5c455bb8 100644 --- a/src/gui/components/cc_draw.cpp +++ b/src/gui/components/cc_draw.cpp @@ -678,7 +678,7 @@ void CCDraw::kill(const fb_pixel_t& bg_color, const int& corner_radius, const in r, corner_type); }else - dprintf(DEBUG_NORMAL, "\033[33m[CCDraw][%s - %d], WARNING! render with bad dimensions [dx = %d dy = %d]\033[0m\n", __func__, __LINE__, v_fbdata[i].dx, v_fbdata[i].dy ); + dprintf(DEBUG_DEBUG, "\033[33m[CCDraw][%s - %d], WARNING! render with bad dimensions [dx = %d dy = %d]\033[0m\n", __func__, __LINE__, v_fbdata[i].dx, v_fbdata[i].dy ); if (v_fbdata[i].frame_thickness) frameBuffer->paintBoxFrame(v_fbdata[i].x, diff --git a/src/gui/components/cc_frm.cpp b/src/gui/components/cc_frm.cpp index ce7a3dbb2..102daa505 100644 --- a/src/gui/components/cc_frm.cpp +++ b/src/gui/components/cc_frm.cpp @@ -375,9 +375,9 @@ void CComponentsForm::paintCCItems() //init and handle scrollbar getPageCount(); - int y_sb = this_y+1; + int y_sb = this_y; int x_sb = this_x + width - w_sb; - int h_sb = height-2; + int h_sb = height; if (sb == NULL){ sb = new CComponentsScrollBar(x_sb, y_sb, w_sb, h_sb); }else{ diff --git a/src/gui/components/cc_frm_scrollbar.cpp b/src/gui/components/cc_frm_scrollbar.cpp index dc277f6be..ad2189689 100644 --- a/src/gui/components/cc_frm_scrollbar.cpp +++ b/src/gui/components/cc_frm_scrollbar.cpp @@ -76,12 +76,15 @@ void CComponentsScrollBar::initVarSbForm(const int& count) cc_item_type = CC_ITEMTYPE_FRM_SCROLLBAR; fr_thickness = 0; - append_x_offset = 0; - append_y_offset = 2; + append_x_offset = OFFSET_INNER_MIN; + append_y_offset = OFFSET_INNER_MIN; - sb_up_obj = sb_down_obj = NULL; + sb_up_obj = NULL; + sb_down_obj = NULL; sb_segments_obj = NULL; + setCorner(RADIUS_MIN, CORNER_ALL); + sb_up_icon = frameBuffer->getIconPath(NEUTRINO_ICON_BUTTON_UP) ; sb_down_icon = frameBuffer->getIconPath(NEUTRINO_ICON_BUTTON_DOWN); @@ -110,40 +113,38 @@ void CComponentsScrollBar::initTopNaviIcon() { //initialize icon object if (sb_up_obj == NULL){ - sb_up_obj = new CComponentsPicture(CC_CENTERED, fr_thickness, sb_up_icon, this); + sb_up_obj = new CComponentsPicture(CC_CENTERED, fr_thickness, width-2*fr_thickness, width-2*fr_thickness, sb_up_icon, this); sb_up_obj->SetTransparent(CFrameBuffer::TM_BLACK); sb_up_obj->doPaintBg(false); } - sb_up_obj->setWidth(width-2*fr_thickness); } void CComponentsScrollBar::initBottomNaviIcon() { //initialize icon object if (sb_down_obj == NULL){ - sb_down_obj = new CComponentsPicture(CC_CENTERED, CC_APPEND, sb_down_icon, this); + sb_down_obj = new CComponentsPicture(CC_CENTERED, height - width-2*fr_thickness, width-2*fr_thickness, 0, sb_down_icon, this); sb_down_obj->SetTransparent(CFrameBuffer::TM_BLACK); sb_down_obj->doPaintBg(false); } - sb_down_obj->setWidth(width-2*fr_thickness); } void CComponentsScrollBar::initSegments() { //init dimensions for segments - int w_seg = width - 4*fr_thickness; -//never read int h_seg = height - (sb_segments_count-1)*append_y_offset; + int w_seg = width - 2*fr_thickness - 2*append_x_offset; + if (w_seg < 0) + w_seg = 0; //calculate height of segment container - int h_seg_obj = height - 2*sb_up_obj->getHeight() - 3*append_y_offset; - if(h_seg_obj < 0) + int h_seg_obj = height - 2*fr_thickness - 2*sb_up_obj->getHeight() - 2*append_y_offset; + if (h_seg_obj < 0) h_seg_obj = 0; //init segment container if (sb_segments_obj == NULL){ sb_segments_obj = new CComponentsFrmChain(CC_CENTERED, CC_APPEND, w_seg, h_seg_obj, NULL, CC_DIR_Y, this, false); - sb_segments_obj->setFrameThickness(0/*,0*/); - sb_segments_obj->setAppendOffset(0, 3); + sb_segments_obj->setFrameThickness(0); }else sb_segments_obj->setDimensionsAll(CC_CENTERED, CC_APPEND, w_seg, h_seg_obj); @@ -154,9 +155,9 @@ void CComponentsScrollBar::initSegments() sb_segments_obj->clear(); //set y position of 1st segment and set height of segments - int y_seg = 1+ append_y_offset; + int y_seg = append_y_offset; int h_seg = sb_segments_obj->getHeight()/sb_segments_count - append_y_offset; - if(h_seg < 0) + if (h_seg < 0) h_seg = 0; //create and add segments to segment container @@ -189,3 +190,20 @@ void CComponentsScrollBar::initSegments() sb_segments_obj->front()->setCorner(RADIUS_MIN, CORNER_TOP); sb_segments_obj->back()->setCorner(RADIUS_MIN, CORNER_BOTTOM); } + + +void paintScrollBar( const int &x_pos, + const int &y_pos, + const int &w, + const int &h, + const int& count, + const int& current_num, + int shadow_mode, + fb_pixel_t color_frame, + fb_pixel_t color_body, + fb_pixel_t color_shadow) +{ + CComponentsScrollBar scrollbar(x_pos, y_pos, w, h, count, NULL, shadow_mode, color_frame, color_body, color_shadow); + scrollbar.setMarkID(current_num); + scrollbar.paint0(); +} diff --git a/src/gui/components/cc_frm_scrollbar.h b/src/gui/components/cc_frm_scrollbar.h index 731e83df5..8057147ec 100644 --- a/src/gui/components/cc_frm_scrollbar.h +++ b/src/gui/components/cc_frm_scrollbar.h @@ -60,24 +60,95 @@ class CComponentsScrollBar : public CComponentsFrmChain void initVarSbForm( const int& count); public: - CComponentsScrollBar( const int &x_pos, const int &y_pos, const int &w = 15, const int &h = 40, - const int& count = 1, + /**Class constructor to generate individual scrollbar objects + * + * @param[in] x_pos exepts type int, x position on screen + * @param[in] x_pos exepts type int, y position on screen modes are: + * @param[in] w exepts type int, width of scrollbar object + * @param[in] h exepts type int, height of scrollbar object + * @param[in] count optional, exepts type int, count of pages, default 1 + * + * usual paraemters: + * @param[in] parent optional, exepts type pointer to a parent CComponentsForm object, default NULL + * @param[in] shadow_mode optional, exepts type int defined by shadow mode enums, default CC_SHADOW_OFF + * @param[in] color_frame optional, exepts type fb_pixel_t, default COL_SCROLLBAR_ACTIVE_PLUS_0 + * @param[in] color_body optional, exepts type fb_pixel_t, default COL_SCROLLBAR_PASSIVE_PLUS_0 + * @param[in] color_shadow optional, exepts type fb_pixel_t, default COL_SHADOW_PLUS_0 + */ + CComponentsScrollBar( const int &x_pos, + const int &y_pos, + const int &w = 15, + const int &h = 0, + const int& count = 1, CComponentsForm *parent = NULL, - int shadow_mode = CC_SHADOW_OFF, - fb_pixel_t color_frame = COL_SCROLLBAR_ACTIVE_PLUS_0, - fb_pixel_t color_body = COL_SCROLLBAR_PASSIVE_PLUS_0, + int shadow_mode = CC_SHADOW_OFF, + fb_pixel_t color_frame = COL_SCROLLBAR_ACTIVE_PLUS_0, + fb_pixel_t color_body = COL_SCROLLBAR_PASSIVE_PLUS_0, fb_pixel_t color_shadow = COL_SHADOW_PLUS_0); // ~CComponentsScrollBar(); //inherited from CComponentsForm - ///set marked segment, 1st = 0, 2nd = 1 ... - void setMarkID(const int& mark_id){sb_mark_id = mark_id; initSegments();}; - ///get current assigned marked id + /**Set current page number + * @return void + * + * @param[in] mark_id exepts type int, this sets the current selected page number. + * + * @see getMarkID() + */ + void setMarkID(const int& mark_id){sb_mark_id = mark_id; initSegments();} + + /**Gets current page number + * @return int + * + * @see setMarkID() + */ int getMarkID(){return sb_mark_id;}; - ///Sets count of scrollbar segments and is similar e.g. page count. Each segment is assigned to an id. Starting with id 0...n see also setMarkID(), getMarkID(). + /**Sets count of possible scrollbar segments (e.g. page count) and + * current selected page at once . + * Each segment is assigned to a page number. Starting with id 0...n + * @return void + * + * @param[in] segment_count exepts type int, sets the current count of pages. + * @param[in] mark_id optional, exepts type int, sets the current selected page number, default = 0 + * @see also setMarkID() + * getMarkID() + */ void setSegmentCount(const int& segment_count, const int& mark_id = 0); - ///Get count of current scrollbar segments + + /**Get count of current scrollbar segments (page count) + * @return int + * + * @see setSegmentCount() + */ int getSegmentCount(){return sb_segments_count;} }; + /**Small and easy to apply scrollbar paint methode without expilcit object declaration + * @return void + * + * @param[in] x_pos exepts type int, x position on screen + * @param[in] x_pos exepts type int, y position on screen modes are: + * @param[in] w exepts type int, width of scrollbar object + * @param[in] h exepts type int, height of scrollbar object + * @param[in] count exepts type int, count of pages, default 1 + * @param[in] current_num exepts type int, current selected page, default 0 + * + * usual paraemters: + * @param[in] parent optional, exepts type pointer to a parent CComponentsForm object, default NULL + * @param[in] shadow_mode optional, exepts type int defined by shadow mode enums, default CC_SHADOW_OFF + * @param[in] color_frame optional, exepts type fb_pixel_t, default COL_SCROLLBAR_ACTIVE_PLUS_0 + * @param[in] color_body optional, exepts type fb_pixel_t, default COL_SCROLLBAR_PASSIVE_PLUS_0 + * @param[in] color_shadow optional, exepts type fb_pixel_t, default COL_SHADOW_PLUS_0 + */ +void paintScrollBar( const int &x_pos, + const int &y_pos, + const int &w, + const int &h, + const int& count, + const int& current_num, + int shadow_mode = CC_SHADOW_OFF, + fb_pixel_t color_frame = COL_SCROLLBAR_ACTIVE_PLUS_0, + fb_pixel_t color_body = COL_SCROLLBAR_PASSIVE_PLUS_0, + fb_pixel_t color_shadow = COL_SHADOW_PLUS_0); + #endif diff --git a/src/gui/moviebrowser/mb.cpp b/src/gui/moviebrowser/mb.cpp index 9f585b31c..95815dc49 100644 --- a/src/gui/moviebrowser/mb.cpp +++ b/src/gui/moviebrowser/mb.cpp @@ -619,9 +619,21 @@ bool CMovieBrowser::loadSettings(MB_SETTINGS* settings) settings->sorting.direction = (MB_DIRECTION)configfile.getInt32("mb_sorting_direction", MB_DIRECTION_UP); settings->filter.item = (MB_INFO_ITEM)configfile.getInt32("mb_filter_item", MB_INFO_MAX_NUMBER); - settings->filter.optionString = configfile.getString("mb_filter_optionString", ""); + settings->filter.optionString = configfile.getString("mb_filter_optionString", g_Locale->getText(LOCALE_OPTIONS_OFF)); settings->filter.optionVar = configfile.getInt32("mb_filter_optionVar", 0); + if (settings->filter.item == MB_INFO_FILEPATH) + { + struct stat info; + if (!(stat(settings->filter.optionString.c_str(), &info) == 0 && S_ISDIR(info.st_mode))) + { + //reset filter if directory not exists + settings->filter.item = MB_INFO_MAX_NUMBER; + settings->filter.optionString = g_Locale->getText(LOCALE_OPTIONS_OFF); + settings->filter.optionVar = 0; + } + } + settings->parentalLockAge = (MI_PARENTAL_LOCKAGE)configfile.getInt32("mb_parentalLockAge", MI_PARENTAL_OVER18); settings->parentalLock = (MB_PARENTAL_LOCK)configfile.getInt32("mb_parentalLock", MB_PARENTAL_LOCK_ACTIVE); @@ -2812,24 +2824,37 @@ bool CMovieBrowser::onSortMovieInfoHandleList(std::vector& handl void CMovieBrowser::updateDir(void) { + struct stat info; + m_dir.clear(); + #if 0 // check if there is a movie dir and if we should use it if (g_settings.network_nfs_moviedir[0] != 0) { + if (!(stat(g_settings.network_nfs_moviedir.c_str(), &info) == 0 && S_ISDIR(info.st_mode))) + m_settings.storageDirMovieUsed = false; + std::string name = g_settings.network_nfs_moviedir; addDir(name,&m_settings.storageDirMovieUsed); } #endif + // check if there is a record dir and if we should use it if (!g_settings.network_nfs_recordingdir.empty()) { + if (!(stat(g_settings.network_nfs_recordingdir.c_str(), &info) == 0 && S_ISDIR(info.st_mode))) + m_settings.storageDirRecUsed = false; + addDir(g_settings.network_nfs_recordingdir, &m_settings.storageDirRecUsed); cHddStat::getInstance()->statOnce(); } for (int i = 0; i < MB_MAX_DIRS; i++) { + if (!(stat(m_settings.storageDir[i].c_str(), &info) == 0 && S_ISDIR(info.st_mode))) + m_settings.storageDirUsed[i] = false; + if (!m_settings.storageDir[i].empty()) addDir(m_settings.storageDir[i],&m_settings.storageDirUsed[i]); } diff --git a/src/gui/timerlist.cpp b/src/gui/timerlist.cpp index 98c020aa8..0c8ee8719 100644 --- a/src/gui/timerlist.cpp +++ b/src/gui/timerlist.cpp @@ -1601,7 +1601,7 @@ int CTimerList::modifyTimer() timer->eventRepeat = (CTimerd::CTimerEventRepeat)(((int)timer->eventRepeat) & 0x1FF); CStringInput timerSettings_weekdays(LOCALE_TIMERLIST_WEEKDAYS, &m_weekdaysStr, 7, LOCALE_TIMERLIST_WEEKDAYS_HINT_1, LOCALE_TIMERLIST_WEEKDAYS_HINT_2, "-X"); CMenuForwarder *m4 = new CMenuForwarder(LOCALE_TIMERLIST_WEEKDAYS, ((int)timer->eventRepeat) >= (int)CTimerd::TIMERREPEAT_WEEKDAYS, m_weekdaysStr, &timerSettings_weekdays ); - CIntInput timerSettings_repeatCount(LOCALE_TIMERLIST_REPEATCOUNT, (int*)&timer->repeatCount,3, LOCALE_TIMERLIST_REPEATCOUNT_HELP1, LOCALE_TIMERLIST_REPEATCOUNT_HELP2); + CIntInput timerSettings_repeatCount(LOCALE_TIMERLIST_REPEATCOUNT, (int*)&timer->repeatCount,3, LOCALE_TIMERLIST_REPEATCOUNT_HINT_1, LOCALE_TIMERLIST_REPEATCOUNT_HINT_2); CMenuForwarder *m5 = new CMenuForwarder(LOCALE_TIMERLIST_REPEATCOUNT, timer->eventRepeat != (int)CTimerd::TIMERREPEAT_ONCE ,timerSettings_repeatCount.getValue() , &timerSettings_repeatCount); @@ -1711,7 +1711,7 @@ int CTimerList::newTimer() CStringInput timerSettings_weekdays(LOCALE_TIMERLIST_WEEKDAYS, &m_weekdaysStr, 7, LOCALE_TIMERLIST_WEEKDAYS_HINT_1, LOCALE_TIMERLIST_WEEKDAYS_HINT_2, "-X"); CMenuForwarder *m4 = new CMenuForwarder(LOCALE_TIMERLIST_WEEKDAYS, false, m_weekdaysStr, &timerSettings_weekdays); - CIntInput timerSettings_repeatCount(LOCALE_TIMERLIST_REPEATCOUNT, (int*)&timerNew.repeatCount,3, LOCALE_TIMERLIST_REPEATCOUNT_HELP1, LOCALE_TIMERLIST_REPEATCOUNT_HELP2); + CIntInput timerSettings_repeatCount(LOCALE_TIMERLIST_REPEATCOUNT, (int*)&timerNew.repeatCount,3, LOCALE_TIMERLIST_REPEATCOUNT_HINT_1, LOCALE_TIMERLIST_REPEATCOUNT_HINT_2); CMenuForwarder *m5 = new CMenuForwarder(LOCALE_TIMERLIST_REPEATCOUNT, false,timerSettings_repeatCount.getValue() , &timerSettings_repeatCount); CTimerListRepeatNotifier notifier((int *)&timerNew.eventRepeat,m4,m5, &m_weekdaysStr); diff --git a/src/gui/widget/helpbox.cpp b/src/gui/widget/helpbox.cpp index 7d4816dc1..d900ed5ad 100644 --- a/src/gui/widget/helpbox.cpp +++ b/src/gui/widget/helpbox.cpp @@ -44,7 +44,7 @@ Helpbox::Helpbox( const string& Title, CC_SHADOW_ON) { page = 0; - hbox_y = 1; + hbox_y = 0; setWindowHeaderButtons(CComponentsHeader::CC_BTN_MENU | CComponentsHeader::CC_BTN_EXIT); ccw_footer->setButtonLabel(NEUTRINO_ICON_BUTTON_HOME, LOCALE_MESSAGEBOX_BACK); diff --git a/src/system/locals.h b/src/system/locals.h index 3666ad04b..e16443b72 100644 --- a/src/system/locals.h +++ b/src/system/locals.h @@ -2633,8 +2633,8 @@ typedef enum LOCALE_TIMERLIST_REPEAT_WEEKDAYS, LOCALE_TIMERLIST_REPEAT_WEEKLY, LOCALE_TIMERLIST_REPEATCOUNT, - LOCALE_TIMERLIST_REPEATCOUNT_HELP1, - LOCALE_TIMERLIST_REPEATCOUNT_HELP2, + LOCALE_TIMERLIST_REPEATCOUNT_HINT_1, + LOCALE_TIMERLIST_REPEATCOUNT_HINT_2, LOCALE_TIMERLIST_SAVE, LOCALE_TIMERLIST_STANDBY, LOCALE_TIMERLIST_STANDBY_OFF, diff --git a/src/system/locals_intern.h b/src/system/locals_intern.h index b0e387f6b..fa5ccbd91 100644 --- a/src/system/locals_intern.h +++ b/src/system/locals_intern.h @@ -2633,8 +2633,8 @@ const char * locale_real_names[] = "timerlist.repeat.weekdays", "timerlist.repeat.weekly", "timerlist.repeatcount", - "timerlist.repeatcount.help1", - "timerlist.repeatcount.help2", + "timerlist.repeatcount.hint_1", + "timerlist.repeatcount.hint_2", "timerlist.save", "timerlist.standby", "timerlist.standby.off",