From a92ca26beab348ad5052e78baee3d2152b7f95d5 Mon Sep 17 00:00:00 2001 From: chrox Date: Thu, 3 Jul 2014 16:28:24 +0800 Subject: [PATCH 1/6] hold on zoom mode menu entry to set default zoom mode --- .../reader/modules/readerkoptlistener.lua | 10 +++-- .../apps/reader/modules/readerzooming.lua | 38 +++++++++++++------ 2 files changed, 34 insertions(+), 14 deletions(-) diff --git a/frontend/apps/reader/modules/readerkoptlistener.lua b/frontend/apps/reader/modules/readerkoptlistener.lua index c4cd75913..d7812e8b3 100644 --- a/frontend/apps/reader/modules/readerkoptlistener.lua +++ b/frontend/apps/reader/modules/readerkoptlistener.lua @@ -14,8 +14,12 @@ end function ReaderKoptListener:onReadSettings(config) -- 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.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 function ReaderKoptListener:onSaveSettings() @@ -40,7 +44,7 @@ function ReaderKoptListener:onFineTuningFontSize(delta) end function ReaderKoptListener:onZoomUpdate(zoom) - -- an exceptional case is reflow mode + -- an exceptional case is reflow mode if self.document.configurable.text_wrap == 1 then self.view.state.zoom = 1.0 end @@ -48,7 +52,7 @@ end -- misc koptoption handler 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 self.document.configurable.word_spacing = DKOPTREADER_CONFIG_WORD_SAPCINGS[1] else diff --git a/frontend/apps/reader/modules/readerzooming.lua b/frontend/apps/reader/modules/readerzooming.lua index f86b163bb..3b7ea6f54 100644 --- a/frontend/apps/reader/modules/readerzooming.lua +++ b/frontend/apps/reader/modules/readerzooming.lua @@ -1,9 +1,11 @@ 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 Input = require("ui/input") local Screen = require("ui/screen") local Geom = require("ui/geometry") -local GestureRange = require("ui/gesturerange") local Event = require("ui/event") local DEBUG = require("dbg") local _ = require("gettext") @@ -103,10 +105,9 @@ function ReaderZooming:onReadSettings(config) -- @TODO config file from old code base uses globalzoom_mode -- instead of zoom_mode, we need to handle this imcompatibility -- 04.12 2012 (houqp) - local zoom_mode = config:readSetting("zoom_mode") - if not zoom_mode then - zoom_mode = self.DEFAULT_ZOOM_MODE - end + local zoom_mode = config:readSetting("zoom_mode") or + G_reader_settings:readSetting("zoom_mode") or + self.DEFAULT_ZOOM_MODE self:setZoomMode(zoom_mode) end @@ -294,36 +295,51 @@ function ReaderZooming:addToMainMenu(tab_item_table) { text = _("Zoom to fit content width"), 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"), 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"), 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"), 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"), 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"), 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 +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 From e7fc16dd250c55d33d84cae291c8310ee948cfea Mon Sep 17 00:00:00 2001 From: chrox Date: Thu, 3 Jul 2014 16:30:24 +0800 Subject: [PATCH 2/6] hold on config panel option to set default option --- frontend/configurable.lua | 4 ++- frontend/ui/widget/configdialog.lua | 52 +++++++++++++++++++++++++++-- frontend/ui/widget/toggleswitch.lua | 19 ++++++++++- 3 files changed, 71 insertions(+), 4 deletions(-) diff --git a/frontend/configurable.lua b/frontend/configurable.lua index 2b91e3160..8b154bd42 100644 --- a/frontend/configurable.lua +++ b/frontend/configurable.lua @@ -33,7 +33,9 @@ function Configurable:loadDefaults(config_options) local options = config_options[i].options for j=1,#config_options[i].options do local key = config_options[i].options[j].name - self[key] = config_options[i].options[j].default_value + local settings_key = config_options.prefix.."_"..key + local default = G_reader_settings:readSetting(settings_key) + self[key] = default or config_options[i].options[j].default_value if not self[key] then self[key] = config_options[i].options[j].default_arg end diff --git a/frontend/ui/widget/configdialog.lua b/frontend/ui/widget/configdialog.lua index 99e289b59..cb89e6123 100644 --- a/frontend/ui/widget/configdialog.lua +++ b/frontend/ui/widget/configdialog.lua @@ -9,6 +9,7 @@ local TextWidget = require("ui/widget/textwidget") local FixedTextWidget = require("ui/widget/fixedtextwidget") local ProgressWidget = require("ui/widget/progresswidget") local ToggleSwitch = require("ui/widget/toggleswitch") +local ConfirmBox = require("ui/widget/confirmbox") local Font = require("ui/font") local Device = require("ui/device") local GestureRange = require("ui/gesturerange") @@ -79,6 +80,13 @@ function OptionTextItem:init() }, doc = "Select Option Item", }, + HoldSelect = { + GestureRange:new{ + ges = "hold", + range = self.dimen, + }, + doc = "Hold Option Item", + }, } else self.active_key_events = { @@ -92,11 +100,21 @@ function OptionTextItem:onTapSelect() item[1].color = 0 end self[1].color = 15 - self.config:onConfigChoose(self.values, self.name, self.event, self.args, self.events, self.current_item) + self.config:onConfigChoose(self.values, self.name, + self.event, self.args, + self.events, self.current_item) UIManager:setDirty(self.config, "partial") return true end +function OptionTextItem:onHoldSelect() + self.config:onMakeDefault(self.name, self.name_text, + self.values or self.args, + self.values or self.item_text, + self.current_item) + return true +end + local OptionIconItem = InputContainer:new{} function OptionIconItem:init() self.dimen = self.icon:getSize() @@ -115,6 +133,14 @@ function OptionIconItem:init() }, doc = "Select Option Item", }, + HoldSelect = { + GestureRange:new{ + ges = "hold", + range = self.dimen, + }, + doc = "Hold Option Item", + }, + } end end @@ -126,11 +152,19 @@ function OptionIconItem:onTapSelect() end --self[1][1].invert = true self[1].color = 15 - self.config:onConfigChoose(self.values, self.name, self.event, self.args, self.events, self.current_item) + self.config:onConfigChoose(self.values, self.name, + self.event, self.args, + self.events, self.current_item) UIManager:setDirty(self.config, "partial") return true end +function OptionIconItem:onHoldSelect() + self.config:onMakeDefault(self.name, self.name_text, + self.values, self.values, self.current_item) + return true +end + local ConfigOption = CenterContainer:new{} function ConfigOption:init() local default_name_font_size = 20 @@ -287,6 +321,8 @@ function ConfigOption:init() option_items[d] = option_item option_item.items = option_items option_item.name = self.options[c].name + option_item.name_text = self.options[c].name_text + option_item.item_text = self.options[c].item_text option_item.values = self.options[c].values option_item.args = self.options[c].args option_item.event = self.options[c].event @@ -322,6 +358,7 @@ function ConfigOption:init() option_items[d] = option_item option_item.items = option_items option_item.name = self.options[c].name + option_item.name_text = self.options[c].name_text option_item.values = self.options[c].values option_item.args = self.options[c].args option_item.event = self.options[c].event @@ -340,6 +377,7 @@ function ConfigOption:init() local switch = ToggleSwitch:new{ width = math.min(max_toggle_width, toggle_width), name = self.options[c].name, + name_text = self.options[c].name_text, toggle = self.options[c].toggle, alternate = self.options[c].alternate, values = self.options[c].values, @@ -537,6 +575,16 @@ function ConfigDialog:onConfigChoose(values, name, event, args, events, position end) end +function ConfigDialog:onMakeDefault(name, name_text, values, labels, position) + UIManager:show(ConfirmBox:new{ + text = _("Set default ")..(name_text or "").." to "..labels[position].."?", + ok_callback = function() + local name = self.config_options.prefix.."_"..name + G_reader_settings:saveSetting(name, values[position]) + end, + }) +end + function ConfigDialog:closeDialog() UIManager:close(self) if self.close_callback then diff --git a/frontend/ui/widget/toggleswitch.lua b/frontend/ui/widget/toggleswitch.lua index 78c3202e9..fef772653 100644 --- a/frontend/ui/widget/toggleswitch.lua +++ b/frontend/ui/widget/toggleswitch.lua @@ -74,6 +74,13 @@ function ToggleSwitch:init() }, doc = "Toggle switch", }, + HoldSelect = { + GestureRange:new{ + ges = "hold", + range = self.dimen, + }, + doc = "Hold switch", + }, } end end @@ -131,9 +138,19 @@ function ToggleSwitch:onTapSelect(arg, gev) self.config:onConfigEvents(self.events, self.position) end --]] - self.config:onConfigChoose(self.values, self.name, self.event, self.args, self.events, self.position) + self.config:onConfigChoose(self.values, self.name, + self.event, self.args, self.events, self.position) UIManager:setDirty(self.config, "partial") return true end +function ToggleSwitch:onHoldSelect(arg, gev) + local position = math.ceil( + (gev.pos.x - self.dimen.x) / self.dimen.w * self.n_pos + ) + self.config:onMakeDefault(self.name, self.name_text, + self.values or self.args, self.toggle, position) + return true +end + return ToggleSwitch From 9fc048ecfcfbae8e5a13e6a34782c47d3a6c6302 Mon Sep 17 00:00:00 2001 From: chrox Date: Thu, 3 Jul 2014 17:54:30 +0800 Subject: [PATCH 3/6] considering visible page count in readerrolling This should fix #660. --- frontend/apps/reader/modules/readerrolling.lua | 3 ++- frontend/document/credocument.lua | 4 ++++ koreader-base | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/frontend/apps/reader/modules/readerrolling.lua b/frontend/apps/reader/modules/readerrolling.lua index d718c8991..4de4d323e 100644 --- a/frontend/apps/reader/modules/readerrolling.lua +++ b/frontend/apps/reader/modules/readerrolling.lua @@ -238,7 +238,8 @@ function ReaderRolling:onGotoViewRel(diff) end self:gotoPos(self.current_pos + pan_diff) elseif self.view.view_mode == "page" then - self:gotoPage(self.current_page + diff) + local page_count = self.ui.document:getVisiblePageCount() + self:gotoPage(self.current_page + diff*page_count) end return true end diff --git a/frontend/document/credocument.lua b/frontend/document/credocument.lua index 46053ee3c..1fd6eb41a 100644 --- a/frontend/document/credocument.lua +++ b/frontend/document/credocument.lua @@ -361,6 +361,10 @@ function CreDocument:setFloatingPunctuation(enabled) self._document:setIntProperty("crengine.style.floating.punctuation.enabled", enabled) end +function CreDocument:getVisiblePageCount() + return self._document:getVisiblePageCount() +end + function CreDocument:setVisiblePageCount(new_count) DEBUG("CreDocument: set visible page count", new_count) self._document:setVisiblePageCount(new_count) diff --git a/koreader-base b/koreader-base index 3672c27f3..25deec728 160000 --- a/koreader-base +++ b/koreader-base @@ -1 +1 @@ -Subproject commit 3672c27f318b26830c569dc67a8121a0ef4ca2cc +Subproject commit 25deec728a94d9546e38f494bc47b26808742008 From 540e8579c7e97c915a40105cb2faf018649c5f20 Mon Sep 17 00:00:00 2001 From: chrox Date: Thu, 3 Jul 2014 18:57:32 +0800 Subject: [PATCH 4/6] update pot file --- l10n/templates/koreader.pot | 69 ++++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 27 deletions(-) diff --git a/l10n/templates/koreader.pot b/l10n/templates/koreader.pot index c9383939b..19afae1da 100644 --- a/l10n/templates/koreader.pot +++ b/l10n/templates/koreader.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: https://github.com/koreader/koreader-base/issues\n" -"POT-Creation-Date: 2014-07-01 13:59+0000\n" +"POT-Creation-Date: 2014-07-03 10:56+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -42,7 +42,7 @@ msgid "" ">>" msgstr "" -#: frontend/apps/reader/modules/readerhighlight.lua:294 +#: frontend/apps/reader/modules/readerhighlight.lua:302 #: frontend/ui/widget/dictquicklookup.lua:152 msgid "" "Add Note" @@ -69,7 +69,7 @@ msgid "" msgstr "" #: frontend/apps/reader/modules/readergoto.lua:36 -#: frontend/ui/widget/confirmbox.lua:26 +#: frontend/ui/widget/confirmbox.lua:29 #: plugins/evernote.koplugin/main.lua:123 #: plugins/zsync.koplugin/main.lua:254 msgid "" @@ -81,7 +81,7 @@ msgid "" "Change Hyphenation to " msgstr "" -#: frontend/apps/reader/modules/readerfont.lua:18 +#: frontend/apps/reader/modules/readerfont.lua:19 msgid "" "Change font" msgstr "" @@ -117,12 +117,12 @@ msgid "" "Cut" msgstr "" -#: frontend/apps/reader/modules/readerfont.lua:180 +#: frontend/apps/reader/modules/readerfont.lua:184 msgid "" "Decrease gamma to " msgstr "" -#: frontend/apps/reader/modules/readerfont.lua:150 +#: frontend/apps/reader/modules/readerfont.lua:154 msgid "" "Decrease line space to " msgstr "" @@ -134,7 +134,7 @@ msgstr "" #: frontend/apps/filemanager/filemanager.lua:111 #: frontend/apps/filemanager/filemanagerhistory.lua:30 -#: frontend/apps/reader/modules/readerhighlight.lua:186 +#: frontend/apps/reader/modules/readerhighlight.lua:187 msgid "" "Delete" msgstr "" @@ -154,7 +154,7 @@ msgid "" "Document menu" msgstr "" -#: frontend/apps/reader/modules/readerhighlight.lua:193 +#: frontend/apps/reader/modules/readerhighlight.lua:194 msgid "" "Edit" msgstr "" @@ -269,7 +269,7 @@ msgid "" "Help" msgstr "" -#: frontend/apps/reader/modules/readerhighlight.lua:286 +#: frontend/apps/reader/modules/readerhighlight.lua:294 #: frontend/ui/widget/dictquicklookup.lua:145 msgid "" "Highlight" @@ -285,12 +285,12 @@ msgid "" "Hyphenation" msgstr "" -#: frontend/apps/reader/modules/readerfont.lua:177 +#: frontend/apps/reader/modules/readerfont.lua:181 msgid "" "Increase gamma to " msgstr "" -#: frontend/apps/reader/modules/readerfont.lua:154 +#: frontend/apps/reader/modules/readerfont.lua:158 msgid "" "Increase line space to " msgstr "" @@ -361,7 +361,7 @@ msgid "" "Logout" msgstr "" -#: frontend/apps/reader/modules/readerhighlight.lua:325 +#: frontend/apps/reader/modules/readerhighlight.lua:333 msgid "" "More" msgstr "" @@ -383,7 +383,7 @@ msgid "" msgstr "" #: frontend/apps/reader/modules/readerfrontlight.lua:115 -#: frontend/ui/widget/confirmbox.lua:25 +#: frontend/ui/widget/confirmbox.lua:28 msgid "" "OK" msgstr "" @@ -398,7 +398,7 @@ msgid "" "Page" msgstr "" -#: frontend/ui/widget/touchmenu.lua:404 +#: frontend/ui/widget/touchmenu.lua:426 msgid "" "Page " msgstr "" @@ -450,7 +450,7 @@ msgid "" "Received file:" msgstr "" -#: frontend/apps/reader/modules/readerfont.lua:204 +#: frontend/apps/reader/modules/readerfont.lua:208 msgid "" "Redrawing with font " msgstr "" @@ -480,7 +480,22 @@ msgid "" "Scroll Mode" msgstr "" -#: frontend/apps/reader/modules/readerfont.lua:135 +#: frontend/ui/widget/configdialog.lua:580 +msgid "" +"Set default " +msgstr "" + +#: frontend/apps/reader/modules/readerfont.lua:223 +msgid "" +"Set default font \"" +msgstr "" + +#: frontend/apps/reader/modules/readerzooming.lua:338 +msgid "" +"Set default zoom mode to \"" +msgstr "" + +#: frontend/apps/reader/modules/readerfont.lua:139 msgid "" "Set font size to " msgstr "" @@ -495,7 +510,7 @@ msgid "" "Set render style" msgstr "" -#: frontend/apps/reader/modules/readerhighlight.lua:314 +#: frontend/apps/reader/modules/readerhighlight.lua:322 msgid "" "Share" msgstr "" @@ -535,7 +550,7 @@ msgid "" "Suspended" msgstr "" -#: frontend/apps/reader/modules/readerzooming.lua:292 +#: frontend/apps/reader/modules/readerzooming.lua:293 msgid "" "Switch zoom mode" msgstr "" @@ -550,7 +565,7 @@ msgid "" "TBRTL" msgstr "" -#: frontend/apps/reader/modules/readertoc.lua:124 +#: frontend/apps/reader/modules/readertoc.lua:153 msgid "" "Table of Contents" msgstr "" @@ -580,7 +595,7 @@ msgid "" "Toggle" msgstr "" -#: frontend/apps/reader/modules/readerhighlight.lua:305 +#: frontend/apps/reader/modules/readerhighlight.lua:313 msgid "" "Translate" msgstr "" @@ -632,32 +647,32 @@ msgid "" "ZSync" msgstr "" -#: frontend/apps/reader/modules/readerzooming.lua:315 +#: frontend/apps/reader/modules/readerzooming.lua:320 msgid "" "Zoom to fit content" msgstr "" -#: frontend/apps/reader/modules/readerzooming.lua:300 +#: frontend/apps/reader/modules/readerzooming.lua:302 msgid "" "Zoom to fit content height" msgstr "" -#: frontend/apps/reader/modules/readerzooming.lua:295 +#: frontend/apps/reader/modules/readerzooming.lua:296 msgid "" "Zoom to fit content width" msgstr "" -#: frontend/apps/reader/modules/readerzooming.lua:320 +#: frontend/apps/reader/modules/readerzooming.lua:326 msgid "" "Zoom to fit page" msgstr "" -#: frontend/apps/reader/modules/readerzooming.lua:310 +#: frontend/apps/reader/modules/readerzooming.lua:314 msgid "" "Zoom to fit page height" msgstr "" -#: frontend/apps/reader/modules/readerzooming.lua:305 +#: frontend/apps/reader/modules/readerzooming.lua:308 msgid "" "Zoom to fit page width" msgstr "" @@ -763,7 +778,7 @@ msgid "" "no choices available" msgstr "" -#: frontend/ui/widget/confirmbox.lua:23 +#: frontend/ui/widget/confirmbox.lua:26 msgid "" "no text" msgstr "" From 2900432efb25ba4378922580f2f1192a1dc37a99 Mon Sep 17 00:00:00 2001 From: chrox Date: Thu, 3 Jul 2014 20:42:48 +0800 Subject: [PATCH 5/6] read/save document settings in document sidecar too --- frontend/docsettings.lua | 64 ++++++++++++++++++++++++++++------------ 1 file changed, 45 insertions(+), 19 deletions(-) diff --git a/frontend/docsettings.lua b/frontend/docsettings.lua index 66cc9cf2f..9233548ef 100644 --- a/frontend/docsettings.lua +++ b/frontend/docsettings.lua @@ -32,23 +32,37 @@ function DocSettings:getNameFromHistory(hist_name) end function DocSettings:open(docfile) - local conf_path = nil + local history_path = nil + local sidecar_path = nil if docfile == ".reader" then -- we handle reader setting as special case - conf_path = "settings.reader.lua" + history_path = "settings.reader.lua" else - if lfs.attributes("./history","mode") ~= "directory" then + if lfs.attributes("./history", "mode") ~= "directory" then lfs.mkdir("history") end - conf_path = self:getHistoryPath(docfile) + history_path = self:getHistoryPath(docfile) + + local sidecar = docfile:match("(.*)%.")..".sdr" + if lfs.attributes(sidecar, "mode") ~= "directory" then + lfs.mkdir(sidecar) + end + sidecar_path = sidecar.."/"..docfile:match(".*%/(.*)")..".lua" end -- construct settings obj - local new = { file = conf_path, data = {} } - local ok, stored = pcall(dofile, new.file) + local new = { + history_file = history_path, + sidecar_file = sidecar_path, + data = {} + } + local ok, stored = pcall(dofile, new.history_file) if not ok then - -- try legacy conf path, for backward compatibility. this also - -- takes care of reader legacy setting - ok, stored = pcall(dofile, docfile..".kpdfview.lua") + ok, stored = pcall(dofile, new.sidecar_file) + if not ok then + -- try legacy conf path, for backward compatibility. this also + -- takes care of reader legacy setting + ok, stored = pcall(dofile, docfile..".kpdfview.lua") + end end if ok and stored then new.data = stored @@ -112,18 +126,30 @@ function DocSettings:_serialize(what, outt, indent, max_lv) end function DocSettings:flush() - -- write a serialized version of the data table - if not self.file then + -- write serialized version of the data table into + -- i) history directory in root directory of koreader + -- ii) sidecar directory in the same directory of the document + if not self.history_file and not self.sidecar_file then return end - local f_out = io.open(self.file, "w") - if f_out ~= nil then - os.setlocale('C', 'numeric') - local out = {"-- we can read Lua syntax here!\nreturn "} - self:_serialize(self.data, out, 0) - table.insert(out, "\n") - f_out:write(table.concat(out)) - f_out:close() + + local serials = {} + if self.history_file then + table.insert(serials, io.open(self.history_file, "w")) + end + if self.sidecar_file then + table.insert(serials, io.open(self.sidecar_file, "w")) + end + os.setlocale('C', 'numeric') + local out = {"-- we can read Lua syntax here!\nreturn "} + self:_serialize(self.data, out, 0) + table.insert(out, "\n") + local s_out = table.concat(out) + for _, f_out in ipairs(serials) do + if f_out ~= nil then + f_out:write(s_out) + f_out:close() + end end end From 73e0608327d0afca00aa09717cca08fe51a4d74e Mon Sep 17 00:00:00 2001 From: chrox Date: Thu, 3 Jul 2014 20:43:17 +0800 Subject: [PATCH 6/6] flush reader settings when closing readerui --- frontend/apps/reader/readerui.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/apps/reader/readerui.lua b/frontend/apps/reader/readerui.lua index 049e37fcb..9bc50c61e 100644 --- a/frontend/apps/reader/readerui.lua +++ b/frontend/apps/reader/readerui.lua @@ -291,6 +291,7 @@ end function ReaderUI:saveSettings() self:handleEvent(Event:new("SaveSettings")) self.doc_settings:flush() + G_reader_settings:flush() end function ReaderUI:onFlushSettings()