diff --git a/frontend/apps/reader/modules/readerfooter.lua b/frontend/apps/reader/modules/readerfooter.lua index 6bd8b5bd9..cd6194828 100644 --- a/frontend/apps/reader/modules/readerfooter.lua +++ b/frontend/apps/reader/modules/readerfooter.lua @@ -243,6 +243,7 @@ local footerTextGeneratorMap = { text = doc_info.title, max_width = footer._saved_screen_width * footer.settings.book_title_max_width_pct / 100, face = Font:getFace(footer.text_font_face, footer.settings.text_font_size), + bold = footer.settings.text_font_bold, } local fitted_title_text, add_ellipsis = title_widget:getFittedText() title_widget:free() @@ -261,6 +262,7 @@ local footerTextGeneratorMap = { text = chapter_title, max_width = footer._saved_screen_width * footer.settings.book_chapter_max_width_pct / 100, face = Font:getFace(footer.text_font_face, footer.settings.text_font_size), + bold = footer.settings.text_font_bold, } local fitted_chapter_text, add_ellipsis = chapter_widget:getFittedText() chapter_widget:free() @@ -314,6 +316,7 @@ function ReaderFooter:init() item_prefix = "icons", toc_markers_width = DMINIBAR_TOC_MARKER_WIDTH, text_font_size = DMINIBAR_FONT_SIZE, + text_font_bold = false, } local mode_tbl = {} @@ -383,9 +386,13 @@ function ReaderFooter:init() if not self.settings.text_font_size then self.settings.text_font_size = DMINIBAR_FONT_SIZE end + if not self.settings.text_font_bold then + self.settings.text_font_bold = false + end self.footer_text = TextWidget:new{ text = '', face = Font:getFace(self.text_font_face, self.settings.text_font_size), + bold = self.settings.text_font_bold, } -- all width related values will be initialized in self:resetLayout() self.text_width = 0 @@ -828,39 +835,61 @@ function ReaderFooter:addToMainMenu(menu_items) end, }, { - text_func = function() - return T(_("Font size (%1)"), self.settings.text_font_size) - end, + text = _("Font"), separator = true, - callback = function(touchmenu_instance) - local SpinWidget = require("ui/widget/spinwidget") - local font_size = self.settings.text_font_size - local items_font = SpinWidget:new{ - width = Screen:getWidth() * 0.6, - value = font_size, - value_min = 8, - value_max = 36, - default_value = 14, - ok_text = _("Set size"), - title_text = _("Footer font size"), - callback = function(spin) - self.settings.text_font_size = spin.value - local text = self.footer_text.text - self.footer_text = TextWidget:new{ - text = text, - face = Font:getFace(self.text_font_face, self.settings.text_font_size) + sub_item_table = { + { + text_func = function() + return T(_("Font size (%1)"), self.settings.text_font_size) + end, + callback = function(touchmenu_instance) + local SpinWidget = require("ui/widget/spinwidget") + local font_size = self.settings.text_font_size + local items_font = SpinWidget:new{ + width = Screen:getWidth() * 0.6, + value = font_size, + value_min = 8, + value_max = 36, + default_value = 14, + ok_text = _("Set size"), + title_text = _("Footer font size"), + callback = function(spin) + self.settings.text_font_size = spin.value + self.footer_text:free() + self.footer_text = TextWidget:new{ + text = self.footer_text.text, + face = Font:getFace(self.text_font_face, self.settings.text_font_size), + bold = self.settings.text_font_bold, + } + self.text_container[1] = self.footer_text + self:refreshFooter(true, true) + if touchmenu_instance then touchmenu_instance:updateItems() end + end, } - self.text_container = RightContainer:new{ - dimen = Geom:new{ w = 0, h = self.height }, - self.footer_text, + UIManager:show(items_font) + end, + keep_menu_open = true, + }, + { + text = _("Use bold font"), + checked_func = function() + return self.settings.text_font_bold == true + end, + callback = function(touchmenu_instance) + self.settings.text_font_bold = not self.settings.text_font_bold + self.footer_text:free() + self.footer_text = TextWidget:new{ + text = self.footer_text.text, + face = Font:getFace(self.text_font_face, self.settings.text_font_size), + bold = self.settings.text_font_bold, } + self.text_container[1] = self.footer_text self:refreshFooter(true, true) if touchmenu_instance then touchmenu_instance:updateItems() end end, - } - UIManager:show(items_font) - end, - keep_menu_open = true, + keep_menu_open = true, + }, + } }, { text = _("Maximum width of items"),