From f24f2a01f635509da308b41474d173334e74bad3 Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sun, 15 Apr 2012 11:02:42 +0800 Subject: [PATCH 1/2] use InfoMessage for empty TOC, jump history and highlights --- dialog.lua | 12 +++++++++ unireader.lua | 71 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 55 insertions(+), 28 deletions(-) diff --git a/dialog.lua b/dialog.lua index e35a61783..7ae25e108 100644 --- a/dialog.lua +++ b/dialog.lua @@ -29,3 +29,15 @@ function InfoMessage:show(text) dialog:paintTo(fb.bb, 0, 0) dialog:free() end + +function showInfoMsgWithDelay(text, msec, refresh_mode) + if not refresh_mode then refresh_mode = 0 end + Screen:saveCurrentBB() + + InfoMessage:show(text) + fb:refresh(refresh_mode) + util.usleep(msec*1000) + + Screen:restoreFromSavedBB() + fb:refresh(refresh_mode) +end diff --git a/unireader.lua b/unireader.lua index b1b5228ba..255360736 100644 --- a/unireader.lua +++ b/unireader.lua @@ -1532,17 +1532,21 @@ function UniReader:showToc() (" "):rep(v.depth-1)..self:cleanUpTocTitle(v.title)) end - toc_menu = SelectMenu:new{ - menu_title = "Table of Contents", - item_array = menu_items, - no_item_msg = "This document does not have a Table of Contents.", - } - item_no = toc_menu:choose(0, fb.bb:getHeight()) - - if item_no then - self:gotoTocEntry(self.toc[item_no]) + if #menu_items == 0 then + showInfoMsgWithDelay( + "This document does not have a TOC.", 2000, 1) else - self:redrawCurrentPage() + toc_menu = SelectMenu:new{ + menu_title = "Table of Contents", + item_array = menu_items, + } + item_no = toc_menu:choose(0, fb.bb:getHeight()) + + if item_no then + self:gotoTocEntry(self.toc[item_no]) + else + self:redrawCurrentPage() + end end end @@ -1552,17 +1556,22 @@ function UniReader:showJumpStack() table.insert(menu_items, v.datetime.." -> Page "..v.page.." "..v.notes) end - jump_menu = SelectMenu:new{ - menu_title = "Jump Keeper (current page: "..self.pageno..")", - item_array = menu_items, - no_item_msg = "No jump history.", - } - item_no = jump_menu:choose(0, fb.bb:getHeight()) - if item_no then - local jump_item = self.jump_stack[item_no] - self:goto(jump_item.page) + + if #menu_items == 0 then + showInfoMsgWithDelay( + "No jump history found.", 2000, 1) else - self:redrawCurrentPage() + jump_menu = SelectMenu:new{ + menu_title = "Jump Keeper (current page: "..self.pageno..")", + item_array = menu_items, + } + item_no = jump_menu:choose(0, fb.bb:getHeight()) + if item_no then + local jump_item = self.jump_stack[item_no] + self:goto(jump_item.page) + else + self:redrawCurrentPage() + end end end @@ -1578,14 +1587,20 @@ function UniReader:showHighLight() 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) + if #menu_items == 0 then + showInfoMsgWithDelay( + "No HighLights found.", 2000, 1) + else + toc_menu = SelectMenu:new{ + menu_title = "HighLights", + item_array = menu_items, + } + item_no = toc_menu:choose(0, fb.bb:getHeight()) + if item_no then + self:goto(highlight_dict[item_no].page) + else + self:redrawCurrentPage() + end end end From 5e867d38ef66d94e8b22b55f5cdf3339b8ffd38e Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Sun, 15 Apr 2012 14:20:26 +0800 Subject: [PATCH 2/2] show infomessage on document open --- reader.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/reader.lua b/reader.lua index e42f25957..f1aed3f34 100755 --- a/reader.lua +++ b/reader.lua @@ -48,6 +48,8 @@ function openFile(filename) reader = CREReader end if reader then + InfoMessage:show("Opening document, please wait... ") + fb:refresh(0) local ok, err = reader:open(filename) if ok then reader:loadSettings(filename)