defaults(fix): purge entry from persistent file

pull/2045/head
Qingping Hou 8 years ago
parent 476e35708d
commit 9586b36eb6

@ -291,12 +291,23 @@ function SetDefaults:SaveSettings()
if not self.changed[j] then checked[j] = true end if not self.changed[j] then checked[j] = true end
end end
-- handle case "found in persistent" and changed, replace it -- load default value for defaults
local defaults = {}
local load_defaults = loadfile(defaults_path)
setfenv(load_defaults, defaults)
load_defaults()
-- handle case "found in persistent" and changed, replace/delete it
for k, v in pairs(persisted_defaults) do for k, v in pairs(persisted_defaults) do
for j=1, #self.defaults_name do for j=1, #self.defaults_name do
if not checked[j] if not checked[j]
and k == self.defaults_name[j] then and k == self.defaults_name[j] then
persisted_defaults[k] = self.defaults_value[j] -- remove from persist if value got reverted back to the
-- default one
if defaults[k] == self.defaults_value[j] then
persisted_defaults[k] = nil
else
persisted_defaults[k] = self.defaults_value[j]
end
checked[j] = true checked[j] = true
end end
end end

@ -82,6 +82,45 @@ DCREREADER_CONFIG_MARGIN_SIZES_LARGE = {
[4] = 20 [4] = 20
} }
DCREREADER_VIEW_MODE = "page" DCREREADER_VIEW_MODE = "page"
]],
fd:read("*a"))
fd:close()
os.remove(persistent_filename)
end)
it("should delete entry from defaults.persistent.lua if value is reverted back to default", function()
local persistent_filename = DataStorage:getDataDir() .. "/defaults.persistent.lua"
local fd = io.open(persistent_filename, "w")
fd:write(
[[-- For configuration changes that persists between updates
SEARCH_TITLE = true
DCREREADER_CONFIG_MARGIN_SIZES_LARGE = {
[1] = 20,
[2] = 20,
[3] = 20,
[4] = 20
}
DCREREADER_VIEW_MODE = "page"
DHINTCOUNT = 2
]])
fd:close()
-- in persistent
Defaults:init()
Defaults.changed[29] = true
Defaults.defaults_value[29] = 1
Defaults:SaveSettings()
fd = io.open(persistent_filename)
assert.Equals(
[[-- For configuration changes that persists between updates
SEARCH_TITLE = true
DCREREADER_VIEW_MODE = "page"
DCREREADER_CONFIG_MARGIN_SIZES_LARGE = {
[1] = 20,
[2] = 20,
[3] = 20,
[4] = 20
}
]], ]],
fd:read("*a")) fd:read("*a"))
fd:close() fd:close()

Loading…
Cancel
Save