mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
[feat] Dispatcher: Add 'Set page-turn button inversion' (#13836)
Currently you can only toggle page turn buttons to inverted or not. This commit adds the ability to also have an option in dispatcher to set the value instead of just toggling. This can be useful for profiles that want to set the value rather then toggle.
This commit is contained in:
@@ -5,6 +5,7 @@ local Notification = require("ui/widget/notification")
|
||||
local Screen = Device.screen
|
||||
local UIManager = require("ui/uimanager")
|
||||
local bit = require("bit")
|
||||
local logger = require("logger")
|
||||
local _ = require("gettext")
|
||||
local T = require("ffi/util").template
|
||||
|
||||
@@ -342,8 +343,7 @@ function DeviceListener:onSwapPageTurnButtons(side)
|
||||
if side == "left" then
|
||||
-- Revert any prior global inversions first, as we could end up with an all greyed out menu.
|
||||
if G_reader_settings:isTrue("input_invert_page_turn_keys") then
|
||||
G_reader_settings:makeFalse("input_invert_page_turn_keys")
|
||||
Device:invertButtons()
|
||||
self:setPageTurnButtonDirection(true)
|
||||
end
|
||||
G_reader_settings:flipNilOrFalse("input_invert_left_page_turn_keys")
|
||||
Device:invertButtonsLeft()
|
||||
@@ -355,8 +355,7 @@ function DeviceListener:onSwapPageTurnButtons(side)
|
||||
elseif side == "right" then
|
||||
-- Revert any prior global inversions first, as we could end up with an all greyed out menu.
|
||||
if G_reader_settings:isTrue("input_invert_page_turn_keys") then
|
||||
G_reader_settings:makeFalse("input_invert_page_turn_keys")
|
||||
Device:invertButtons()
|
||||
self:setPageTurnButtonDirection(true)
|
||||
end
|
||||
G_reader_settings:flipNilOrFalse("input_invert_right_page_turn_keys")
|
||||
Device:invertButtonsRight()
|
||||
@@ -370,8 +369,7 @@ function DeviceListener:onSwapPageTurnButtons(side)
|
||||
if G_reader_settings:isTrue("input_invert_left_page_turn_keys") and G_reader_settings:isTrue("input_invert_right_page_turn_keys") then
|
||||
G_reader_settings:makeFalse("input_invert_left_page_turn_keys")
|
||||
G_reader_settings:makeFalse("input_invert_right_page_turn_keys")
|
||||
G_reader_settings:makeFalse("input_invert_page_turn_keys")
|
||||
Device:invertButtons()
|
||||
self:setPageTurnButtonDirection(true)
|
||||
new_text = _("Page-turn buttons no longer inverted.")
|
||||
Notification:notify(new_text)
|
||||
return true
|
||||
@@ -394,6 +392,35 @@ function DeviceListener:onSwapPageTurnButtons(side)
|
||||
return true
|
||||
end
|
||||
|
||||
-- @param invert bool if the page turn buttons should be set to inverted or not
|
||||
function DeviceListener:setPageTurnButtonDirection(invert)
|
||||
local setting = G_reader_settings:readSetting("input_invert_page_turn_keys")
|
||||
if invert == setting then
|
||||
return
|
||||
end
|
||||
G_reader_settings:saveSetting("input_invert_page_turn_keys", invert)
|
||||
Device:invertButtons()
|
||||
end
|
||||
|
||||
-- @param invert bool if the page turn buttons should be set to inverted or not
|
||||
function DeviceListener:onSetPageTurnButtonDirection(invert)
|
||||
local setting = G_reader_settings:readSetting("input_invert_page_turn_keys")
|
||||
logger.dbg("DeviceListener:onSetPageTurnButtonDirection", invert, setting)
|
||||
if invert == setting then
|
||||
logger.dbg("DeviceListener:onSetPageTurnButtonDirection", "not toggling page turn buttons")
|
||||
return
|
||||
end
|
||||
logger.dbg("DeviceListener:onSetPageTurnButtonDirection", "toggling page turn buttons")
|
||||
self:setPageTurnButtonDirection(invert)
|
||||
local text
|
||||
if invert then
|
||||
text = _("Page-turn buttons inverted.")
|
||||
else
|
||||
text = _("Page-turn buttons no longer inverted.")
|
||||
end
|
||||
Notification:notify(text)
|
||||
end
|
||||
|
||||
function DeviceListener:onToggleKeyRepeat(toggle)
|
||||
if toggle == true then
|
||||
G_reader_settings:makeFalse("input_no_key_repeat")
|
||||
|
||||
@@ -86,7 +86,8 @@ local settingsList = {
|
||||
----
|
||||
swap_left_page_turn_buttons = {category="none", event="SwapPageTurnButtons", arg="left", title=_("Invert left-side page-turn buttons"), device=true, condition= Device:hasDPad() and Device:useDPadAsActionKeys()},
|
||||
swap_right_page_turn_buttons = {category="none", event="SwapPageTurnButtons", arg="right", title=_("Invert right-side page-turn buttons"), device=true, condition= Device:hasDPad() and Device:useDPadAsActionKeys()},
|
||||
swap_page_turn_buttons = {category="none", event="SwapPageTurnButtons", title=_("Invert page-turn buttons"), device=true, condition=Device:hasKeys(), separator=true},
|
||||
swap_page_turn_buttons = {category="none", event="SwapPageTurnButtons", title=_("Invert page-turn buttons"), device=true, condition=Device:hasKeys()},
|
||||
set_page_turn_buttons = {category="string", event="SetPageTurnButtonDirection", title=_("Set page-turn button inversion"), device=true, condition=Device:hasKeys(), args = {true, false}, toggle = { _("on"), _("off")}, separator=true},
|
||||
----
|
||||
toggle_key_repeat = {category="none", event="ToggleKeyRepeat", title=_("Toggle key repeat"), device=true, condition=Device:hasKeys() and Device:canKeyRepeat(), separator=true},
|
||||
toggle_gsensor = {category="none", event="ToggleGSensor", title=_("Toggle accelerometer"), device=true, condition=Device:hasGSensor()},
|
||||
@@ -323,9 +324,10 @@ local dispatcher_menu_order = {
|
||||
"touch_input_off",
|
||||
"toggle_touch_input",
|
||||
----
|
||||
"swap_page_turn_buttons",
|
||||
"swap_left_page_turn_buttons",
|
||||
"swap_right_page_turn_buttons",
|
||||
"swap_page_turn_buttons",
|
||||
"set_page_turn_buttons",
|
||||
----
|
||||
"toggle_key_repeat",
|
||||
"toggle_gsensor",
|
||||
|
||||
Reference in New Issue
Block a user