Skip to content

Commit

Permalink
[UX] Allow keyboard layout selection
Browse files Browse the repository at this point in the history
Fixes <#3998>.

This is an unpolished quickie but I've been letting this slip for too
long due to fancier keyboard interaction concepts.
  • Loading branch information
Frenzie committed Sep 4, 2019
1 parent cb2a3d9 commit 8860d5b
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 11 deletions.
4 changes: 4 additions & 0 deletions frontend/ui/elements/common_settings_menu_table.lua
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,10 @@ if Device:isAndroid() then
end

if Device:isTouchDevice() then
common_settings.keyboard_layout = {
text = _("Keyboard layout"),
sub_item_table = require("ui/elements/menu_keyboard_layout"),
}
common_settings.taps_and_gestures = {
text = _("Taps and gestures"),
}
Expand Down
19 changes: 19 additions & 0 deletions frontend/ui/elements/menu_keyboard_layout.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
local VirtualKeyboard = require("ui/widget/virtualkeyboard")
--local _ = require("gettext")

local keyboard_layout = G_reader_settings:readSetting("keyboard_layout")
local sub_item_table = {}

for k, _ in pairs(VirtualKeyboard.lang_to_keyboard_layout) do
table.insert(sub_item_table, {
text = k,
checked_func = function()
return G_reader_settings:readSetting("keyboard_layout") == k
end,
callback = function()
G_reader_settings:saveSetting("keyboard_layout", k)
end,
})
end

return sub_item_table
1 change: 1 addition & 0 deletions frontend/ui/elements/reader_menu_order.lua
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ local order = {
"status_bar",
},
device = {
"keyboard_layout",
"time",
"battery",
"autosuspend",
Expand Down
22 changes: 11 additions & 11 deletions frontend/ui/widget/virtualkeyboard.lua
Original file line number Diff line number Diff line change
Expand Up @@ -517,21 +517,21 @@ local VirtualKeyboard = FocusManager:new{
bordersize = Size.border.default,
padding = Size.padding.small,
key_padding = Size.padding.default,
}

local lang_to_keyboard_layout = {
el = "el_keyboard",
en = "en_keyboard",
es = "es_keyboard",
fr = "fr_keyboard",
ja = "ja_keyboard",
pt_BR = "pt_keyboard",
ko_KR = "ko_KR_keyboard",
lang_to_keyboard_layout = {
el = "el_keyboard",
en = "en_keyboard",
es = "es_keyboard",
fr = "fr_keyboard",
ja = "ja_keyboard",
pt_BR = "pt_keyboard",
ko_KR = "ko_KR_keyboard",
},
}

function VirtualKeyboard:init()
local lang = G_reader_settings:readSetting("language")
local keyboard_layout = lang_to_keyboard_layout[lang] or lang_to_keyboard_layout["en"]
local lang = G_reader_settings:readSetting("keyboard_layout") or G_reader_settings:readSetting("language")
local keyboard_layout = self.lang_to_keyboard_layout[lang] or self.lang_to_keyboard_layout["en"]
local keyboard = require("ui/data/keyboardlayouts/" .. keyboard_layout)
self.KEYS = keyboard.keys
self.shiftmode_keys = keyboard.shiftmode_keys
Expand Down

0 comments on commit 8860d5b

Please sign in to comment.