From 2f9386cd69e9f9a52c39e3a6aad22166a39e075e Mon Sep 17 00:00:00 2001 From: Hans-Werner Hilse Date: Fri, 28 Nov 2014 18:53:48 +0000 Subject: [PATCH] move refresh menu table out of UIManager no need to clutter a core file of the whole UI concept with definitions of UI elements --- .../elements/common_settings_menu_table.lua | 3 +- frontend/ui/elements/refresh_menu_table.lua | 71 +++++++++++++++++++ frontend/ui/uimanager.lua | 66 ----------------- 3 files changed, 73 insertions(+), 67 deletions(-) create mode 100644 frontend/ui/elements/refresh_menu_table.lua diff --git a/frontend/ui/elements/common_settings_menu_table.lua b/frontend/ui/elements/common_settings_menu_table.lua index f47859400..85b252203 100644 --- a/frontend/ui/elements/common_settings_menu_table.lua +++ b/frontend/ui/elements/common_settings_menu_table.lua @@ -16,6 +16,7 @@ if Device:hasFrontlight() then end, }) end + table.insert(common_settings, { text = _("Night mode"), checked_func = function() return G_reader_settings:readSetting("night_mode") end, @@ -37,7 +38,7 @@ table.insert(common_settings, { sub_item_table = { require("ui/elements/screen_dpi_menu_table"), require("ui/elements/screen_eink_opt_menu_table"), - UIManager:getRefreshMenuTable(), + require("ui/elements/refresh_menu_table"), }, }) table.insert(common_settings, Language:getLangMenuTable()) diff --git a/frontend/ui/elements/refresh_menu_table.lua b/frontend/ui/elements/refresh_menu_table.lua new file mode 100644 index 000000000..f12f2f187 --- /dev/null +++ b/frontend/ui/elements/refresh_menu_table.lua @@ -0,0 +1,71 @@ +local UIManager = require("ui/uimanager") +local util = require("ffi/util") +local _ = require("gettext") + +local function custom_1() return G_reader_settings:readSetting("refresh_rate_1") or 12 end + +local function custom_2() return G_reader_settings:readSetting("refresh_rate_2") or 22 end + +local function custom_3() return G_reader_settings:readSetting("refresh_rate_3") or 99 end + +local function custom_input(name) + return { + title = _("Input page number for a full refresh"), + type = "number", + hint = "(1 - 99)", + callback = function(input) + local rate = tonumber(input) + G_reader_settings:saveSetting(name, rate) + UIManager:setRefreshRate(rate) + end, + } +end + +return { + text = _("E-ink full refresh rate"), + sub_item_table = { + { + text = _("Every page"), + checked_func = function() return UIManager:getRefreshRate() == 1 end, + callback = function() UIManager:setRefreshRate(1) end, + }, + { + text = _("Every 6 pages"), + checked_func = function() return UIManager:getRefreshRate() == 6 end, + callback = function() UIManager:setRefreshRate(6) end, + }, + { + text_func = function() + return util.template( + _("Custom 1: %1 pages"), + custom_1() + ) + end, + checked_func = function() return UIManager:getRefreshRate() == custom_1() end, + callback = function() UIManager:setRefreshRate(custom_1()) end, + hold_input = custom_input("refresh_rate_1") + }, + { + text_func = function() + return util.template( + _("Custom 2: %1 pages"), + custom_2() + ) + end, + checked_func = function() return UIManager:getRefreshRate() == custom_2() end, + callback = function() UIManager:setRefreshRate(custom_2()) end, + hold_input = custom_input("refresh_rate_2") + }, + { + text_func = function() + return util.template( + _("Custom 3: %1 pages"), + custom_3() + ) + end, + checked_func = function() return UIManager:getRefreshRate() == custom_3() end, + callback = function() UIManager:setRefreshRate(custom_3()) end, + hold_input = custom_input("refresh_rate_3") + }, + } +} diff --git a/frontend/ui/uimanager.lua b/frontend/ui/uimanager.lua index 789a0a0bb..beefb6fe9 100644 --- a/frontend/ui/uimanager.lua +++ b/frontend/ui/uimanager.lua @@ -431,72 +431,6 @@ function UIManager:run() end end -function UIManager:getRefreshMenuTable() - local function custom_1() return G_reader_settings:readSetting("refresh_rate_1") or 12 end - local function custom_2() return G_reader_settings:readSetting("refresh_rate_2") or 22 end - local function custom_3() return G_reader_settings:readSetting("refresh_rate_3") or 99 end - local function custom_input(name) - return { - title = _("Input page number for a full refresh"), - type = "number", - hint = "(1 - 99)", - callback = function(input) - local rate = tonumber(input) - G_reader_settings:saveSetting(name, rate) - UIManager:setRefreshRate(rate) - end, - } - end - return { - text = _("E-ink full refresh rate"), - sub_item_table = { - { - text = _("Every page"), - checked_func = function() return UIManager:getRefreshRate() == 1 end, - callback = function() UIManager:setRefreshRate(1) end, - }, - { - text = _("Every 6 pages"), - checked_func = function() return UIManager:getRefreshRate() == 6 end, - callback = function() UIManager:setRefreshRate(6) end, - }, - { - text_func = function() - return util.template( - _("Custom 1: %1 pages"), - custom_1() - ) - end, - checked_func = function() return UIManager:getRefreshRate() == custom_1() end, - callback = function() UIManager:setRefreshRate(custom_1()) end, - hold_input = custom_input("refresh_rate_1") - }, - { - text_func = function() - return util.template( - _("Custom 2: %1 pages"), - custom_2() - ) - end, - checked_func = function() return UIManager:getRefreshRate() == custom_2() end, - callback = function() UIManager:setRefreshRate(custom_2()) end, - hold_input = custom_input("refresh_rate_2") - }, - { - text_func = function() - return util.template( - _("Custom 3: %1 pages"), - custom_3() - ) - end, - checked_func = function() return UIManager:getRefreshRate() == custom_3() end, - callback = function() UIManager:setRefreshRate(custom_3()) end, - hold_input = custom_input("refresh_rate_3") - }, - } - } -end - UIManager:init() return UIManager