hold on zoom mode menu entry to set default zoom mode

pull/688/head
chrox 10 years ago
parent 7ba0a46098
commit a92ca26bea

@ -14,8 +14,12 @@ end
function ReaderKoptListener:onReadSettings(config) function ReaderKoptListener:onReadSettings(config)
-- normal zoom mode is zoom mode used in non-reflow mode. -- normal zoom mode is zoom mode used in non-reflow mode.
self.normal_zoom_mode = config:readSetting("normal_zoom_mode") or "page" self.normal_zoom_mode = config:readSetting("normal_zoom_mode") or
G_reader_settings:readSetting("zoom_mode") or "page"
self:setZoomMode(self.normal_zoom_mode) self:setZoomMode(self.normal_zoom_mode)
self.document.configurable.contrast = config:readSetting("kopt_contrast") or
G_reader_settings:readSetting("kopt_contrast") or 1.0
self.ui:handleEvent(Event:new("GammaUpdate", 1/self.document.configurable.contrast))
end end
function ReaderKoptListener:onSaveSettings() function ReaderKoptListener:onSaveSettings()
@ -40,7 +44,7 @@ function ReaderKoptListener:onFineTuningFontSize(delta)
end end
function ReaderKoptListener:onZoomUpdate(zoom) function ReaderKoptListener:onZoomUpdate(zoom)
-- an exceptional case is reflow mode -- an exceptional case is reflow mode
if self.document.configurable.text_wrap == 1 then if self.document.configurable.text_wrap == 1 then
self.view.state.zoom = 1.0 self.view.state.zoom = 1.0
end end
@ -48,7 +52,7 @@ end
-- misc koptoption handler -- misc koptoption handler
function ReaderKoptListener:onDocLangUpdate(lang) function ReaderKoptListener:onDocLangUpdate(lang)
if lang == "chi_sim" or lang == "chi_tra" or if lang == "chi_sim" or lang == "chi_tra" or
lang == "jpn" or lang == "kor" then lang == "jpn" or lang == "kor" then
self.document.configurable.word_spacing = DKOPTREADER_CONFIG_WORD_SAPCINGS[1] self.document.configurable.word_spacing = DKOPTREADER_CONFIG_WORD_SAPCINGS[1]
else else

@ -1,9 +1,11 @@
local InputContainer = require("ui/widget/container/inputcontainer") local InputContainer = require("ui/widget/container/inputcontainer")
local ConfirmBox = require("ui/widget/confirmbox")
local GestureRange = require("ui/gesturerange")
local UIManager = require("ui/uimanager")
local Device = require("ui/device") local Device = require("ui/device")
local Input = require("ui/input") local Input = require("ui/input")
local Screen = require("ui/screen") local Screen = require("ui/screen")
local Geom = require("ui/geometry") local Geom = require("ui/geometry")
local GestureRange = require("ui/gesturerange")
local Event = require("ui/event") local Event = require("ui/event")
local DEBUG = require("dbg") local DEBUG = require("dbg")
local _ = require("gettext") local _ = require("gettext")
@ -103,10 +105,9 @@ function ReaderZooming:onReadSettings(config)
-- @TODO config file from old code base uses globalzoom_mode -- @TODO config file from old code base uses globalzoom_mode
-- instead of zoom_mode, we need to handle this imcompatibility -- instead of zoom_mode, we need to handle this imcompatibility
-- 04.12 2012 (houqp) -- 04.12 2012 (houqp)
local zoom_mode = config:readSetting("zoom_mode") local zoom_mode = config:readSetting("zoom_mode") or
if not zoom_mode then G_reader_settings:readSetting("zoom_mode") or
zoom_mode = self.DEFAULT_ZOOM_MODE self.DEFAULT_ZOOM_MODE
end
self:setZoomMode(zoom_mode) self:setZoomMode(zoom_mode)
end end
@ -294,36 +295,51 @@ function ReaderZooming:addToMainMenu(tab_item_table)
{ {
text = _("Zoom to fit content width"), text = _("Zoom to fit content width"),
checked_func = function() return self.zoom_mode == "contentwidth" end, checked_func = function() return self.zoom_mode == "contentwidth" end,
callback = self:genSetZoomModeCallBack("contentwidth") callback = self:genSetZoomModeCallBack("contentwidth"),
hold_callback = function() self:makeDefault("contentwidth") end,
}, },
{ {
text = _("Zoom to fit content height"), text = _("Zoom to fit content height"),
checked_func = function() return self.zoom_mode == "contentheight" end, checked_func = function() return self.zoom_mode == "contentheight" end,
callback = self:genSetZoomModeCallBack("contentheight") callback = self:genSetZoomModeCallBack("contentheight"),
hold_callback = function() self:makeDefault("contentheight") end,
}, },
{ {
text = _("Zoom to fit page width"), text = _("Zoom to fit page width"),
checked_func = function() return self.zoom_mode == "pagewidth" end, checked_func = function() return self.zoom_mode == "pagewidth" end,
callback = self:genSetZoomModeCallBack("pagewidth") callback = self:genSetZoomModeCallBack("pagewidth"),
hold_callback = function() self:makeDefault("pagewidth") end,
}, },
{ {
text = _("Zoom to fit page height"), text = _("Zoom to fit page height"),
checked_func = function() return self.zoom_mode == "pageheight" end, checked_func = function() return self.zoom_mode == "pageheight" end,
callback = self:genSetZoomModeCallBack("pageheight") callback = self:genSetZoomModeCallBack("pageheight"),
hold_callback = function() self:makeDefault("pageheight") end,
}, },
{ {
text = _("Zoom to fit content"), text = _("Zoom to fit content"),
checked_func = function() return self.zoom_mode == "content" end, checked_func = function() return self.zoom_mode == "content" end,
callback = self:genSetZoomModeCallBack("content") callback = self:genSetZoomModeCallBack("content"),
hold_callback = function() self:makeDefault("content") end,
}, },
{ {
text = _("Zoom to fit page"), text = _("Zoom to fit page"),
checked_func = function() return self.zoom_mode == "page" end, checked_func = function() return self.zoom_mode == "page" end,
callback = self:genSetZoomModeCallBack("page") callback = self:genSetZoomModeCallBack("page"),
hold_callback = function() self:makeDefault("page") end,
}, },
} }
}) })
end end
end end
function ReaderZooming:makeDefault(zoom_mode)
UIManager:show(ConfirmBox:new{
text = _("Set default zoom mode to \"")..zoom_mode.."\"?",
ok_callback = function()
G_reader_settings:saveSetting("zoom_mode", zoom_mode)
end,
})
end
return ReaderZooming return ReaderZooming

Loading…
Cancel
Save