mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
[UX] Add inverse reading order to gesture manager (#5423)
Also fixes #5354.
This commit is contained in:
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
|
||||
|
||||
Reference in New Issue
Block a user