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

Also fixes #5354.
pull/5427/head
yparitcher 5 years ago committed by Frans de Jonge
parent 67abf9a26a
commit 09d49e29ad

@ -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

@ -241,8 +241,7 @@ function ReaderPaging:addToMainMenu(menu_items)
text = _("Invert page turn taps and swipes"),
checked_func = function() return self.inverse_reading_order end,
callback = function()
self.inverse_reading_order = not self.inverse_reading_order
self:setupTapTouchZones()
self.ui:handleEvent(Event:new("ToggleReadingOrder"))
end,
hold_callback = function(touchmenu_instance)
UIManager:show(ConfirmBox:new{

@ -367,8 +367,7 @@ function ReaderRolling:addToMainMenu(menu_items)
text = _("Invert page turn taps and swipes"),
checked_func = function() return self.inverse_reading_order end,
callback = function()
self.inverse_reading_order = not self.inverse_reading_order
self:setupTouchZones()
self.ui:handleEvent(Event:new("ToggleReadingOrder"))
end,
hold_callback = function(touchmenu_instance)
UIManager:show(ConfirmBox:new{

Loading…
Cancel
Save