Refactored menu

While looking into #1219 I accidentally ended up refactoring some stuff.

Tested in emulator and on H2O, but be wary because I might have overlooked something.
pull/1225/head
Frans de Jonge 10 years ago
parent d649ce269b
commit da00b4b8a9

@ -1,18 +1,13 @@
local CenterContainer = require("ui/widget/container/centercontainer")
local InputContainer = require("ui/widget/container/inputcontainer")
local ConfirmBox = require("ui/widget/confirmbox")
local InfoMessage = require("ui/widget/infomessage")
local NetworkMgr = require("ui/networkmgr")
local OTAManager = require("ui/otamanager")
local UIManager = require("ui/uimanager")
local Device = require("device")
local GestureRange = require("ui/gesturerange")
local Geom = require("ui/geometry")
local Screen = require("device").screen
local Language = require("ui/language")
local DEBUG = require("dbg")
local _ = require("gettext")
local ReaderFrontLight = require("apps/reader/modules/readerfrontlight")
local FileSearcher = require("apps/filemanager/filemanagerfilesearcher")
local Search = require("apps/filemanager/filemanagersearch")
local SetDefaults = require("apps/filemanager/filemanagersetdefaults")
@ -116,56 +111,20 @@ function FileManagerMenu:setUpdateItemTable()
G_reader_settings:saveSetting("open_last", not open_last)
end
})
if Device:hasFrontlight() then
ReaderFrontLight:addToMainMenu(self.tab_item_table)
-- insert common settings
for i, common_setting in ipairs(require("ui/elements/common_settings_menu_table")) do
table.insert(self.tab_item_table.setting, common_setting)
end
table.insert(self.tab_item_table.setting, {
text = _("Screen settings"),
sub_item_table = {
require("ui/elements/screen_dpi_menu_table"),
UIManager:getRefreshMenuTable(),
},
})
table.insert(self.tab_item_table.setting, {
text = _("Network settings"),
sub_item_table = {
NetworkMgr:getWifiMenuTable(),
NetworkMgr:getProxyMenuTable(),
}
})
table.insert(self.tab_item_table.setting, {
text = _("Night mode"),
checked_func = function() return G_reader_settings:readSetting("night_mode") end,
callback = function()
local night_mode = G_reader_settings:readSetting("night_mode") or false
Screen:toggleNightMode()
G_reader_settings:saveSetting("night_mode", not night_mode)
end
})
table.insert(self.tab_item_table.setting, Language:getLangMenuTable())
-- info tab
if Device:isKindle() or Device:isKobo() then
table.insert(self.tab_item_table.info, OTAManager:getOTAMenuTable())
-- insert common info
for i, common_setting in ipairs(require("ui/elements/common_info_menu_table")) do
table.insert(self.tab_item_table.info, common_setting)
end
table.insert(self.tab_item_table.info, {
text = _("Version"),
callback = function()
UIManager:show(InfoMessage:new{
text = io.open("git-rev", "r"):read(),
})
end
})
table.insert(self.tab_item_table.info, {
text = _("Help"),
callback = function()
UIManager:show(InfoMessage:new{
text = _("Please report bugs to \nhttps://github.com/koreader/koreader/issues"),
})
end
})
-- tools tab
table.insert(self.tab_item_table.tools, {
text = _("Set defaults"),
text = _("Change defaults file"),
callback = function()
SetDefaults:ConfirmEdit()
end,

@ -34,7 +34,6 @@ function ReaderFrontLight:init()
}
},
}
self.ui.menu:registerToMainMenu(self)
end
end
@ -79,20 +78,10 @@ function ReaderFrontLight:onPanRelease(arg, ges)
return self:onShowIntensity()
end
function ReaderFrontLight:addToMainMenu(tab_item_table)
-- insert fldial command to setting tab of reader menu
table.insert(tab_item_table.setting, {
text = _("Frontlight settings"),
callback = function()
self:onShowFlDialog()
end,
})
end
function ReaderFrontLight:onShowFlDialog()
local powerd = Device:getPowerDevice()
self.fl_dialog = InputDialog:new{
title = _("Frontlight Level"),
title = _("Frontlight level"),
input_hint = ("(%d - %d)"):format(powerd.fl_min, powerd.fl_max),
buttons = {
{

@ -4,14 +4,11 @@ local InfoMessage = require("ui/widget/infomessage")
local InputDialog = require("ui/widget/inputdialog")
local ConfirmBox = require("ui/widget/confirmbox")
local GestureRange = require("ui/gesturerange")
local NetworkMgr = require("ui/networkmgr")
local OTAManager = require("ui/otamanager")
local UIManager = require("ui/uimanager")
local Device = require("device")
local Geom = require("ui/geometry")
local Event = require("ui/event")
local Screen = require("device").screen
local Language = require("ui/language")
local DEBUG = require("dbg")
local _ = require("gettext")
@ -93,64 +90,25 @@ function ReaderMenu:setUpdateItemTable()
widget:addToMainMenu(self.tab_item_table)
end
-- setting tab
table.insert(self.tab_item_table.setting, {
text = _("Screen settings"),
sub_item_table = {
require("ui/elements/screen_dpi_menu_table"),
require("ui/elements/screen_eink_opt_menu_table"),
UIManager:getRefreshMenuTable(),
},
})
table.insert(self.tab_item_table.setting, {
text = _("Network settings"),
sub_item_table = {
NetworkMgr:getWifiMenuTable(),
NetworkMgr:getProxyMenuTable(),
}
})
table.insert(self.tab_item_table.setting, {
text = _("Night mode"),
checked_func = function() return G_reader_settings:readSetting("night_mode") end,
callback = function()
local night_mode = G_reader_settings:readSetting("night_mode") or false
Screen:toggleNightMode()
G_reader_settings:saveSetting("night_mode", not night_mode)
end
})
table.insert(self.tab_item_table.setting, Language:getLangMenuTable())
-- settings tab
-- insert common settings
for i, common_setting in ipairs(require("ui/elements/common_settings_menu_table")) do
table.insert(self.tab_item_table.setting, common_setting)
end
-- insert DjVu render mode submenu just before the last entry (show advanced)
-- this is a bit of a hack
if self.ui.document.is_djvu then
table.insert(self.tab_item_table.setting, self.view:getRenderModeMenuTable())
table.insert(
self.tab_item_table.setting,
#self.tab_item_table.setting,
self.view:getRenderModeMenuTable())
end
table.insert(self.tab_item_table.setting, {
text = _("Show advanced options"),
checked_func = function() return G_reader_settings:readSetting("show_advanced") end,
callback = function()
local show_advanced = G_reader_settings:readSetting("show_advanced") or false
G_reader_settings:saveSetting("show_advanced", not show_advanced)
end
})
-- info tab
if Device:isKindle() or Device:isKobo() then
table.insert(self.tab_item_table.info, OTAManager:getOTAMenuTable())
-- insert common info
for i, common_setting in ipairs(require("ui/elements/common_info_menu_table")) do
table.insert(self.tab_item_table.info, common_setting)
end
table.insert(self.tab_item_table.info, {
text = _("Version"),
callback = function()
UIManager:show(InfoMessage:new{
text = io.open("git-rev", "r"):read(),
})
end
})
table.insert(self.tab_item_table.info, {
text = _("Help"),
callback = function()
UIManager:show(InfoMessage:new{
text = _("Please report bugs to \nhttps://github.com/koreader/koreader/issues"),
})
end
})
if Device:isKobo() and KOBO_SCREEN_SAVER_LAST_BOOK then
local excluded = function()

@ -0,0 +1,29 @@
local Device = require("device")
local InfoMessage = require("ui/widget/infomessage")
local UIManager = require("ui/uimanager")
local _ = require("gettext")
local common_info = {}
if Device:isKindle() or Device:isKobo() then
local OTAManager = require("ui/otamanager")
table.insert(common_info, OTAManager:getOTAMenuTable())
end
table.insert(common_info, {
text = _("Version"),
callback = function()
UIManager:show(InfoMessage:new{
text = io.open("git-rev", "r"):read(),
})
end
})
table.insert(common_info, {
text = _("Help"),
callback = function()
UIManager:show(InfoMessage:new{
text = _("Please report bugs to \nhttps://github.com/koreader/koreader/issues"),
})
end
})
return common_info

@ -0,0 +1,53 @@
local Device = require("device")
local Language = require("ui/language")
local NetworkMgr = require("ui/networkmgr")
local UIManager = require("ui/uimanager")
local Screen = require("device").screen
local _ = require("gettext")
local common_settings = {}
if Device:hasFrontlight() then
local ReaderFrontLight = require("apps/reader/modules/readerfrontlight")
table.insert(common_settings, {
text = _("Frontlight"),
callback = function()
ReaderFrontLight:onShowFlDialog()
end,
})
end
table.insert(common_settings, {
text = _("Night mode"),
checked_func = function() return G_reader_settings:readSetting("night_mode") end,
callback = function()
local night_mode = G_reader_settings:readSetting("night_mode") or false
Screen:toggleNightMode()
G_reader_settings:saveSetting("night_mode", not night_mode)
end
})
table.insert(common_settings, {
text = _("Network"),
sub_item_table = {
NetworkMgr:getWifiMenuTable(),
NetworkMgr:getProxyMenuTable(),
}
})
table.insert(common_settings, {
text = _("Screen"),
sub_item_table = {
require("ui/elements/screen_dpi_menu_table"),
require("ui/elements/screen_eink_opt_menu_table"),
UIManager:getRefreshMenuTable(),
},
})
table.insert(common_settings, Language:getLangMenuTable())
table.insert(common_settings, {
text = _("Show advanced options"),
checked_func = function() return G_reader_settings:readSetting("show_advanced") end,
callback = function()
local show_advanced = G_reader_settings:readSetting("show_advanced") or false
G_reader_settings:saveSetting("show_advanced", not show_advanced)
end
})
return common_settings
Loading…
Cancel
Save