MenuSorter: handle disabled

pull/2677/head
Frans de Jonge 7 years ago
parent 8f31a81601
commit 653ff64438

@ -151,7 +151,18 @@ function MenuSorter:magic(item_table, order)
for i,top_menu in ipairs(self.menu_table["KOMenu:menu_buttons"]) do
self.menu_table["KOMenu:menu_buttons"][i] = self.menu_table["KOMenu:menu_buttons"][i].sub_item_table
end
-- handle disabled
DEBUG("MenuSorter: order.KOMenu_disabled", order.KOMenu_disabled)
if order.KOMenu__disabled then
for _,item in ipairs(order.KOMenu_disabled) do
if item_table[item] then
-- remove reference from input so it won't show up as orphaned
item_table[item] = nil
end
end
end
-- remove top level reference before orphan handling
item_table["KOMenu:menu_buttons"] = nil
--attach orphans based on menu_hint

@ -14,8 +14,8 @@ describe("Readerfooter module", function()
purgeDir = require("ffi/util").purgeDir
Screen = require("device").screen
function tapFooterMenu(menu_tab_items, menu_title)
local status_bar = MenuSorter:findById(menu_tab_items, "status_bar") or nil
function tapFooterMenu(menu_items, menu_title)
local status_bar = menu_items.status_bar
if status_bar then
for _, subitem in ipairs(status_bar.sub_item_table) do
@ -172,17 +172,9 @@ describe("Readerfooter module", function()
local readerui = ReaderUI:new{
document = DocumentRegistry:openDocument(sample_pdf),
}
local fake_menu = {
["KOMenu:menu_buttons"] = {},
setting = {}
}
local fake_menu = {setting = {}}
local footer = readerui.view.footer
footer:addToMainMenu(fake_menu)
local fake_order = {
["KOMenu:menu_buttons"] = {"setting"},
["setting"] = {"status_bar"},
}
fake_menu = MenuSorter:sort(fake_menu, fake_order)
footer:resetLayout()
footer:updateFooter()
local timeinfo = footer.textGeneratorMap.time()
@ -462,17 +454,16 @@ describe("Readerfooter module", function()
footer:addToMainMenu(fake_menu)
local has_toggle_menu = false
for _, item in ipairs(fake_menu.setting) do
if item.text == "Status bar" then
for _, subitem in ipairs(item.sub_item_table) do
if subitem.text == 'Toggle mode' then
has_toggle_menu = true
break
end
if fake_menu.status_bar then
for _, subitem in ipairs(fake_menu.status_bar.sub_item_table) do
if subitem.text == 'Toggle mode' then
has_toggle_menu = true
break
end
break
end
end
assert.is.truthy(has_toggle_menu)
assert.is.same(1, footer.mode)

Loading…
Cancel
Save