Menu/GoTo: tweak go to page/letter dialog layout (#8056)

2 columns instead of 3, to get larger buttons and
avoid truncation with some translations.
pull/8054/head
hius07 3 years ago committed by GitHub
parent 3c597d1d84
commit ef1dea990e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -7,8 +7,6 @@ local _ = require("gettext")
local T = require("ffi/util").template local T = require("ffi/util").template
local ReaderGoto = InputContainer:new{ local ReaderGoto = InputContainer:new{
goto_menu_title = _("Go to page"),
skim_menu_title = _("Skim document"),
} }
function ReaderGoto:init() function ReaderGoto:init()
@ -16,15 +14,14 @@ function ReaderGoto:init()
end end
function ReaderGoto:addToMainMenu(menu_items) function ReaderGoto:addToMainMenu(menu_items)
-- insert goto command to main reader menu
menu_items.go_to = { menu_items.go_to = {
text = self.goto_menu_title, text = _("Go to page"),
callback = function() callback = function()
self:onShowGotoDialog() self:onShowGotoDialog()
end, end,
} }
menu_items.skim_to = { menu_items.skim_to = {
text = self.skim_menu_title, text = _("Skim document"),
callback = function() callback = function()
self:onShowSkimtoDialog() self:onShowSkimtoDialog()
end, end,
@ -59,14 +56,21 @@ x for an absolute page number
{ {
{ {
text = _("Cancel"), text = _("Cancel"),
enabled = true,
callback = function() callback = function()
self:close() self:close()
end, end,
}, },
{ {
text = _("Skim"), text = _("Go to page"),
enabled = true, is_enter_default = true,
callback = function()
self:gotoPage()
end,
}
},
{
{
text = _("Skim document"),
callback = function() callback = function()
self:close() self:close()
self.skimto = SkimToWidget:new{ self.skimto = SkimToWidget:new{
@ -81,12 +85,6 @@ x for an absolute page number
end, end,
}, },
{
text = _("Go to page"),
enabled = true,
is_enter_default = true,
callback = function() self:gotoPage() end,
}
}, },
}, },
input_type = "number", input_type = "number",

@ -8,6 +8,7 @@ local BottomContainer = require("ui/widget/container/bottomcontainer")
local Button = require("ui/widget/button") local Button = require("ui/widget/button")
local CenterContainer = require("ui/widget/container/centercontainer") local CenterContainer = require("ui/widget/container/centercontainer")
local Device = require("device") local Device = require("device")
local Event = require("ui/event")
local FFIUtil = require("ffi/util") local FFIUtil = require("ffi/util")
local FocusManager = require("ui/widget/focusmanager") local FocusManager = require("ui/widget/focusmanager")
local Font = require("ui/font") local Font = require("ui/font")
@ -27,10 +28,12 @@ local TextBoxWidget = require("ui/widget/textboxwidget")
local TextWidget = require("ui/widget/textwidget") local TextWidget = require("ui/widget/textwidget")
local UIManager = require("ui/uimanager") local UIManager = require("ui/uimanager")
local UnderlineContainer = require("ui/widget/container/underlinecontainer") local UnderlineContainer = require("ui/widget/container/underlinecontainer")
local Utf8Proc = require("ffi/utf8proc")
local VerticalGroup = require("ui/widget/verticalgroup") local VerticalGroup = require("ui/widget/verticalgroup")
local VerticalSpan = require("ui/widget/verticalspan") local VerticalSpan = require("ui/widget/verticalspan")
local WidgetContainer = require("ui/widget/container/widgetcontainer") local WidgetContainer = require("ui/widget/container/widgetcontainer")
local logger = require("logger") local logger = require("logger")
local util = require("util")
local _ = require("gettext") local _ = require("gettext")
local Input = Device.input local Input = Device.input
local Screen = Device.screen local Screen = Device.screen
@ -806,7 +809,7 @@ function Menu:init()
}, },
{ {
text = _("Go to page"), text = _("Go to page"),
is_enter_default = true, is_enter_default = not self.goto_letter,
callback = function() callback = function()
local page = tonumber(self.page_info_text.input_dialog:getInputText()) local page = tonumber(self.page_info_text.input_dialog:getInputText())
if page and page >= 1 and page <= self.page_num then if page and page >= 1 and page <= self.page_num then
@ -819,29 +822,38 @@ function Menu:init()
} }
if self.goto_letter then if self.goto_letter then
title_goto = _("Enter page number or letter") title_goto = _("Enter letter or page number")
type_goto = "string" type_goto = "string"
hint_func = function() hint_func = function()
-- @translators First group is a page number range, second group the standard range for alphabetic searches -- @translators First group is the standard range for alphabetic searches, second group is a page number range
return T(_("(1 - %1) or (a - z)"), self.page_num) return T(_("(a - z) or (1 - %1)"), self.page_num)
end end
table.insert(buttons[1], { table.insert(buttons, 1, {
text = _("Go to letter"), {
is_enter_default = true, text = _("File search"),
callback = function() callback = function()
for k, v in ipairs(self.item_table) do self.page_info_text:closeInputDialog()
--- @todo Support utf8 lowercase. UIManager:sendEvent(Event:new("ShowFileSearch", self.page_info_text.input_dialog:getInputText()))
local filename = FFIUtil.basename(v.path):lower() end,
local search_string = self.page_info_text.input_dialog:getInputText():lower() },
{
text = _("Go to letter"),
is_enter_default = true,
callback = function()
local search_string = self.page_info_text.input_dialog:getInputText()
if search_string == "" then return end if search_string == "" then return end
local i, _ = filename:find(search_string) search_string = Utf8Proc.lowercase(util.fixUtf8(search_string, "?"))
if i == 1 and not v.is_go_up then for k, v in ipairs(self.item_table) do
self:onGotoPage(math.ceil(k / self.perpage)) local filename = Utf8Proc.lowercase(util.fixUtf8(FFIUtil.basename(v.path), "?"))
break local i, _ = filename:find(search_string)
if i == 1 and not v.is_go_up then
self:onGotoPage(math.ceil(k / self.perpage))
break
end
end end
end self.page_info_text:closeInputDialog()
self.page_info_text:closeInputDialog() end,
end, },
}) })
else else
title_goto = _("Enter page number") title_goto = _("Enter page number")

Loading…
Cancel
Save