From 87eec1b5391622e3640ea51220e2f285fa876782 Mon Sep 17 00:00:00 2001 From: chrox Date: Mon, 4 Mar 2013 23:23:37 +0800 Subject: [PATCH] save/restore view mode and embedded css mode --- frontend/document/credocument.lua | 18 ++++++++++++------ frontend/ui/reader/readercopt.lua | 21 +++++++++++++++++++++ frontend/ui/readerui.lua | 11 ++++++++++- 3 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 frontend/ui/reader/readercopt.lua diff --git a/frontend/document/credocument.lua b/frontend/document/credocument.lua index 355205f95..ba6a699af 100644 --- a/frontend/document/credocument.lua +++ b/frontend/document/credocument.lua @@ -10,7 +10,8 @@ CreOptions = { name_text = "Screen Mode", toggle = {"portrait", "landscape"}, args = {"portrait", "landscape"}, - default_arg = Screen:getScreenMode(), + default_arg = "portrait", + current_func = function() return Screen:getScreenMode() end, event = "SetScreenMode", } } @@ -35,10 +36,11 @@ CreOptions = { name = "font_size", item_text = {"Aa", "Aa", "Aa", "Aa", "Aa", "Aa", "Aa", "Aa"}, item_align_center = 1.0, - spacing = Screen:getWidth()*0.03, + spacing = 15, item_font_size = {18, 20, 22, 24, 29, 33, 39, 44}, + values = {18, 20, 22, 24, 29, 33, 39, 44}, + default_value = 22, args = {18, 20, 22, 24, 29, 33, 39, 44}, - default_value = 1, event = "SetFontSize", }, } @@ -72,7 +74,9 @@ CreOptions = { { name = "view_mode", name_text = "View mode", - item_text = {"scroll", "page"}, + toggle = {"scroll", "page"}, + values = {1, 0}, + default_value = 0, args = {"scroll", "page"}, default_arg = "page", event = "SetViewMode", @@ -80,8 +84,10 @@ CreOptions = { { name = "embedded_css", name_text = "Embedded style", - item_text = {"toggle"}, - args = {1}, + toggle = {"on", "off"}, + values = {1, 0}, + default_value = 0, + args = {1, 0}, default_arg = nil, event = "ToggleEmbeddedStyleSheet", }, diff --git a/frontend/ui/reader/readercopt.lua b/frontend/ui/reader/readercopt.lua new file mode 100644 index 000000000..cdf557a8e --- /dev/null +++ b/frontend/ui/reader/readercopt.lua @@ -0,0 +1,21 @@ + +ReaderCoptListener = EventListener:new{} + +function ReaderKoptListener:onReadSettings(config) + local embedded_css = config:readSetting("copt_embedded_css") + if embedded_css == 1 then + table.insert(self.ui.postInitCallback, function() + self.ui:handleEvent(Event:new("ToggleEmbeddedStyleSheet")) + end) + end + local view_mode = config:readSetting("copt_view_mode") + if view_mode == 0 then + table.insert(self.ui.postInitCallback, function() + self.ui:handleEvent(Event:new("SetViewMode", "page")) + end) + elseif view_mode == 1 then + table.insert(self.ui.postInitCallback, function() + self.ui:handleEvent(Event:new("SetViewMode", "scroll")) + end) + end +end diff --git a/frontend/ui/readerui.lua b/frontend/ui/readerui.lua index 6fb39e853..8e2c5808f 100644 --- a/frontend/ui/readerui.lua +++ b/frontend/ui/readerui.lua @@ -13,6 +13,7 @@ require "ui/reader/readermenu" require "ui/reader/readerconfig" require "ui/reader/readercropping" require "ui/reader/readerkopt" +require "ui/reader/readercopt" --[[ This is an abstraction for a reader interface @@ -159,7 +160,7 @@ function ReaderUI:init() ui = self } table.insert(self, config_dialog) - -- koptinterface controller + -- kopt option controller local koptlistener = ReaderKoptListener:new{ dialog = self.dialog, view = self[1], @@ -167,6 +168,14 @@ function ReaderUI:init() document = self.document, } table.insert(self, koptlistener) + -- cre option controller + local coptlistener = ReaderCoptListener:new{ + dialog = self.dialog, + view = self[1], + ui = self, + document = self.document, + } + table.insert(self, coptlistener) end --DEBUG(self.doc_settings) -- we only read settings after all the widgets are initialized