add auto save settings option

pull/419/head
chrox 10 years ago
parent 32cd7b2a88
commit ee8838960b

@ -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

Loading…
Cancel
Save