From 1475acdae7a2d47ba7fb22375c467d31861284d0 Mon Sep 17 00:00:00 2001 From: Frans de Jonge Date: Fri, 1 Mar 2019 12:59:39 +0100 Subject: [PATCH] [UX] Gesture manager: add action - go to (#4690) Cf. . --- frontend/apps/reader/modules/readergesture.lua | 5 +++++ frontend/ui/widget/keyvaluepage.lua | 2 +- frontend/ui/widget/menu.lua | 10 ++++++++-- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/frontend/apps/reader/modules/readergesture.lua b/frontend/apps/reader/modules/readergesture.lua index fa28d8888..b55101946 100644 --- a/frontend/apps/reader/modules/readergesture.lua +++ b/frontend/apps/reader/modules/readergesture.lua @@ -23,6 +23,7 @@ local action_strings = { page_jmp_back_1 = _("Previous page"), page_jmp_fwd_10 = _("Forward 10 pages"), page_jmp_fwd_1 = _("Next page"), + go_to = _("Go to"), skim = _("Skim"), back = _("Back"), previous_location = _("Back to previous location"), @@ -101,6 +102,7 @@ function ReaderGesture:init() multiswipe_north_east = "toc", multiswipe_north_west = self.ges_mode == "gesture_fm" and "folder_up" or "bookmarks", multiswipe_east_north = "history", + multiswipe_east_south = "go_to", multiswipe_south_north = "skim", multiswipe_south_east = "toggle_reflow", multiswipe_south_west = "show_frontlight_dialog", @@ -245,6 +247,7 @@ function ReaderGesture:buildMenu(ges, default) {"page_jmp_back_1", not self.is_docless}, {"page_jmp_fwd_10", not self.is_docless}, {"page_jmp_fwd_1", not self.is_docless}, + {"go_to", true}, {"skim", not self.is_docless}, {"back", true}, {"previous_location", not self.is_docless}, @@ -510,6 +513,8 @@ function ReaderGesture:gestureAction(action) self:pageUpdate(-10) elseif action == "page_jmp_back_1" then self:pageUpdate(-1) + elseif action == "go_to" then + self.ui:handleEvent(Event:new("ShowGotoDialog")) elseif action == "skim" then self.ui:handleEvent(Event:new("ShowSkimtoDialog")) elseif action == "back" then diff --git a/frontend/ui/widget/keyvaluepage.lua b/frontend/ui/widget/keyvaluepage.lua index a4f4f84e1..178624b44 100644 --- a/frontend/ui/widget/keyvaluepage.lua +++ b/frontend/ui/widget/keyvaluepage.lua @@ -353,7 +353,7 @@ function KeyValuePage:init() self.page_info_text = Button:new{ text = "", hold_input = { - title = _("Input page number"), + title = _("Enter page number"), type = "number", hint_func = function() return "(" .. "1 - " .. self.pages .. ")" diff --git a/frontend/ui/widget/menu.lua b/frontend/ui/widget/menu.lua index ac2a59311..2bb12f6bc 100644 --- a/frontend/ui/widget/menu.lua +++ b/frontend/ui/widget/menu.lua @@ -643,7 +643,7 @@ function Menu:init() } if self.goto_letter then - title_goto = _("Input page number or letter") + title_goto = _("Enter page number or letter") type_goto = "string" hint_func = function() return string.format("(1 - %s) or (a - z)", self.page_num) @@ -666,7 +666,7 @@ function Menu:init() end, }) else - title_goto = _("Input page number") + title_goto = _("Enter page number") type_goto = "number" hint_func = function() return string.format("(1 - %s)", self.page_num) @@ -1032,6 +1032,12 @@ function Menu:onSelectByShortCut(_, keyevent) return true end +function Menu:onShowGotoDialog() + if self.page_info_text and self.page_info_text.hold_input then + self.page_info_text:onInput(self.page_info_text.hold_input) + end +end + function Menu:onWrapFirst() if self.page > 1 then self.page = self.page - 1