[UX] Set font size for menu items (#5146)

Ref: #4757
This PR add option to changing the font size of items in menu widget (filemanger in classic mode, TOC) in single line mode.
Close: #4757
pull/5153/head
Robert 5 years ago committed by Frans de Jonge
parent 2da0e54b7a
commit b71d0a19b8

@ -126,31 +126,60 @@ function FileManagerMenu:setUpdateItemTable()
checked_func = function() return self.ui.file_chooser.show_unsupported end, checked_func = function() return self.ui.file_chooser.show_unsupported end,
callback = function() self.ui:toggleUnsupportedFiles() end callback = function() self.ui:toggleUnsupportedFiles() end
} }
self.menu_items.items_per_page = { self.menu_items.items = {
text = _("Items per page"), text = _("Items"),
help_text = _([[This sets the number of items per page in: sub_item_table = {
{
text = _("Items per page"),
help_text = _([[This sets the number of items per page in:
- File browser and history in 'classic' display mode - File browser and history in 'classic' display mode
- File and directory selection - File and directory selection
- Table of contents - Table of contents
- Bookmarks list]]), - Bookmarks list]]),
keep_menu_open = true, keep_menu_open = true,
callback = function() callback = function()
local SpinWidget = require("ui/widget/spinwidget") local SpinWidget = require("ui/widget/spinwidget")
local curr_items = G_reader_settings:readSetting("items_per_page") or 14 local curr_items = G_reader_settings:readSetting("items_per_page") or 14
local items = SpinWidget:new{ local items = SpinWidget:new{
width = Screen:getWidth() * 0.6, width = Screen:getWidth() * 0.6,
value = curr_items, value = curr_items,
value_min = 6, value_min = 6,
value_max = 24, value_max = 24,
ok_text = _("Set items"), ok_text = _("Set items"),
title_text = _("Items per page"), title_text = _("Items per page"),
callback = function(spin) callback = function(spin)
G_reader_settings:saveSetting("items_per_page", spin.value) G_reader_settings:saveSetting("items_per_page", spin.value)
self.ui:onRefresh() self.ui:onRefresh()
end
}
UIManager:show(items)
end
},
{
text = _("Font size"),
keep_menu_open = true,
callback = function()
local SpinWidget = require("ui/widget/spinwidget")
local curr_items = G_reader_settings:readSetting("items_per_page") or 14
local default_font_size = math.floor(24 - ((curr_items - 6)/ 18) * 10 )
local curr_font_size = G_reader_settings:readSetting("items_font_size") or default_font_size
local items_font = SpinWidget:new{
width = Screen:getWidth() * 0.6,
value = curr_font_size,
value_min = 10,
value_max = 72,
default_value = default_font_size,
ok_text = _("Set size"),
title_text = _("Maximum font size for item"),
callback = function(spin)
G_reader_settings:saveSetting("items_font_size", spin.value)
self.ui:onRefresh()
end
}
UIManager:show(items_font)
end end
} }
UIManager:show(items) }
end
} }
self.menu_items.sort_by = self.ui:getSortingMenuTable() self.menu_items.sort_by = self.ui:getSortingMenuTable()
self.menu_items.reverse_sorting = { self.menu_items.reverse_sorting = {

@ -13,7 +13,7 @@ local order = {
"filemanager_display_mode", "filemanager_display_mode",
"show_hidden_files", "show_hidden_files",
"show_unsupported_files", "show_unsupported_files",
"items_per_page", "items",
"----------------------------", "----------------------------",
"sort_by", "sort_by",
"reverse_sorting", "reverse_sorting",

@ -929,8 +929,8 @@ function Menu:updateItems(select_number)
end end
--font size between 12 and 18 for better matching --font size between 12 and 18 for better matching
local infont_size = math.floor(18 - (self.perpage - 6) / 3) local infont_size = math.floor(18 - (self.perpage - 6) / 3)
--font size between 14 and 24 for better matching --default font size between 14 and 24 for better matching
local font_size = math.floor(24 - ((self.perpage - 6)/ 18) * 10 ) local font_size = G_reader_settings:readSetting("items_font_size") or math.floor(24 - ((self.perpage - 6)/ 18) * 10 )
for c = 1, math.min(self.perpage, #self.item_table) do for c = 1, math.min(self.perpage, #self.item_table) do
-- calculate index in item_table -- calculate index in item_table

Loading…
Cancel
Save