|
|
@ -14,6 +14,7 @@ local SetDefaults = InputContainer:new{
|
|
|
|
defaults_value = {},
|
|
|
|
defaults_value = {},
|
|
|
|
results = {},
|
|
|
|
results = {},
|
|
|
|
defaults_menu = {},
|
|
|
|
defaults_menu = {},
|
|
|
|
|
|
|
|
already_read = false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
local function settype(b,t)
|
|
|
|
local function settype(b,t)
|
|
|
@ -74,7 +75,7 @@ end
|
|
|
|
function SetDefaults:ConfirmEdit()
|
|
|
|
function SetDefaults:ConfirmEdit()
|
|
|
|
if not SetDefaults.EditConfirmed then
|
|
|
|
if not SetDefaults.EditConfirmed then
|
|
|
|
UIManager:show(ConfirmBox:new{
|
|
|
|
UIManager:show(ConfirmBox:new{
|
|
|
|
text = _("Wrong settings might crash Koreader! Continue?"),
|
|
|
|
text = _("Some changes will just work on the next restart. Wrong settings might crash Koreader! Continue?"),
|
|
|
|
ok_callback = function()
|
|
|
|
ok_callback = function()
|
|
|
|
self.EditConfirmed = true
|
|
|
|
self.EditConfirmed = true
|
|
|
|
self:init()
|
|
|
|
self:init()
|
|
|
@ -87,16 +88,6 @@ end
|
|
|
|
|
|
|
|
|
|
|
|
function SetDefaults:init()
|
|
|
|
function SetDefaults:init()
|
|
|
|
|
|
|
|
|
|
|
|
local function setdisplayname(i)
|
|
|
|
|
|
|
|
local dummy = self.defaults_name[i] .. " = "
|
|
|
|
|
|
|
|
if type(_G[self.defaults_name[i]]) == "string" and not tonumber(self.defaults_value[i]) then
|
|
|
|
|
|
|
|
dummy = dummy .. "\"" .. tostring(self.defaults_value[i]) .. "\"" -- add quotation marks to strings
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
dummy = dummy .. tostring(self.defaults_value[i])
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
return dummy
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.defaults_name = {}
|
|
|
|
self.defaults_name = {}
|
|
|
|
self.defaults_value = {}
|
|
|
|
self.defaults_value = {}
|
|
|
|
self.results = {}
|
|
|
|
self.results = {}
|
|
|
@ -123,7 +114,7 @@ function SetDefaults:init()
|
|
|
|
local settings_type = type(_G[self.defaults_name[i]])
|
|
|
|
local settings_type = type(_G[self.defaults_name[i]])
|
|
|
|
if settings_type == "boolean" then
|
|
|
|
if settings_type == "boolean" then
|
|
|
|
table.insert(self.results, {
|
|
|
|
table.insert(self.results, {
|
|
|
|
text = setdisplayname(i),
|
|
|
|
text = self:build_setting(i),
|
|
|
|
callback = function()
|
|
|
|
callback = function()
|
|
|
|
GLOBAL_INPUT_VALUE = tostring(self.defaults_value[i])
|
|
|
|
GLOBAL_INPUT_VALUE = tostring(self.defaults_value[i])
|
|
|
|
self.set_dialog = InputDialog:new{
|
|
|
|
self.set_dialog = InputDialog:new{
|
|
|
@ -147,7 +138,7 @@ function SetDefaults:init()
|
|
|
|
_G[self.defaults_name[i]] = true
|
|
|
|
_G[self.defaults_name[i]] = true
|
|
|
|
settings_changed = true
|
|
|
|
settings_changed = true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
self.results[i].text = setdisplayname(i)
|
|
|
|
self.results[i].text = self:build_setting(i)
|
|
|
|
self:close()
|
|
|
|
self:close()
|
|
|
|
self.defaults_menu:swithItemTable("Defaults", self.results, i)
|
|
|
|
self.defaults_menu:swithItemTable("Defaults", self.results, i)
|
|
|
|
UIManager:show(menu_container)
|
|
|
|
UIManager:show(menu_container)
|
|
|
@ -162,7 +153,7 @@ function SetDefaults:init()
|
|
|
|
_G[self.defaults_name[i]] = false
|
|
|
|
_G[self.defaults_name[i]] = false
|
|
|
|
settings_changed = true
|
|
|
|
settings_changed = true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
self.results[i].text = setdisplayname(i)
|
|
|
|
self.results[i].text = self:build_setting(i)
|
|
|
|
self.defaults_menu:swithItemTable("Defaults", self.results, i)
|
|
|
|
self.defaults_menu:swithItemTable("Defaults", self.results, i)
|
|
|
|
self:close()
|
|
|
|
self:close()
|
|
|
|
UIManager:show(menu_container)
|
|
|
|
UIManager:show(menu_container)
|
|
|
@ -181,7 +172,7 @@ function SetDefaults:init()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
else
|
|
|
|
else
|
|
|
|
table.insert(self.results, {
|
|
|
|
table.insert(self.results, {
|
|
|
|
text = setdisplayname(i),
|
|
|
|
text = self:build_setting(i),
|
|
|
|
callback = function()
|
|
|
|
callback = function()
|
|
|
|
GLOBAL_INPUT_VALUE = tostring(self.defaults_value[i])
|
|
|
|
GLOBAL_INPUT_VALUE = tostring(self.defaults_value[i])
|
|
|
|
self.set_dialog = InputDialog:new{
|
|
|
|
self.set_dialog = InputDialog:new{
|
|
|
@ -200,12 +191,16 @@ function SetDefaults:init()
|
|
|
|
text = _("OK"),
|
|
|
|
text = _("OK"),
|
|
|
|
enabled = true,
|
|
|
|
enabled = true,
|
|
|
|
callback = function()
|
|
|
|
callback = function()
|
|
|
|
if _G[self.defaults_name[i]] ~= settype(self.set_dialog:getInputText(),settings_type) then
|
|
|
|
if type(_G[self.defaults_name[i]]) == "table" then
|
|
|
|
|
|
|
|
settings_changed = true
|
|
|
|
|
|
|
|
self.defaults_value[i] = self.set_dialog:getInputText()
|
|
|
|
|
|
|
|
elseif _G[self.defaults_name[i]] ~= settype(self.set_dialog:getInputText(),settings_type) then
|
|
|
|
_G[self.defaults_name[i]] = settype(self.set_dialog:getInputText(),settings_type)
|
|
|
|
_G[self.defaults_name[i]] = settype(self.set_dialog:getInputText(),settings_type)
|
|
|
|
settings_changed = true
|
|
|
|
settings_changed = true
|
|
|
|
end
|
|
|
|
|
|
|
|
self.defaults_value[i] = _G[self.defaults_name[i]]
|
|
|
|
self.defaults_value[i] = _G[self.defaults_name[i]]
|
|
|
|
self.results[i].text = setdisplayname(i)
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.results[i].text = self:build_setting(i)
|
|
|
|
self:close()
|
|
|
|
self:close()
|
|
|
|
self.defaults_menu:swithItemTable("Defaults", self.results, i)
|
|
|
|
self.defaults_menu:swithItemTable("Defaults", self.results, i)
|
|
|
|
UIManager:show(menu_container)
|
|
|
|
UIManager:show(menu_container)
|
|
|
@ -228,7 +223,23 @@ function SetDefaults:init()
|
|
|
|
UIManager:show(menu_container)
|
|
|
|
UIManager:show(menu_container)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local function getTableValues(t,dtap)
|
|
|
|
|
|
|
|
local dummy = "{"
|
|
|
|
|
|
|
|
for n,v in pairs(t) do
|
|
|
|
|
|
|
|
if dtap:sub(1,4) == "DTAP" or dtap:sub(1,11) == "DDOUBLE_TAP" then
|
|
|
|
|
|
|
|
dummy = dummy .. tostring(n) .. " = " .. tostring(v) .. ", "
|
|
|
|
|
|
|
|
elseif tonumber(v) then
|
|
|
|
|
|
|
|
dummy = dummy .. tostring(v) .. ", "
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
dummy = dummy .. "\"" .. tostring(v) .. "\", "
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
dummy = dummy:sub(1,string.len(dummy) - 2) .. "}"
|
|
|
|
|
|
|
|
return dummy
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
function SetDefaults:filldefaults()
|
|
|
|
function SetDefaults:filldefaults()
|
|
|
|
|
|
|
|
if not SetDefaults.already_read then
|
|
|
|
local i = 0
|
|
|
|
local i = 0
|
|
|
|
for n,v in orderedPairs(_G) do
|
|
|
|
for n,v in orderedPairs(_G) do
|
|
|
|
if (not string.find(tostring(v), "<")) and (not string.find(tostring(v), ": ")) and string.sub(n,1,1) ~= "_" and string.upper(n) == n and n ~= "GLOBAL_INPUT_VALUE" and n ~= "LIBRARY_PATH" then
|
|
|
|
if (not string.find(tostring(v), "<")) and (not string.find(tostring(v), ": ")) and string.sub(n,1,1) ~= "_" and string.upper(n) == n and n ~= "GLOBAL_INPUT_VALUE" and n ~= "LIBRARY_PATH" then
|
|
|
@ -236,6 +247,13 @@ function SetDefaults:filldefaults()
|
|
|
|
SetDefaults.defaults_name[i] = n
|
|
|
|
SetDefaults.defaults_name[i] = n
|
|
|
|
SetDefaults.defaults_value[i] = v
|
|
|
|
SetDefaults.defaults_value[i] = v
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
if string.find(tostring(v), "table: ") and string.upper(n) == n and n ~= "ARGV" and n ~= "_G" then
|
|
|
|
|
|
|
|
i = i + 1
|
|
|
|
|
|
|
|
SetDefaults.defaults_name[i] = n
|
|
|
|
|
|
|
|
SetDefaults.defaults_value[i] = getTableValues(v,n)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
SetDefaults.already_read = true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
@ -253,6 +271,18 @@ function SetDefaults:ConfirmSave()
|
|
|
|
})
|
|
|
|
})
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function SetDefaults:build_setting(j)
|
|
|
|
|
|
|
|
local ret = self.defaults_name[j] .. " = "
|
|
|
|
|
|
|
|
if type(_G[self.defaults_name[j]]) == "boolean" or type(_G[self.defaults_name[j]]) == "table" then
|
|
|
|
|
|
|
|
ret = ret .. tostring(self.defaults_value[j])
|
|
|
|
|
|
|
|
elseif tonumber(self.defaults_value[j]) then
|
|
|
|
|
|
|
|
ret = ret .. tostring(tonumber(self.defaults_value[j]))
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
ret = ret .. "\"" .. tostring(self.defaults_value[j]) .. "\""
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
return ret
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
function SetDefaults:SaveSettings()
|
|
|
|
function SetDefaults:SaveSettings()
|
|
|
|
|
|
|
|
|
|
|
|
local function fileread(filename,array)
|
|
|
|
local function fileread(filename,array)
|
|
|
@ -269,18 +299,6 @@ function SetDefaults:SaveSettings()
|
|
|
|
file:close()
|
|
|
|
file:close()
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
local function build_setting(j)
|
|
|
|
|
|
|
|
local ret = SetDefaults.defaults_name[j] .. " = "
|
|
|
|
|
|
|
|
if tonumber(SetDefaults.defaults_value[j]) then
|
|
|
|
|
|
|
|
ret = ret .. tostring(tonumber(SetDefaults.defaults_value[j]))
|
|
|
|
|
|
|
|
elseif type(_G[SetDefaults.defaults_name[j]]) == "boolean" then
|
|
|
|
|
|
|
|
ret = ret .. tostring(SetDefaults.defaults_value[j])
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
ret = ret .. "\"" .. tostring(SetDefaults.defaults_value[j]) .. "\""
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
return ret
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local filename = "defaults.persistent.lua"
|
|
|
|
local filename = "defaults.persistent.lua"
|
|
|
|
local file
|
|
|
|
local file
|
|
|
|
if io.open(filename,"r") == nil then
|
|
|
|
if io.open(filename,"r") == nil then
|
|
|
@ -300,8 +318,8 @@ function SetDefaults:SaveSettings()
|
|
|
|
-- handle case "found in persistent", replace it
|
|
|
|
-- handle case "found in persistent", replace it
|
|
|
|
for i = 1,#dpl do
|
|
|
|
for i = 1,#dpl do
|
|
|
|
for j=1,#SetDefaults.defaults_name do
|
|
|
|
for j=1,#SetDefaults.defaults_name do
|
|
|
|
if string.find(dpl[i],SetDefaults.defaults_name[j]) == 1 then
|
|
|
|
if string.find(dpl[i],SetDefaults.defaults_name[j] .. " ") == 1 then
|
|
|
|
dpl[i] = build_setting(j)
|
|
|
|
dpl[i] = self:build_setting(j)
|
|
|
|
done[j] = true
|
|
|
|
done[j] = true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
@ -310,7 +328,7 @@ function SetDefaults:SaveSettings()
|
|
|
|
-- handle case "exists identical in non-persistent", ignore it
|
|
|
|
-- handle case "exists identical in non-persistent", ignore it
|
|
|
|
for i = 1,#dl do
|
|
|
|
for i = 1,#dl do
|
|
|
|
for j=1,#SetDefaults.defaults_name do
|
|
|
|
for j=1,#SetDefaults.defaults_name do
|
|
|
|
if dl[i]:gsub("1024[*]1024[*]10","10485760"):gsub("1024[*]1024[*]30","31457280"):gsub("[.]0$",""):gsub("([.][0-9]+)0","%1") == build_setting(j) then
|
|
|
|
if dl[i]:gsub("1/4","0.25"):gsub("2/4","0.5"):gsub("3/4","0.75"):gsub("4/4","1"):gsub("1/8","0.125"):gsub("2/8","0.25"):gsub("3/8","0.375"):gsub("4/8","0.5"):gsub("5/8","0.625"):gsub("6/8","0.75"):gsub("7/8","0.875"):gsub("8/8","1"):gsub("1/16","0.0625"):gsub("15/16","0.9375"):gsub("1024[*]1024[*]10","10485760"):gsub("1024[*]1024[*]30","31457280"):gsub("[.]0$",""):gsub("([.][0-9]+)0","%1") == self:build_setting(j) then
|
|
|
|
done[j] = true
|
|
|
|
done[j] = true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
@ -319,7 +337,7 @@ function SetDefaults:SaveSettings()
|
|
|
|
-- handle case "not in persistent and different in non-persistent", add to persistent
|
|
|
|
-- handle case "not in persistent and different in non-persistent", add to persistent
|
|
|
|
for j=1,#SetDefaults.defaults_name do
|
|
|
|
for j=1,#SetDefaults.defaults_name do
|
|
|
|
if not done[j] then
|
|
|
|
if not done[j] then
|
|
|
|
dpl[#dpl+1] = build_setting(j)
|
|
|
|
dpl[#dpl+1] = self:build_setting(j)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
@ -330,5 +348,6 @@ function SetDefaults:SaveSettings()
|
|
|
|
file:close()
|
|
|
|
file:close()
|
|
|
|
UIManager:show(InfoMessage:new{text = _("Default settings successfully saved!")})
|
|
|
|
UIManager:show(InfoMessage:new{text = _("Default settings successfully saved!")})
|
|
|
|
settings_changed = false
|
|
|
|
settings_changed = false
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
return SetDefaults
|
|
|
|
return SetDefaults
|
|
|
|