mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
disable hinting temporarily in config dialog and flipping mode and cropping dialog
Since hinting is of little use in these situations.
This commit is contained in:
@@ -82,8 +82,11 @@ function ReaderConfig:onShowConfigMenu()
|
||||
ui = self.ui,
|
||||
configurable = self.configurable,
|
||||
config_options = self.options,
|
||||
close_callback = function()
|
||||
self.ui:handleEvent(Event:new("RestoreHinting"))
|
||||
end,
|
||||
}
|
||||
|
||||
self.ui:handleEvent(Event:new("DisableHinting"))
|
||||
UIManager:show(self.config_dialog)
|
||||
|
||||
return true
|
||||
|
||||
@@ -63,6 +63,8 @@ function ReaderCropping:onPageCrop(mode)
|
||||
-- backup original page scroll
|
||||
self.orig_page_scroll = self.view.page_scroll
|
||||
self.view.page_scroll = false
|
||||
-- backup and disable original hinting state
|
||||
self.ui:handleEvent(Event:new("DisableHinting"))
|
||||
-- backup original reflow mode as cropping use non-reflow mode
|
||||
self.orig_reflow_mode = self.document.configurable.text_wrap
|
||||
if self.orig_reflow_mode == 1 then
|
||||
@@ -110,6 +112,8 @@ function ReaderCropping:onCancelPageCrop()
|
||||
end
|
||||
|
||||
function ReaderCropping:exitPageCrop(confirmed)
|
||||
-- restore hinting state
|
||||
self.ui:handleEvent(Event:new("RestoreHinting"))
|
||||
-- restore page scroll
|
||||
self.view.page_scroll = self.orig_page_scroll
|
||||
-- restore view bgcolor
|
||||
|
||||
19
frontend/ui/reader/readerhinting.lua
Normal file
19
frontend/ui/reader/readerhinting.lua
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
ReaderHinting = EventListener:new{
|
||||
hinting_states = {}
|
||||
}
|
||||
|
||||
function ReaderHinting:onSetHinting(hinting)
|
||||
self.view.hinting = hinting
|
||||
end
|
||||
|
||||
function ReaderHinting:onDisableHinting()
|
||||
table.insert(self.hinting_states, self.view.hinting)
|
||||
self.view.hinting = false
|
||||
return true
|
||||
end
|
||||
|
||||
function ReaderHinting:onRestoreHinting()
|
||||
self.view.hinting = table.remove(self.hinting_states)
|
||||
return true
|
||||
end
|
||||
@@ -143,6 +143,7 @@ function ReaderPaging:onToggleFlipping()
|
||||
if self.flipping_mode then
|
||||
self:updateOriginalPage(self.current_page)
|
||||
end
|
||||
self.ui:handleEvent(Event:new("SetHinting", not self.flipping_mode))
|
||||
UIManager:setDirty(self.view.dialog, "partial")
|
||||
end
|
||||
|
||||
|
||||
@@ -31,7 +31,8 @@ ReaderView = OverlapGroup:new{
|
||||
render_mode = 0, -- default to COLOR
|
||||
-- Crengine view mode
|
||||
view_mode = "page", -- default to page mode
|
||||
|
||||
hinting = true,
|
||||
|
||||
-- visible area within current viewing page
|
||||
visible_area = Geom:new{x = 0, y = 0},
|
||||
-- dimen for current viewing page
|
||||
@@ -148,7 +149,9 @@ function ReaderView:drawScrollPages(bb, x, y)
|
||||
pos.y = pos.y + self.page_gap.height
|
||||
end
|
||||
end
|
||||
UIManager:scheduleIn(0, function() self.ui:handleEvent(Event:new("HintPage")) end)
|
||||
UIManager:scheduleIn(0, function()
|
||||
self.ui:handleEvent(Event:new("HintPage", self.hinting))
|
||||
end)
|
||||
end
|
||||
|
||||
function ReaderView:drawPageGap(bb, x, y)
|
||||
@@ -170,7 +173,9 @@ function ReaderView:drawSinglePage(bb, x, y)
|
||||
self.state.rotation,
|
||||
self.state.gamma,
|
||||
self.render_mode)
|
||||
UIManager:scheduleIn(0, function() self.ui:handleEvent(Event:new("HintPage")) end)
|
||||
UIManager:scheduleIn(0, function()
|
||||
self.ui:handleEvent(Event:new("HintPage", self.hinting))
|
||||
end)
|
||||
end
|
||||
|
||||
function ReaderView:drawPageView(bb, x, y)
|
||||
|
||||
@@ -110,6 +110,7 @@ function ReaderZooming:onPageUpdate(new_page_no)
|
||||
end
|
||||
|
||||
function ReaderZooming:onHintPage()
|
||||
if not self.view.hinting then return true end
|
||||
if self.current_page < self.ui.document.info.number_of_pages then
|
||||
self.ui.document:hintPage(
|
||||
self.view.state.page + 1,
|
||||
|
||||
@@ -15,6 +15,7 @@ require "ui/reader/readercropping"
|
||||
require "ui/reader/readerkopt"
|
||||
require "ui/reader/readercopt"
|
||||
require "ui/reader/readerscreenshot"
|
||||
require "ui/reader/readerhinting"
|
||||
|
||||
--[[
|
||||
This is an abstraction for a reader interface
|
||||
@@ -132,6 +133,14 @@ function ReaderUI:init()
|
||||
document = self.document,
|
||||
}
|
||||
table.insert(self, cropper)
|
||||
-- hinting controller
|
||||
local hinter = ReaderHinting:new{
|
||||
dialog = self.dialog,
|
||||
view = self[1],
|
||||
ui = self,
|
||||
document = self.document,
|
||||
}
|
||||
table.insert(self, hinter)
|
||||
else
|
||||
-- make sure we load document first before calling any callback
|
||||
table.insert(self.postInitCallback, function()
|
||||
|
||||
Reference in New Issue
Block a user