[UX] Add inverse reading order to gesture manager (#5423)

Also fixes #5354.
This commit is contained in:
yparitcher
2019-09-25 18:28:07 -04:00
committed by Frans de Jonge
parent 67abf9a26a
commit 09d49e29ad
3 changed files with 22 additions and 4 deletions

View File

@@ -80,6 +80,7 @@ local action_strings = {
toggle_bookmark = _("Toggle bookmark"),
toggle_page_flipping = _("Toggle page flipping"),
toggle_reflow = _("Toggle reflow"),
toggle_inverse_reading_order = _("Toggle page turn direction"),
zoom_contentwidth = _("Zoom to fit content width"),
zoom_contentheight = _("Zoom to fit content height"),
@@ -723,6 +724,7 @@ function ReaderGesture:buildMenu(ges, default)
{"toggle_bookmark", not self.is_docless, true},
{"toggle_page_flipping", not self.is_docless, true},
{"toggle_reflow", not self.is_docless, true},
{"toggle_inverse_reading_order", not self.is_docless, true},
{"zoom_contentwidth", not self.is_docless},
{"zoom_contentheight", not self.is_docless},
{"zoom_pagewidth", not self.is_docless},
@@ -1357,6 +1359,8 @@ function ReaderGesture:gestureAction(action, ges)
end
elseif action == "toggle_bookmark" then
self.ui:handleEvent(Event:new("ToggleBookmark"))
elseif action == "toggle_inverse_reading_order" then
self:onToggleReadingOrder()
elseif action == "toggle_frontlight" then
-- when using frontlight system settings
if lightFrontlight() then
@@ -1564,4 +1568,20 @@ function ReaderGesture:onGSensorToggle()
return true
end
function ReaderGesture:onToggleReadingOrder()
local document_module = self.ui.document.info.has_pages and self.ui.paging or self.ui.rolling
document_module.inverse_reading_order = not document_module.inverse_reading_order
document_module:setupTouchZones()
-- Needed to reset the touch zone overrides
local gesture_manager = G_reader_settings:readSetting(self.ges_mode)
for gesture, action in pairs(gesture_manager) do
self:setupGesture(gesture, action)
end
UIManager:show(Notification:new{
text = document_module.inverse_reading_order and _("RTL page turning.") or _("LTR page turning."),
timeout = 2.5,
})
return true
end
return ReaderGesture