diff --git a/frontend/document/credocument.lua b/frontend/document/credocument.lua index 8609b1a11..c8aafa486 100644 --- a/frontend/document/credocument.lua +++ b/frontend/document/credocument.lua @@ -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) diff --git a/frontend/ui/data/creoptions.lua b/frontend/ui/data/creoptions.lua index 0bfa81465..47839f974 100644 --- a/frontend/ui/data/creoptions.lua +++ b/frontend/ui/data/creoptions.lua @@ -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", }, diff --git a/frontend/ui/reader/readerconfig.lua b/frontend/ui/reader/readerconfig.lua index e3320cd15..ea7c45892 100644 --- a/frontend/ui/reader/readerconfig.lua +++ b/frontend/ui/reader/readerconfig.lua @@ -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 diff --git a/frontend/ui/reader/readercopt.lua b/frontend/ui/reader/readercopt.lua index cdf557a8e..34be8a747 100644 --- a/frontend/ui/reader/readercopt.lua +++ b/frontend/ui/reader/readercopt.lua @@ -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 diff --git a/frontend/ui/reader/readerview.lua b/frontend/ui/reader/readerview.lua index e5593bed0..4608f23d9 100644 --- a/frontend/ui/reader/readerview.lua +++ b/frontend/ui/reader/readerview.lua @@ -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)