mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
MenuSorter: handle disabled
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user