add page margin options in CREOptions

pull/137/head
chrox 11 years ago
parent 67816852ac
commit 94526fa26d

@ -223,6 +223,10 @@ function CreDocument:setEmbeddedStyleSheet(toggle)
self._document:setEmbeddedStyleSheet(toggle)
end
function CreDocument:setPageMargins(left, top, right, bottom)
self._document:setPageMargins(left, top, right, bottom)
end
DocumentRegistry:addProvider("txt", "application/txt", CreDocument)
DocumentRegistry:addProvider("epub", "application/epub", CreDocument)
DocumentRegistry:addProvider("html", "application/html", CreDocument)

@ -28,6 +28,23 @@ CreOptions = {
default_arg = nil,
event = "ChangeLineSpace",
},
{
name = "page_margins",
name_text = PAGE_MARGIN_STR,
toggle = {SMALL_STR, MEDIUM_STR, LARGE_STR},
values = {
{6, 5, 2, 5},
{15, 10, 10, 10},
{25, 10, 20, 10},
},
default_value = {15, 10, 10, 10},
args = {
{6, 5, 2, 5},
{15, 10, 10, 10},
{25, 10, 20, 10},
},
event = "SetPageMargins",
},
}
},
{
@ -87,8 +104,8 @@ CreOptions = {
name_text = EMBEDDED_STYLE_STR,
toggle = {ON_STR, OFF_STR},
values = {1, 0},
default_value = 0,
args = {1, 0},
default_value = 1,
args = {true, false},
default_arg = nil,
event = "ToggleEmbeddedStyleSheet",
},

@ -28,7 +28,7 @@ end
function Configurable:loadSettings(settings, prefix)
for key,value in pairs(self) do
if type(value) == "number" then
if type(value) == "number" or type(value) == "table" then
saved_value = settings:readSetting(prefix..key)
self[key] = (saved_value == nil) and self[key] or saved_value
--Debug("Configurable:loadSettings", "key", key, "saved value", saved_value,"Configurable.key", self[key])
@ -39,7 +39,7 @@ end
function Configurable:saveSettings(settings, prefix)
for key,value in pairs(self) do
if type(value) == "number" then
if type(value) == "number" or type(value) == "table" then
settings:saveSetting(prefix..key, value)
end
end

@ -1,13 +1,14 @@
ReaderCoptListener = EventListener:new{}
function ReaderKoptListener:onReadSettings(config)
function ReaderCoptListener:onReadSettings(config)
local embedded_css = config:readSetting("copt_embedded_css")
if embedded_css == 1 then
if embedded_css == 0 then
table.insert(self.ui.postInitCallback, function()
self.ui:handleEvent(Event:new("ToggleEmbeddedStyleSheet"))
self.ui:handleEvent(Event:new("ToggleEmbeddedStyleSheet", false))
end)
end
local view_mode = config:readSetting("copt_view_mode")
if view_mode == 0 then
table.insert(self.ui.postInitCallback, function()
@ -18,4 +19,18 @@ function ReaderKoptListener:onReadSettings(config)
self.ui:handleEvent(Event:new("SetViewMode", "scroll"))
end)
end
local copt_font_size = config:readSetting("copt_font_size")
if copt_font_size then
table.insert(self.ui.postInitCallback, function()
self.ui:handleEvent(Event:new("SetFontSize", copt_font_size))
end)
end
local copt_margins = config:readSetting("copt_page_margins")
if copt_margins then
table.insert(self.ui.postInitCallback, function()
self.ui:handleEvent(Event:new("SetPageMargins", copt_margins))
end)
end
end

@ -547,6 +547,15 @@ function ReaderView:onSetViewMode(new_mode)
return true
end
function ReaderView:onSetPageMargins(margins)
local left = margins[1]
local top = margins[2]
local right = margins[3]
local bottom = margins[4]
self.ui.document:setPageMargins(left, top, right, bottom)
return true
end
function ReaderView:onCloseDocument()
self.ui.doc_settings:saveSetting("render_mode", self.render_mode)
self.ui.doc_settings:saveSetting("screen_mode", self.screen_mode)

Loading…
Cancel
Save