MenuSorter: review comments and various bug fixes

* fixed wrongful retention of submenus variable and added return to MenuSorter:findById
* fixed readerfooter_spec.lua error
* fixed review comments
pull/2677/head
Frans de Jonge 7 years ago
parent aa0bf60ccb
commit b7b5950e98

@ -21,7 +21,7 @@ end
function FileManagerHistory:addToMainMenu(tab_item_table) function FileManagerHistory:addToMainMenu(tab_item_table)
-- insert table to main tab of filemanager menu -- insert table to main tab of filemanager menu
self.ui.menu.menu_items["history"] = { self.ui.menu.menu_items.history = {
text = self.hist_menu_title, text = self.hist_menu_title,
callback = function() callback = function()
self:onShowHist() self:onShowHist()

@ -21,21 +21,23 @@ local FileManagerMenu = InputContainer:extend{
} }
function FileManagerMenu:init() function FileManagerMenu:init()
self.menu_items["KOMenu:menu_buttons"] = { self.menu_items = {
-- top menu ["KOMenu:menu_buttons"] = {
} -- top menu
-- items in top menu },
self.menu_items["setting"] = { -- items in top menu
icon = "resources/icons/appbar.settings.png", setting = {
} icon = "resources/icons/appbar.settings.png",
self.menu_items["tools"] = { },
icon = "resources/icons/appbar.tools.png", tools = {
} icon = "resources/icons/appbar.tools.png",
self.menu_items["search"] = { },
icon = "resources/icons/appbar.magnify.browse.png", search = {
} icon = "resources/icons/appbar.magnify.browse.png",
self.menu_items["main"] = { },
icon = "resources/icons/menu-icon.png", main = {
icon = "resources/icons/menu-icon.png",
},
} }
self.registered_widgets = {} self.registered_widgets = {}
@ -69,18 +71,18 @@ function FileManagerMenu:setUpdateItemTable()
end end
-- setting tab -- setting tab
self.menu_items["show_hidden_files"] = { self.menu_items.show_hidden_files = {
text = _("Show hidden files"), text = _("Show hidden files"),
checked_func = function() return self.ui.file_chooser.show_hidden end, checked_func = function() return self.ui.file_chooser.show_hidden end,
callback = function() self.ui:toggleHiddenFiles() end callback = function() self.ui:toggleHiddenFiles() end
} }
self.menu_items["sort_by"] = self.ui:getSortingMenuTable() self.menu_items.sort_by = self.ui:getSortingMenuTable()
self.menu_items["reverse_sorting"] = { self.menu_items.reverse_sorting = {
text = _("Reverse sorting"), text = _("Reverse sorting"),
checked_func = function() return self.ui.file_chooser.reverse_collate end, checked_func = function() return self.ui.file_chooser.reverse_collate end,
callback = function() self.ui:toggleReverseCollate() end callback = function() self.ui:toggleReverseCollate() end
} }
self.menu_items["start_with_last_opened_file"] = { self.menu_items.start_with_last_opened_file = {
text = _("Start with last opened file"), text = _("Start with last opened file"),
checked_func = function() return checked_func = function() return
G_reader_settings:readSetting("open_last") G_reader_settings:readSetting("open_last")
@ -95,7 +97,7 @@ function FileManagerMenu:setUpdateItemTable()
end end
} }
if Device.isKobo() then if Device.isKobo() then
self.menu_items["screensaver"] = { self.menu_items.screensaver = {
text = _("Screensaver"), text = _("Screensaver"),
sub_item_table = { sub_item_table = {
{ {
@ -157,7 +159,7 @@ function FileManagerMenu:setUpdateItemTable()
end end
-- tools tab -- tools tab
self.menu_items["advanced_settings"] = { self.menu_items.advanced_settings = {
text = _("Advanced settings"), text = _("Advanced settings"),
callback = function() callback = function()
SetDefaults:ConfirmEdit() SetDefaults:ConfirmEdit()
@ -166,7 +168,7 @@ function FileManagerMenu:setUpdateItemTable()
SetDefaults:ConfirmSave() SetDefaults:ConfirmSave()
end, end,
} }
self.menu_items["opds_catalog"] = { self.menu_items.opds_catalog = {
text = _("OPDS catalog"), text = _("OPDS catalog"),
callback = function() callback = function()
local OPDSCatalog = require("apps/opdscatalog/opdscatalog") local OPDSCatalog = require("apps/opdscatalog/opdscatalog")
@ -178,7 +180,7 @@ function FileManagerMenu:setUpdateItemTable()
OPDSCatalog:showCatalog() OPDSCatalog:showCatalog()
end, end,
} }
self.menu_items["developer_options"] = { self.menu_items.developer_options = {
text = _("Developer options"), text = _("Developer options"),
sub_item_table = { sub_item_table = {
{ {
@ -208,7 +210,7 @@ function FileManagerMenu:setUpdateItemTable()
}, },
} }
} }
self.menu_items["cloud_storage"] = { self.menu_items.cloud_storage = {
text = _("Cloud storage"), text = _("Cloud storage"),
callback = function() callback = function()
local cloud_storage = CloudStorage:new{} local cloud_storage = CloudStorage:new{}
@ -222,14 +224,14 @@ function FileManagerMenu:setUpdateItemTable()
} }
-- search tab -- search tab
self.menu_items["find_book_in_calibre_catalog"] = { self.menu_items.find_book_in_calibre_catalog = {
text = _("Find a book in calibre catalog"), text = _("Find a book in calibre catalog"),
callback = function() callback = function()
Search:getCalibre() Search:getCalibre()
Search:ShowSearch() Search:ShowSearch()
end end
} }
self.menu_items["find_file"] = { self.menu_items.find_file = {
text = _("Find a file"), text = _("Find a file"),
callback = function() callback = function()
FileSearcher:init(self.ui.file_chooser.path) FileSearcher:init(self.ui.file_chooser.path)
@ -237,7 +239,7 @@ function FileManagerMenu:setUpdateItemTable()
} }
-- main menu tab -- main menu tab
self.menu_items["open_last_document"] = { self.menu_items.open_last_document = {
text = _("Open last document"), text = _("Open last document"),
enabled_func = function() enabled_func = function()
return G_reader_settings:readSetting("lastfile") ~= nil return G_reader_settings:readSetting("lastfile") ~= nil
@ -260,7 +262,7 @@ function FileManagerMenu:setUpdateItemTable()
for id, common_setting in pairs(require("ui/elements/common_info_menu_table")) do for id, common_setting in pairs(require("ui/elements/common_info_menu_table")) do
self.menu_items[id] = common_setting self.menu_items[id] = common_setting
end end
self.menu_items["exit"] = { self.menu_items.exit = {
text = _("Exit"), text = _("Exit"),
callback = function() callback = function()
if SetDefaults.settings_changed then if SetDefaults.settings_changed then

@ -45,7 +45,7 @@ end
function ReaderBookmark:addToMainMenu(tab_item_table) function ReaderBookmark:addToMainMenu(tab_item_table)
-- insert table to main reader menu -- insert table to main reader menu
self.ui.menu.menu_items["bookmarks"] = { self.ui.menu.menu_items.bookmarks = {
text = self.bm_menu_title, text = self.bm_menu_title,
callback = function() callback = function()
self:onShowBookmark() self:onShowBookmark()

@ -24,7 +24,7 @@ function ReaderDictionary:init()
end end
function ReaderDictionary:addToMainMenu(tab_item_table) function ReaderDictionary:addToMainMenu(tab_item_table)
self.ui.menu.menu_items["dictionary_lookup"] = { self.ui.menu.menu_items.dictionary_lookup = {
text = _("Dictionary lookup"), text = _("Dictionary lookup"),
tap_input = { tap_input = {
title = _("Enter a word to look up"), title = _("Enter a word to look up"),

@ -225,7 +225,7 @@ end
function ReaderFont:addToMainMenu(tab_item_table) function ReaderFont:addToMainMenu(tab_item_table)
-- insert table to main reader menu -- insert table to main reader menu
self.ui.menu.menu_items["change_font"] = { self.ui.menu.menu_items.change_font = {
text = self.font_menu_title, text = self.font_menu_title,
sub_item_table = self.face_table, sub_item_table = self.face_table,
} }

@ -325,7 +325,7 @@ local option_titles = {
function ReaderFooter:addToMainMenu(tab_item_table) function ReaderFooter:addToMainMenu(tab_item_table)
local sub_items = {} local sub_items = {}
self.ui.menu.menu_items["status_bar"] = { self.ui.menu.menu_items.status_bar = {
text = _("Status bar"), text = _("Status bar"),
sub_item_table = sub_items, sub_item_table = sub_items,
} }

@ -16,13 +16,13 @@ end
function ReaderGoto:addToMainMenu(tab_item_table) function ReaderGoto:addToMainMenu(tab_item_table)
-- insert goto command to main reader menu -- insert goto command to main reader menu
self.ui.menu.menu_items["go_to"] = { self.ui.menu.menu_items.go_to = {
text = self.goto_menu_title, text = self.goto_menu_title,
callback = function() callback = function()
self:onShowGotoDialog() self:onShowGotoDialog()
end, end,
} }
self.ui.menu.menu_items["skim_to"] = { self.ui.menu.menu_items.skim_to = {
text = self.skim_menu_title, text = self.skim_menu_title,
callback = function() callback = function()
self:onShowSkimtoDialog() self:onShowSkimtoDialog()

@ -66,7 +66,7 @@ end
function ReaderHighlight:addToMainMenu(tab_item_table) function ReaderHighlight:addToMainMenu(tab_item_table)
-- insert table to main reader menu -- insert table to main reader menu
self.ui.menu.menu_items["highlight_options"] = { self.ui.menu.menu_items.highlight_options = {
text = _("Highlight options"), text = _("Highlight options"),
sub_item_table = self:genHighlightDrawerMenu(), sub_item_table = self:genHighlightDrawerMenu(),
} }

@ -119,7 +119,7 @@ end
function ReaderHyphenation:addToMainMenu(tab_item_table) function ReaderHyphenation:addToMainMenu(tab_item_table)
-- insert table to main reader menu -- insert table to main reader menu
self.ui.menu.menu_items["hyphenation"] = { self.ui.menu.menu_items.hyphenation = {
text = self.hyph_menu_title, text = self.hyph_menu_title,
sub_item_table = self.hyph_table, sub_item_table = self.hyph_table,
} }

@ -69,7 +69,7 @@ end
function ReaderLink:addToMainMenu(tab_item_table) function ReaderLink:addToMainMenu(tab_item_table)
-- insert table to main reader menu -- insert table to main reader menu
self.ui.menu.menu_items["follow_links"] = { self.ui.menu.menu_items.follow_links = {
text = _("Follow links"), text = _("Follow links"),
sub_item_table = { sub_item_table = {
{ {

@ -14,46 +14,48 @@ local ReaderMenu = InputContainer:new{
} }
function ReaderMenu:init() function ReaderMenu:init()
self.menu_items["KOMenu:menu_buttons"] = { self.menu_items = {
-- top menu ["KOMenu:menu_buttons"] = {
} -- top menu
-- items in top menu },
self.menu_items["navi"] = { -- items in top menu
icon = "resources/icons/appbar.page.corner.bookmark.png", navi = {
} icon = "resources/icons/appbar.page.corner.bookmark.png",
self.menu_items["typeset"] = { },
icon = "resources/icons/appbar.page.text.png", typeset = {
} icon = "resources/icons/appbar.page.text.png",
self.menu_items["setting"] = { },
icon = "resources/icons/appbar.settings.png", setting = {
} icon = "resources/icons/appbar.settings.png",
self.menu_items["tools"] = { },
icon = "resources/icons/appbar.tools.png", tools = {
} icon = "resources/icons/appbar.tools.png",
self.menu_items["search"] = { },
icon = "resources/icons/appbar.magnify.browse.png", search = {
} icon = "resources/icons/appbar.magnify.browse.png",
self.menu_items["filemanager"] = { },
icon = "resources/icons/appbar.cabinet.files.png", filemanager = {
remember = false, icon = "resources/icons/appbar.cabinet.files.png",
callback = function() remember = false,
self:onTapCloseMenu() callback = function()
self.ui:onClose() self:onTapCloseMenu()
local FileManager = require("apps/filemanager/filemanager") self.ui:onClose()
local lastdir = nil local FileManager = require("apps/filemanager/filemanager")
local last_file = G_reader_settings:readSetting("lastfile") local lastdir = nil
if last_file then local last_file = G_reader_settings:readSetting("lastfile")
lastdir = last_file:match("(.*)/") if last_file then
end lastdir = last_file:match("(.*)/")
if FileManager.instance then end
FileManager.instance:reinit(lastdir) if FileManager.instance then
else FileManager.instance:reinit(lastdir)
FileManager:showFiles(lastdir) else
end FileManager:showFiles(lastdir)
end, end
} end,
self.menu_items["main"] = { },
icon = "resources/icons/menu-icon.png", main = {
icon = "resources/icons/menu-icon.png",
}
} }
self.registered_widgets = {} self.registered_widgets = {}
@ -103,7 +105,7 @@ function ReaderMenu:setUpdateItemTable()
-- insert DjVu render mode submenu just before the last entry (show advanced) -- insert DjVu render mode submenu just before the last entry (show advanced)
-- this is a bit of a hack -- this is a bit of a hack
if self.ui.document.is_djvu then if self.ui.document.is_djvu then
self.menu_items["djvu_render_mode"] = self.view:getRenderModeMenuTable() self.menu_items.djvu_render_mode = self.view:getRenderModeMenuTable()
end end
if Device:isKobo() and Screensaver:isUsingBookCover() then if Device:isKobo() and Screensaver:isUsingBookCover() then
@ -113,7 +115,7 @@ function ReaderMenu:setUpdateItemTable()
local proportional = function() local proportional = function()
return self.ui.doc_settings:readSetting("proportional_screensaver") or false return self.ui.doc_settings:readSetting("proportional_screensaver") or false
end end
self.menu_items["screensaver"] { self.menu_items.screensaver {
text = _("Screensaver"), text = _("Screensaver"),
sub_item_table = { sub_item_table = {
{ {
@ -151,7 +153,7 @@ function ReaderMenu:setUpdateItemTable()
self.menu_items[id] = common_setting self.menu_items[id] = common_setting
end end
self.menu_items["exit"] = { self.menu_items.exit = {
text = _("Exit"), text = _("Exit"),
callback = function() callback = function()
self:onTapCloseMenu() self:onTapCloseMenu()

@ -201,7 +201,7 @@ function ReaderPaging:addToMainMenu(tab_item_table)
for _, menu_entry in ipairs(self.view:genOverlapStyleMenu()) do for _, menu_entry in ipairs(self.view:genOverlapStyleMenu()) do
table.insert(page_overlap_menu, menu_entry) table.insert(page_overlap_menu, menu_entry)
end end
self.ui.menu.menu_items["page_overlap"] = { self.ui.menu.menu_items.page_overlap = {
text = _("Page overlap"), text = _("Page overlap"),
enabled_func = function() enabled_func = function()
return not self.view.page_scroll and self.zoom_mode ~= "page" return not self.view.page_scroll and self.zoom_mode ~= "page"
@ -209,7 +209,7 @@ function ReaderPaging:addToMainMenu(tab_item_table)
end, end,
sub_item_table = page_overlap_menu, sub_item_table = page_overlap_menu,
} }
self.ui.menu.menu_items["read_from_right_to_left"] = { self.ui.menu.menu_items.read_from_right_to_left = {
text = _("Read from right to left"), text = _("Read from right to left"),
checked_func = function() return self.inverse_reading_order end, checked_func = function() return self.inverse_reading_order end,
callback = function() callback = function()

@ -258,7 +258,7 @@ function ReaderRolling:addToMainMenu(tab_item_table)
for _, menu_entry in ipairs(self.view:genOverlapStyleMenu()) do for _, menu_entry in ipairs(self.view:genOverlapStyleMenu()) do
table.insert(page_overlap_menu, menu_entry) table.insert(page_overlap_menu, menu_entry)
end end
self.ui.menu.menu_items["page_overlap"] = { self.ui.menu.menu_items.page_overlap = {
text = _("Page overlap"), text = _("Page overlap"),
enabled_func = function() return self.view.view_mode ~= "page" end, enabled_func = function() return self.view.view_mode ~= "page" end,
sub_item_table = page_overlap_menu, sub_item_table = page_overlap_menu,

@ -14,7 +14,7 @@ function ReaderSearch:init()
end end
function ReaderSearch:addToMainMenu(tab_item_table) function ReaderSearch:addToMainMenu(tab_item_table)
self.ui.menu.menu_items["fulltext_search"] = { self.ui.menu.menu_items.fulltext_search = {
text = _("Fulltext search"), text = _("Fulltext search"),
tap_input = { tap_input = {
title = _("Input text to search for"), title = _("Input text to search for"),

@ -33,7 +33,7 @@ function ReaderStatus:init()
end end
function ReaderStatus:addToMainMenu(tab_item_table) function ReaderStatus:addToMainMenu(tab_item_table)
self.ui.menu.menu_items["book_status"] = { self.ui.menu.menu_items.book_status = {
text = _("Book status"), text = _("Book status"),
callback = function() callback = function()
self:showStatus() self:showStatus()

@ -436,7 +436,7 @@ end
function ReaderToc:addToMainMenu(tab_item_table) function ReaderToc:addToMainMenu(tab_item_table)
-- insert table to main reader menu -- insert table to main reader menu
self.ui.menu.menu_items["table_of_contents"] = { self.ui.menu.menu_items.table_of_contents = {
text = self.toc_menu_title, text = self.toc_menu_title,
callback = function() callback = function()
self:onShowToc() self:onShowToc()

@ -142,11 +142,11 @@ end
function ReaderTypeset:addToMainMenu(tab_item_table) function ReaderTypeset:addToMainMenu(tab_item_table)
-- insert table to main reader menu -- insert table to main reader menu
self.ui.menu.menu_items["set_render_style"] = { self.ui.menu.menu_items.set_render_style = {
text = self.css_menu_title, text = self.css_menu_title,
sub_item_table = self:genStyleSheetMenu(), sub_item_table = self:genStyleSheetMenu(),
} }
self.ui.menu.menu_items["floating_punctuation"] = { self.ui.menu.menu_items.floating_punctuation = {
text = _("Floating punctuation"), text = _("Floating punctuation"),
checked_func = function() return self.floating_punctuation == 1 end, checked_func = function() return self.floating_punctuation == 1 end,
callback = function() callback = function()

@ -49,7 +49,7 @@ function ReaderWikipedia:lookupInput()
end end
function ReaderWikipedia:addToMainMenu(tab_item_table) function ReaderWikipedia:addToMainMenu(tab_item_table)
self.ui.menu.menu_items["wikipedia_lookup"] = { self.ui.menu.menu_items.wikipedia_lookup = {
text = _("Wikipedia lookup"), text = _("Wikipedia lookup"),
callback = function() callback = function()
if NetworkMgr:isOnline() then if NetworkMgr:isOnline() then

@ -310,7 +310,7 @@ end
function ReaderZooming:addToMainMenu(tab_item_table) function ReaderZooming:addToMainMenu(tab_item_table)
if self.ui.document.info.has_pages then if self.ui.document.info.has_pages then
self.ui.menu.menu_items["switch_zoom_mode"] = { self.ui.menu.menu_items.switch_zoom_mode = {
text = _("Switch zoom mode"), text = _("Switch zoom mode"),
enabled_func = function() enabled_func = function()
return self.ui.document.configurable.text_wrap ~= 1 return self.ui.document.configurable.text_wrap ~= 1

@ -8,9 +8,9 @@ local common_info = {}
if Device:isKindle() or Device:isKobo() or Device:isPocketBook() if Device:isKindle() or Device:isKobo() or Device:isPocketBook()
or Device:isAndroid() then or Device:isAndroid() then
local OTAManager = require("ui/otamanager") local OTAManager = require("ui/otamanager")
common_info["ota_update"] = OTAManager:getOTAMenuTable() common_info.ota_update = OTAManager:getOTAMenuTable()
end end
common_info["version"] = { common_info.version = {
text = _("Version"), text = _("Version"),
callback = function() callback = function()
UIManager:show(InfoMessage:new{ UIManager:show(InfoMessage:new{
@ -18,7 +18,7 @@ common_info["version"] = {
}) })
end end
} }
common_info["help"] = { common_info.help = {
text = _("Help"), text = _("Help"),
callback = function() callback = function()
UIManager:show(InfoMessage:new{ UIManager:show(InfoMessage:new{

@ -9,7 +9,7 @@ local common_settings = {}
if Device:hasFrontlight() then if Device:hasFrontlight() then
local ReaderFrontLight = require("apps/reader/modules/readerfrontlight") local ReaderFrontLight = require("apps/reader/modules/readerfrontlight")
common_settings["frontlight"] = { common_settings.frontlight = {
text = _("Frontlight"), text = _("Frontlight"),
callback = function() callback = function()
ReaderFrontLight:onShowFlDialog() ReaderFrontLight:onShowFlDialog()
@ -17,7 +17,7 @@ if Device:hasFrontlight() then
} }
end end
common_settings["night_mode"] = { common_settings.night_mode = {
text = _("Night mode"), text = _("Night mode"),
checked_func = function() return G_reader_settings:readSetting("night_mode") end, checked_func = function() return G_reader_settings:readSetting("night_mode") end,
callback = function() callback = function()
@ -27,11 +27,11 @@ common_settings["night_mode"] = {
G_reader_settings:saveSetting("night_mode", not night_mode) G_reader_settings:saveSetting("night_mode", not night_mode)
end end
} }
common_settings["network"] = { common_settings.network = {
text = _("Network"), text = _("Network"),
sub_item_table = NetworkMgr:getMenuTable() sub_item_table = NetworkMgr:getMenuTable()
} }
common_settings["screen"] = { common_settings.screen = {
text = _("Screen"), text = _("Screen"),
sub_item_table = { sub_item_table = {
require("ui/elements/screen_dpi_menu_table"), require("ui/elements/screen_dpi_menu_table"),
@ -40,7 +40,7 @@ common_settings["screen"] = {
require("ui/elements/refresh_menu_table"), require("ui/elements/refresh_menu_table"),
}, },
} }
common_settings["save_document"] = { common_settings.save_document = {
text = _("Save document"), text = _("Save document"),
sub_item_table = { sub_item_table = {
{ {
@ -75,8 +75,8 @@ common_settings["save_document"] = {
}, },
}, },
} }
common_settings["language"] = Language:getLangMenuTable() common_settings.language = Language:getLangMenuTable()
common_settings["show_advanced_options"] = { common_settings.show_advanced_options = {
text = _("Show advanced options"), text = _("Show advanced options"),
checked_func = function() return G_reader_settings:readSetting("show_advanced") end, checked_func = function() return G_reader_settings:readSetting("show_advanced") end,
callback = function() callback = function()

@ -3,7 +3,6 @@ local DEBUG = require("dbg")
local MenuSorter = { local MenuSorter = {
menu_table = {}, menu_table = {},
sub_menus = {},
separator = { separator = {
text = "KOMenu:separator", text = "KOMenu:separator",
}, },
@ -60,7 +59,7 @@ DEBUG(item_table, order)
end end
function MenuSorter:magic(item_table, order) function MenuSorter:magic(item_table, order)
local tmp_menu_table = {} local sub_menus = {}
-- the actual sorting of menu items -- the actual sorting of menu items
for order_id, order_item in pairs (order) do for order_id, order_item in pairs (order) do
DEBUG("order_id",order_id) DEBUG("order_id",order_id)
@ -79,15 +78,13 @@ function MenuSorter:magic(item_table, order)
-- this is a submenu, mark it for later -- this is a submenu, mark it for later
if order[order_number_id] then if order[order_number_id] then
table.insert(self.sub_menus, order_number_id) table.insert(sub_menus, order_number_id)
self.menu_table[order_id][order_number] = { self.menu_table[order_id][order_number] = {
id = order_number_id, id = order_number_id,
--sub = true, --sub = true,
} }
-- regular, just insert a menu action -- regular, just insert a menu action
else else
--self.menu_table[order_id] = tmp_menu_table[order_id]
if order_number_id == "----------------------------" then if order_number_id == "----------------------------" then
-- it's a separator -- it's a separator
self.menu_table[order_id][order_number] = self.separator self.menu_table[order_id][order_number] = self.separator
@ -107,8 +104,8 @@ function MenuSorter:magic(item_table, order)
-- now do the submenus -- now do the submenus
DEBUG("SUBMENUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUS") DEBUG("SUBMENUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUS")
DEBUG("self.sub_menus", self.sub_menus) DEBUG("self.sub_menus", sub_menus)
for i,sub_menu in ipairs(self.sub_menus) do for i,sub_menu in ipairs(sub_menus) do
self.sub_menu_position = {} self.sub_menu_position = {}
self:findById(self.menu_table["KOMenu:menu_buttons"], sub_menu) self:findById(self.menu_table["KOMenu:menu_buttons"], sub_menu)
if self.sub_menu_position and self.sub_menu_position.id then if self.sub_menu_position and self.sub_menu_position.id then
@ -122,16 +119,19 @@ function MenuSorter:magic(item_table, order)
self.menu_table["KOMenu:menu_buttons"][i] = self.menu_table["KOMenu:menu_buttons"][i].sub_item_table self.menu_table["KOMenu:menu_buttons"][i] = self.menu_table["KOMenu:menu_buttons"][i].sub_item_table
end end
end end
function MenuSorter:findById(tbl, needle_id, result) function MenuSorter:findById(tbl, needle_id)
--DEBUG("TBL given",tbl) --DEBUG("TBL given",tbl)
for k,v in pairs(tbl) do for k,v in pairs(tbl) do
if #self.sub_menu_position == 1 then if #self.sub_menu_position == 1 then
break if self.sub_menu_position.id == needle_id then
return self.sub_menu_position
else
self.sub_menu_position = nil
end
end end
--DEBUG("FINDBYID:", needle_id, "current:", k,v) --DEBUG("FINDBYID:", needle_id, "current:", k,v)
@ -139,7 +139,7 @@ function MenuSorter:findById(tbl, needle_id, result)
if v.id == needle_id then if v.id == needle_id then
DEBUG("FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT ", v.id) DEBUG("FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT FOUND IT ", v.id)
self.sub_menu_position = v self.sub_menu_position = v
break return self.sub_menu_position
elseif type(v) == "table" and v.id then elseif type(v) == "table" and v.id then
DEBUG("GOING DEEPER", v.id) DEBUG("GOING DEEPER", v.id)
self:findById(v, needle_id) self:findById(v, needle_id)

@ -1,31 +1,31 @@
describe("Readerfooter module", function() describe("Readerfooter module", function()
local DocumentRegistry, ReaderUI, DocSettings, UIManager, DEBUG local DocumentRegistry, ReaderUI, MenuSorter, DocSettings, UIManager, DEBUG
local purgeDir, Screen local purgeDir, Screen
local function tapFooterMenu(menu_tab_items, menu_title)
for _, item in ipairs(menu_tab_items.setting) do
if item.text == "Status bar" then
for _, subitem in ipairs(item.sub_item_table) do
if subitem.text == menu_title then
subitem.callback()
return
end
end
error('Menu item not found: "' .. menu_title .. '"!')
end
end
error('Menu item not found: "Status bar"!')
end
setup(function() setup(function()
require("commonrequire") require("commonrequire")
DocumentRegistry = require("document/documentregistry") DocumentRegistry = require("document/documentregistry")
ReaderUI = require("apps/reader/readerui") ReaderUI = require("apps/reader/readerui")
DocSettings = require("docsettings") ReaderUI = require("apps/reader/readerui")
UIManager = require("ui/uimanager") UIManager = require("ui/uimanager")
MenuSorter = require("ui/menusorter")
DEBUG = require("dbg") DEBUG = require("dbg")
purgeDir = require("ffi/util").purgeDir purgeDir = require("ffi/util").purgeDir
Screen = require("device").screen Screen = require("device").screen
function tapFooterMenu(menu_tab_items, menu_title)
local status_bar = MenuSorter:findById(menu_tab_items, "status_bar") or nil
if status_bar then
for _, subitem in ipairs(status_bar) do
if subitem.text == menu_title then
subitem.callback()
return
end
end
error('Menu item not found: "' .. menu_title .. '"!')
end
error('Menu item not found: "Status bar"!')
end
end) end)
before_each(function() before_each(function()

Loading…
Cancel
Save