mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
add auto save settings option
This commit is contained in:
@@ -83,6 +83,9 @@ DCREREADER_CONFIG_FONT_SIZES = {16, 20, 22, 24, 28, 32, 38, 44} -- range from 1
|
||||
-- gesture detector defaults
|
||||
DGESDETECT_DISABLE_DOUBLE_TAP = true
|
||||
|
||||
-- change this to any numerical value if you want to antomatically save settings when turning pages
|
||||
DAUTO_SAVE_PAGING_COUNT = nil
|
||||
|
||||
-- ####################################################################
|
||||
-- following features are not supported right now
|
||||
-- ####################################################################
|
||||
|
||||
@@ -29,7 +29,7 @@ function ReaderBookmark:onReadSettings(config)
|
||||
self.bookmarks = config:readSetting("bookmarks") or {}
|
||||
end
|
||||
|
||||
function ReaderBookmark:onCloseDocument()
|
||||
function ReaderBookmark:onSaveSettings()
|
||||
self.ui.doc_settings:saveSetting("bookmarks", self.bookmarks)
|
||||
end
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ function ReaderConfig:onReadSettings(config)
|
||||
self.last_panel_index = config:readSetting("config_panel_index") or 1
|
||||
end
|
||||
|
||||
function ReaderConfig:onCloseDocument()
|
||||
function ReaderConfig:onSaveSettings()
|
||||
self.configurable:saveSettings(self.ui.doc_settings, self.options.prefix.."_")
|
||||
self.ui.doc_settings:saveSetting("config_panel_index", self.last_panel_index)
|
||||
end
|
||||
|
||||
@@ -156,7 +156,7 @@ function ReaderCropping:onReadSettings(config)
|
||||
self.document.bbox = config:readSetting("bbox")
|
||||
end
|
||||
|
||||
function ReaderCropping:onCloseDocument()
|
||||
function ReaderCropping:onSaveSettings()
|
||||
self.ui.doc_settings:saveSetting("bbox", self.document.bbox)
|
||||
end
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@ function ReaderDictionary:onReadSettings(config)
|
||||
self.default_dictionary = config:readSetting("default_dictionary")
|
||||
end
|
||||
|
||||
function ReaderDictionary:onCloseDocument()
|
||||
function ReaderDictionary:onSaveSettings()
|
||||
self.ui.doc_settings:saveSetting("default_dictionary", self.default_dictionary)
|
||||
end
|
||||
|
||||
|
||||
@@ -213,7 +213,7 @@ function ReaderFont:onChangeFontGamma(direction)
|
||||
return true
|
||||
end
|
||||
|
||||
function ReaderFont:onCloseDocument()
|
||||
function ReaderFont:onSaveSettings()
|
||||
self.ui.doc_settings:saveSetting("font_face", self.font_face)
|
||||
self.ui.doc_settings:saveSetting("header_font_face", self.header_font_face)
|
||||
self.ui.doc_settings:saveSetting("font_size", self.font_size)
|
||||
|
||||
@@ -18,7 +18,7 @@ function ReaderKoptListener:onReadSettings(config)
|
||||
self:setZoomMode(self.normal_zoom_mode)
|
||||
end
|
||||
|
||||
function ReaderKoptListener:onCloseDocument()
|
||||
function ReaderKoptListener:onSaveSettings()
|
||||
self.ui.doc_settings:saveSetting("normal_zoom_mode", self.normal_zoom_mode)
|
||||
end
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ function ReaderMenu:onSetDimensions(dimen)
|
||||
end
|
||||
end
|
||||
|
||||
function ReaderMenu:onCloseDocument()
|
||||
function ReaderMenu:onSaveSettings()
|
||||
end
|
||||
|
||||
function ReaderMenu:registerToMainMenu(widget)
|
||||
|
||||
@@ -133,7 +133,7 @@ function ReaderPaging:onReadSettings(config)
|
||||
end
|
||||
end
|
||||
|
||||
function ReaderPaging:onCloseDocument()
|
||||
function ReaderPaging:onSaveSettings()
|
||||
self.ui.doc_settings:saveSetting("page_positions", self.page_positions)
|
||||
self.ui.doc_settings:saveSetting("last_page", self:getTopPage())
|
||||
self.ui.doc_settings:saveSetting("percent_finished", self.current_page/self.number_of_pages)
|
||||
|
||||
@@ -155,7 +155,7 @@ function ReaderRolling:onReadSettings(config)
|
||||
end
|
||||
end
|
||||
|
||||
function ReaderRolling:onCloseDocument()
|
||||
function ReaderRolling:onSaveSettings()
|
||||
-- remove last_percent config since its deprecated
|
||||
self.ui.doc_settings:saveSetting("last_percent", nil)
|
||||
self.ui.doc_settings:saveSetting("last_xpointer", self.ui.document:getXPointer())
|
||||
|
||||
@@ -33,7 +33,7 @@ function ReaderTypeset:onReadSettings(config)
|
||||
end
|
||||
end
|
||||
|
||||
function ReaderTypeset:onCloseDocument()
|
||||
function ReaderTypeset:onSaveSettings()
|
||||
self.ui.doc_settings:saveSetting("css", self.css)
|
||||
self.ui.doc_settings:saveSetting("embedded_css", self.embedded_css)
|
||||
end
|
||||
|
||||
@@ -59,6 +59,9 @@ local ReaderView = OverlapGroup:new{
|
||||
dogear_visible = false,
|
||||
-- in flipping state
|
||||
flipping_visible = false,
|
||||
|
||||
-- auto save settings after turning pages
|
||||
auto_save_paging_count = 0,
|
||||
}
|
||||
|
||||
function ReaderView:init()
|
||||
@@ -516,11 +519,13 @@ end
|
||||
function ReaderView:onPageUpdate(new_page_no)
|
||||
self.state.page = new_page_no
|
||||
self:recalculate()
|
||||
self:autoSaveSettings()
|
||||
end
|
||||
|
||||
function ReaderView:onPosUpdate(new_pos)
|
||||
self.state.pos = new_pos
|
||||
self:recalculate()
|
||||
self:autoSaveSettings()
|
||||
end
|
||||
|
||||
function ReaderView:onZoomUpdate(zoom)
|
||||
@@ -577,7 +582,7 @@ function ReaderView:onSetPageMargins(margins)
|
||||
return true
|
||||
end
|
||||
|
||||
function ReaderView:onCloseDocument()
|
||||
function ReaderView:onSaveSettings()
|
||||
self.ui.doc_settings:saveSetting("render_mode", self.render_mode)
|
||||
self.ui.doc_settings:saveSetting("screen_mode", self.screen_mode)
|
||||
self.ui.doc_settings:saveSetting("rotation_mode", self.cur_rotation_mode)
|
||||
@@ -585,4 +590,15 @@ function ReaderView:onCloseDocument()
|
||||
self.ui.doc_settings:saveSetting("highlight", self.highlight.saved)
|
||||
end
|
||||
|
||||
function ReaderView:autoSaveSettings()
|
||||
if DAUTO_SAVE_PAGING_COUNT then
|
||||
if self.auto_save_paging_count == DAUTO_SAVE_PAGING_COUNT then
|
||||
self.ui:saveSettings()
|
||||
self.auto_save_paging_count = 0
|
||||
else
|
||||
self.auto_save_paging_count = self.auto_save_paging_count + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return ReaderView
|
||||
|
||||
@@ -100,7 +100,7 @@ function ReaderZooming:onReadSettings(config)
|
||||
self.ui:handleEvent(Event:new("SetZoomMode", zoom_mode))
|
||||
end
|
||||
|
||||
function ReaderZooming:onCloseDocument()
|
||||
function ReaderZooming:onSaveSettings()
|
||||
self.ui.doc_settings:saveSetting("zoom_mode", self.zoom_mode)
|
||||
end
|
||||
|
||||
|
||||
@@ -274,10 +274,14 @@ function ReaderUI:onSetDimensions(dimen)
|
||||
self.dimen = dimen
|
||||
end
|
||||
|
||||
function ReaderUI:saveSettings()
|
||||
self:handleEvent(Event:new("SaveSettings"))
|
||||
self.doc_settings:flush()
|
||||
end
|
||||
|
||||
function ReaderUI:onClose()
|
||||
DEBUG("closing reader")
|
||||
self:handleEvent(Event:new("CloseDocument"))
|
||||
self.doc_settings:flush()
|
||||
self:saveSettings()
|
||||
if self.document ~= nil then
|
||||
self.document:close()
|
||||
self.document = nil
|
||||
|
||||
Reference in New Issue
Block a user