From 8159b24a4676b7f58f928104bdfcd28932a673e5 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Tue, 27 Mar 2012 02:45:44 +0800 Subject: [PATCH] add: simple highlight lists menu --- unireader.lua | 39 ++++++++++++++++++++++++++++++++++----- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/unireader.lua b/unireader.lua index 58a1f2843..740147f4d 100644 --- a/unireader.lua +++ b/unireader.lua @@ -724,10 +724,10 @@ function UniReader:showTOC() local menu_items = {} local filtered_toc = {} -- build menu items - for _k,_v in ipairs(self.toc) do + for k,v in ipairs(self.toc) do table.insert(menu_items, - (" "):rep(_v.depth-1)..self:cleanUpTOCTitle(_v.title)) - table.insert(filtered_toc,_v.page) + (" "):rep(v.depth-1)..self:cleanUpTOCTitle(v.title)) + table.insert(filtered_toc,v.page) end toc_menu = SelectMenu:new{ menu_title = "Table of Contents", @@ -744,9 +744,9 @@ end function UniReader:showJumpStack() local menu_items = {} - for _k,_v in ipairs(self.jump_stack) do + for k,v in ipairs(self.jump_stack) do table.insert(menu_items, - _v.datetime.." -> Page ".._v.page.." ".._v.notes) + v.datetime.." -> Page "..v.page.." "..v.notes) end jump_menu = SelectMenu:new{ menu_title = "Jump Keeper (current page: "..self.pageno..")", @@ -762,6 +762,29 @@ function UniReader:showJumpStack() end end +function UniReader:showHighLight() + local menu_items = {} + local highlight_dict = {} + -- build menu items + for k,v in pairs(self.highlight) do + if type(k) == "number" then + for k1,v1 in ipairs(v) do + table.insert(menu_items, v1.text) + table.insert(highlight_dict, {page=k, start=v1[1]}) + end + end + end + toc_menu = SelectMenu:new{ + menu_title = "HighLights", + item_array = menu_items, + no_item_msg = "No HighLight found.", + } + item_no = toc_menu:choose(0, fb.bb:getHeight()) + if item_no then + self:goto(highlight_dict[item_no].page) + end +end + function UniReader:showMenu() local ypos = height - 50 local load_percent = (self.pageno / self.doc:getPages()) @@ -1015,6 +1038,12 @@ function UniReader:addAllCommands() unireader:startHighLightMode() unireader:goto(unireader.pageno) end) + self.commands:add(KEY_N, MOD_SHIFT, "N", + "display all highlights", + function(unireader) + unireader:showHighLight() + unireader:goto(unireader.pageno) + end) self.commands:add(KEY_HOME,MOD_SHIFT_OR_ALT,"Home", "exit application", function(unireader)