diff --git a/frontend/apps/filemanager/filemanagermenu.lua b/frontend/apps/filemanager/filemanagermenu.lua index eed7cc72e..d820c29d4 100644 --- a/frontend/apps/filemanager/filemanagermenu.lua +++ b/frontend/apps/filemanager/filemanagermenu.lua @@ -251,6 +251,18 @@ function FileManagerMenu:setUpdateItemTable() self:exitOrRestart(function() UIManager:restartKOReader() end) end, } + if not Device:isTouchDevice() then + --add a shortcut on non touch-device + --because this menu is not accessible otherwise + self.menu_items.plus_menu = { + icon = "resources/icons/appbar.plus.png", + remember = false, + callback = function() + self:onCloseFileManagerMenu() + self.ui:tapPlus() + end, + } + end local order = require("ui/elements/filemanager_menu_order") diff --git a/frontend/ui/elements/filemanager_menu_order.lua b/frontend/ui/elements/filemanager_menu_order.lua index 263508e8e..d3b0d7ca6 100644 --- a/frontend/ui/elements/filemanager_menu_order.lua +++ b/frontend/ui/elements/filemanager_menu_order.lua @@ -3,6 +3,7 @@ local order = { "setting", "tools", "search", + "plus_menu", "main", }, setting = { @@ -88,6 +89,7 @@ local order = { "----------------------------", "about", }, + plus_menu = {}, exit_menu = { "restart_koreader", "----------------------------", diff --git a/frontend/ui/menusorter.lua b/frontend/ui/menusorter.lua index f975f271e..b2a4493c7 100644 --- a/frontend/ui/menusorter.lua +++ b/frontend/ui/menusorter.lua @@ -129,12 +129,17 @@ function MenuSorter:sort(item_table, order) end end end - -- @TODO avoid this extra mini-loop -- cleanup, top-level items shouldn't have sub_item_table + -- they should, however have one going in + local menu_buttons_offset = 0 for i,top_menu in ipairs(menu_table["KOMenu:menu_buttons"]) do - menu_table["KOMenu:menu_buttons"][i] = menu_table["KOMenu:menu_buttons"][i].sub_item_table + if menu_table["KOMenu:menu_buttons"][i].sub_item_table then + menu_table["KOMenu:menu_buttons"][i-menu_buttons_offset] = menu_table["KOMenu:menu_buttons"][i].sub_item_table + else + menu_table["KOMenu:menu_buttons"][i] = nil + menu_buttons_offset = menu_buttons_offset + 1 + end end - -- handle disabled if order["KOMenu:disabled"] then for _,item in ipairs(order["KOMenu:disabled"]) do