From 1d292f16a9d6884046a957301cd8a7af9a3b42be Mon Sep 17 00:00:00 2001 From: chrox Date: Mon, 19 May 2014 14:23:31 +0800 Subject: [PATCH] remove full screen option in koptoption since we can now switch progress bar status simply by tap --- frontend/apps/reader/modules/readerfooter.lua | 21 +++++++++--- frontend/apps/reader/modules/readerpaging.lua | 33 +++++++++---------- frontend/ui/data/koptoptions.lua | 1 + 3 files changed, 33 insertions(+), 22 deletions(-) diff --git a/frontend/apps/reader/modules/readerfooter.lua b/frontend/apps/reader/modules/readerfooter.lua index 388c697f3..d8812cd17 100644 --- a/frontend/apps/reader/modules/readerfooter.lua +++ b/frontend/apps/reader/modules/readerfooter.lua @@ -23,7 +23,7 @@ local ReaderFooter = InputContainer:new{ progress_percentage = 0.0, progress_text = "0 / 0", show_time = false, - bar_width = 0.85, + bar_width = 0.87, text_width = 0.15, text_font_face = "ffont", text_font_size = 14, @@ -122,11 +122,12 @@ function ReaderFooter:onPosUpdate(pos) self:updateFooterPos() end -function ReaderFooter:applyFooterMode() +function ReaderFooter:applyFooterMode(mode) -- three modes switcher for reader footer -- 0 for footer off -- 1 for footer page info -- 2 for footer time info + if mode ~= nil then self.mode = mode end if self.mode == 0 then self.view.footer_visible = false else @@ -139,12 +140,24 @@ function ReaderFooter:applyFooterMode() end end +function ReaderFooter:onEnterFlippingMode() + self.orig_mode = self.mode + self:applyFooterMode(1) +end + +function ReaderFooter:onExitFlippingMode() + self:applyFooterMode(self.orig_mode) +end + function ReaderFooter:onTapFooter(arg, ges) if self.view.flipping_visible then local pos = ges.pos local dimen = self.progress_bar.dimen - local percentage = (pos.x - dimen.x)/dimen.w - self.ui:handleEvent(Event:new("GotoPercentage", percentage)) + -- if reader footer is not drawn before the dimen value should be nil + if dimen then + local percentage = (pos.x - dimen.x)/dimen.w + self.ui:handleEvent(Event:new("GotoPercentage", percentage)) + end else self.mode = (self.mode + 1) % 3 self:applyFooterMode() diff --git a/frontend/apps/reader/modules/readerpaging.lua b/frontend/apps/reader/modules/readerpaging.lua index 48e9297fa..9d65e09c2 100644 --- a/frontend/apps/reader/modules/readerpaging.lua +++ b/frontend/apps/reader/modules/readerpaging.lua @@ -18,7 +18,7 @@ local ReaderPaging = InputContainer:new{ page_area = nil, show_overlap_enable = nil, overlap = Screen:scaleByDPI(DOVERLAPPIXELS), - + page_flipping_mode = false, bookmark_flipping_mode = false, flip_steps = {0,1,2,5,10,20,50,100} @@ -138,9 +138,9 @@ end function ReaderPaging:addToMainMenu(tab_item_table) if self.ui.document.info.has_pages then table.insert(tab_item_table.typeset, { - text_func = function() - return self.show_overlap_enable and - _("Turn off page overlap") or + text_func = function() + return self.show_overlap_enable and + _("Turn off page overlap") or _("Turn on page overlap") end, callback = function() @@ -153,7 +153,7 @@ end --[[ Set reading position on certain page Page position is a fractional number ranging from 0 to 1, indicating the read percentage on -certain page. With the position information on each page whenever users change font size, +certain page. With the position information on each page whenever users change font size, page margin or line spacing or close and reopen the book, the page view will be roughly the same. --]] function ReaderPaging:setPagePosition(page, pos) @@ -165,9 +165,9 @@ end Get reading position on certain page --]] function ReaderPaging:getPagePosition(page) - -- Page number ought to be integer, somehow I notice that with - -- fractional page number the reader runs silently well, but the - -- number won't fit to retrieve page position. + -- Page number ought to be integer, somehow I notice that with + -- fractional page number the reader runs silently well, but the + -- number won't fit to retrieve page position. page = math.floor(page) DEBUG("get page position", self.page_positions[page]) return self.page_positions[page] or 0 @@ -187,7 +187,7 @@ function ReaderPaging:onTogglePageFlipping() self.view.flipping_visible = not self.view.flipping_visible self.page_flipping_mode = self.view.flipping_visible self.flipping_page = self.current_page - + if self.page_flipping_mode then self:updateOriginalPage(self.current_page) self:enterFlippingMode() @@ -195,7 +195,6 @@ function ReaderPaging:onTogglePageFlipping() self:updateOriginalPage(nil) self:exitFlippingMode() end - self.view:resetLayout() self.ui:handleEvent(Event:new("SetHinting", not self.page_flipping_mode)) self.ui:handleEvent(Event:new("ReZoom")) UIManager:setDirty(self.view.dialog, "partial") @@ -203,11 +202,11 @@ end function ReaderPaging:onToggleBookmarkFlipping() self.bookmark_flipping_mode = not self.bookmark_flipping_mode - + if self.bookmark_flipping_mode then self.orig_flipping_mode = self.view.flipping_visible self.orig_dogear_mode = self.view.dogear_visible - + self.view.flipping_visible = true self.view.dogear_visible = true self.bm_flipping_orig_page = self.current_page @@ -218,32 +217,30 @@ function ReaderPaging:onToggleBookmarkFlipping() self:exitFlippingMode() self:gotoPage(self.bm_flipping_orig_page) end - self.view:resetLayout() self.ui:handleEvent(Event:new("SetHinting", not self.bookmark_flipping_mode)) self.ui:handleEvent(Event:new("ReZoom")) UIManager:setDirty(self.view.dialog, "partial") end function ReaderPaging:enterFlippingMode() + self.ui:handleEvent(Event:new("EnterFlippingMode")) self.orig_reflow_mode = self.view.document.configurable.text_wrap - self.orig_footer_mode = self.view.footer_visible self.orig_scroll_mode = self.view.page_scroll self.orig_zoom_mode = self.view.zoom_mode DEBUG("store zoom mode", self.orig_zoom_mode) self.DGESDETECT_DISABLE_DOUBLE_TAP = DGESDETECT_DISABLE_DOUBLE_TAP - + self.view.document.configurable.text_wrap = 0 self.view.page_scroll = false - self.view.footer_visible = true Input.disable_double_tap = false DGESDETECT_DISABLE_DOUBLE_TAP = false self.ui:handleEvent(Event:new("SetZoomMode", "page")) end function ReaderPaging:exitFlippingMode() + self.ui:handleEvent(Event:new("ExitFlippingMode")) self.view.document.configurable.text_wrap = self.orig_reflow_mode self.view.page_scroll = self.orig_scroll_mode - self.view.footer_visible = self.orig_footer_mode DGESDETECT_DISABLE_DOUBLE_TAP = self.DGESDETECT_DISABLE_DOUBLE_TAP Input.disable_double_tap = DGESDETECT_DISABLE_DOUBLE_TAP DEBUG("restore zoom mode", self.orig_zoom_mode) @@ -598,7 +595,7 @@ function ReaderPaging:onScrollPanRel(diff) end -- update current pageno to the very last part in current view self:gotoPage(self.view.page_states[#self.view.page_states].page, "scrolling") - + UIManager:setDirty(self.view.dialog, "fast") end diff --git a/frontend/ui/data/koptoptions.lua b/frontend/ui/data/koptoptions.lua index 0811b7cbf..fa3567504 100644 --- a/frontend/ui/data/koptoptions.lua +++ b/frontend/ui/data/koptoptions.lua @@ -56,6 +56,7 @@ local KoptOptions = { default_value = DFULL_SCREEN, event = "SetFullScreen", args = {true, false}, + show = false, }, { name = "page_margin",