|
|
|
@ -7,10 +7,11 @@ local ConfirmBox = require("ui/widget/confirmbox")
|
|
|
|
|
local CenterContainer = require("ui/widget/container/centercontainer")
|
|
|
|
|
local Screen = require("ui/screen")
|
|
|
|
|
local Menu = require("ui/widget/menu")
|
|
|
|
|
local Font = require("ui/font")
|
|
|
|
|
|
|
|
|
|
local SetDefaults = InputContainer:new{
|
|
|
|
|
bools_name = {},
|
|
|
|
|
bools_value = {},
|
|
|
|
|
defaults_name = {},
|
|
|
|
|
defaults_value = {},
|
|
|
|
|
results = {},
|
|
|
|
|
defaults_menu = {},
|
|
|
|
|
}
|
|
|
|
@ -87,28 +88,29 @@ end
|
|
|
|
|
function SetDefaults:init()
|
|
|
|
|
|
|
|
|
|
local function setdisplayname(i)
|
|
|
|
|
local dummy = self.bools_name[i] .. " = "
|
|
|
|
|
if type(_G[self.bools_name[i]]) == "string" and not tonumber(self.bools_value[i]) then
|
|
|
|
|
dummy = dummy .. "\"" .. tostring(self.bools_value[i]) .. "\"" -- add quotation marks to strings
|
|
|
|
|
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.bools_value[i])
|
|
|
|
|
dummy = dummy .. tostring(self.defaults_value[i])
|
|
|
|
|
end
|
|
|
|
|
return dummy
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
self.bools_name = {}
|
|
|
|
|
self.bools_value = {}
|
|
|
|
|
self.defaults_name = {}
|
|
|
|
|
self.defaults_value = {}
|
|
|
|
|
self.results = {}
|
|
|
|
|
|
|
|
|
|
self.fillbools()
|
|
|
|
|
self.filldefaults()
|
|
|
|
|
|
|
|
|
|
local menu_container = CenterContainer:new{
|
|
|
|
|
dimen = Screen:getSize(),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
self.defaults_menu = Menu:new{
|
|
|
|
|
width = Screen:getWidth()-50,
|
|
|
|
|
height = Screen:getHeight()-50,
|
|
|
|
|
width = Screen:getWidth()-15,
|
|
|
|
|
height = Screen:getHeight()-15,
|
|
|
|
|
cface = Font:getFace("cfont", 22),
|
|
|
|
|
show_parent = menu_container,
|
|
|
|
|
_manager = self,
|
|
|
|
|
}
|
|
|
|
@ -117,21 +119,84 @@ function SetDefaults:init()
|
|
|
|
|
UIManager:close(menu_container)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
for i=1,#self.bools_name do
|
|
|
|
|
for i=1,#self.defaults_name do
|
|
|
|
|
local settings_type = type(_G[self.defaults_name[i]])
|
|
|
|
|
if settings_type == "boolean" then
|
|
|
|
|
table.insert(self.results, {
|
|
|
|
|
text = setdisplayname(i),
|
|
|
|
|
callback = function()
|
|
|
|
|
GLOBAL_INPUT_VALUE = tostring(self.bools_value[i])
|
|
|
|
|
GLOBAL_INPUT_VALUE = tostring(self.defaults_value[i])
|
|
|
|
|
self.set_dialog = InputDialog:new{
|
|
|
|
|
title = self.bools_name[i] .. ":",
|
|
|
|
|
title = self.defaults_name[i] .. ":",
|
|
|
|
|
buttons = {
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
text = "true",
|
|
|
|
|
enabled = true,
|
|
|
|
|
callback = function()
|
|
|
|
|
self.defaults_value[i] = true
|
|
|
|
|
if not _G[self.defaults_name[i]] then
|
|
|
|
|
_G[self.defaults_name[i]] = true
|
|
|
|
|
settings_changed = true
|
|
|
|
|
end
|
|
|
|
|
self.results[i].text = setdisplayname(i)
|
|
|
|
|
self:close()
|
|
|
|
|
self.defaults_menu:swithItemTable("Defaults", self.results, i)
|
|
|
|
|
UIManager:show(menu_container)
|
|
|
|
|
end
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
text = "false",
|
|
|
|
|
enabled = true,
|
|
|
|
|
callback = function()
|
|
|
|
|
self.defaults_value[i] = false
|
|
|
|
|
if _G[self.defaults_name[i]] then
|
|
|
|
|
_G[self.defaults_name[i]] = false
|
|
|
|
|
settings_changed = true
|
|
|
|
|
end
|
|
|
|
|
self.results[i].text = setdisplayname(i)
|
|
|
|
|
self.defaults_menu:swithItemTable("Defaults", self.results, i)
|
|
|
|
|
self:close()
|
|
|
|
|
UIManager:show(menu_container)
|
|
|
|
|
end
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
text = _("Cancel"),
|
|
|
|
|
enabled = true,
|
|
|
|
|
callback = function()
|
|
|
|
|
self:close()
|
|
|
|
|
UIManager:show(menu_container)
|
|
|
|
|
end
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
input_type = settings_type,
|
|
|
|
|
width = Screen:getWidth() * 0.95,
|
|
|
|
|
height = Screen:getHeight() * 0.2,
|
|
|
|
|
}
|
|
|
|
|
GLOBAL_INPUT_VALUE = nil
|
|
|
|
|
self.set_dialog:onShowKeyboard()
|
|
|
|
|
UIManager:show(self.set_dialog)
|
|
|
|
|
end
|
|
|
|
|
})
|
|
|
|
|
else
|
|
|
|
|
table.insert(self.results, {
|
|
|
|
|
text = setdisplayname(i),
|
|
|
|
|
callback = function()
|
|
|
|
|
GLOBAL_INPUT_VALUE = tostring(self.defaults_value[i])
|
|
|
|
|
self.set_dialog = InputDialog:new{
|
|
|
|
|
title = self.defaults_name[i] .. ":",
|
|
|
|
|
buttons = {
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
text = _("OK"),
|
|
|
|
|
enabled = true,
|
|
|
|
|
callback = function()
|
|
|
|
|
_G[self.bools_name[i]] = settype(self.set_dialog:getInputText(),type(_G[self.bools_name[i]]))
|
|
|
|
|
self.bools_value[i] = _G[self.bools_name[i]]
|
|
|
|
|
self.defaults_value[i] = _G[self.defaults_name[i]]
|
|
|
|
|
if _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)
|
|
|
|
|
settings_changed = true
|
|
|
|
|
end
|
|
|
|
|
self.results[i].text = setdisplayname(i)
|
|
|
|
|
self:close()
|
|
|
|
|
self.defaults_menu:swithItemTable("Defaults", self.results, i)
|
|
|
|
@ -148,6 +213,7 @@ function SetDefaults:init()
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
input_type = settings_type,
|
|
|
|
|
width = Screen:getWidth() * 0.95,
|
|
|
|
|
height = Screen:getHeight() * 0.2,
|
|
|
|
|
}
|
|
|
|
@ -157,17 +223,18 @@ function SetDefaults:init()
|
|
|
|
|
end
|
|
|
|
|
})
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
self.defaults_menu:swithItemTable("Defaults", self.results)
|
|
|
|
|
UIManager:show(menu_container)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function SetDefaults:fillbools()
|
|
|
|
|
function SetDefaults:filldefaults()
|
|
|
|
|
local i = 0
|
|
|
|
|
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" 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
|
|
|
|
|
i = i + 1
|
|
|
|
|
SetDefaults.bools_name[i] = n
|
|
|
|
|
SetDefaults.bools_value[i] = v
|
|
|
|
|
SetDefaults.defaults_name[i] = n
|
|
|
|
|
SetDefaults.defaults_value[i] = v
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
@ -203,13 +270,13 @@ function SetDefaults:SaveSettings()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local function build_setting(j)
|
|
|
|
|
local ret = SetDefaults.bools_name[j] .. " = "
|
|
|
|
|
if tonumber(SetDefaults.bools_value[j]) then
|
|
|
|
|
ret = ret .. tostring(tonumber(SetDefaults.bools_value[j]))
|
|
|
|
|
elseif type(_G[SetDefaults.bools_name[j]]) == "boolean" then
|
|
|
|
|
ret = ret .. tostring(SetDefaults.bools_value[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.bools_value[j]) .. "\""
|
|
|
|
|
ret = ret .. "\"" .. tostring(SetDefaults.defaults_value[j]) .. "\""
|
|
|
|
|
end
|
|
|
|
|
return ret
|
|
|
|
|
end
|
|
|
|
@ -226,15 +293,14 @@ function SetDefaults:SaveSettings()
|
|
|
|
|
fileread("defaults.persistent.lua",dpl)
|
|
|
|
|
local dl = {}
|
|
|
|
|
fileread("defaults.lua",dl)
|
|
|
|
|
self.bools = {}
|
|
|
|
|
self.results = {}
|
|
|
|
|
self.fillbools()
|
|
|
|
|
self.filldefaults()
|
|
|
|
|
local done = {}
|
|
|
|
|
|
|
|
|
|
-- handle case "found in persistent", replace it
|
|
|
|
|
for i = 1,#dpl do
|
|
|
|
|
for j=1,#SetDefaults.bools_name do
|
|
|
|
|
if string.find(dpl[i],SetDefaults.bools_name[j]) == 1 then
|
|
|
|
|
for j=1,#SetDefaults.defaults_name do
|
|
|
|
|
if string.find(dpl[i],SetDefaults.defaults_name[j]) == 1 then
|
|
|
|
|
dpl[i] = build_setting(j)
|
|
|
|
|
done[j] = true
|
|
|
|
|
end
|
|
|
|
@ -243,7 +309,7 @@ function SetDefaults:SaveSettings()
|
|
|
|
|
|
|
|
|
|
-- handle case "exists identical in non-persistent", ignore it
|
|
|
|
|
for i = 1,#dl do
|
|
|
|
|
for j=1,#SetDefaults.bools_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
|
|
|
|
|
done[j] = true
|
|
|
|
|
end
|
|
|
|
@ -251,7 +317,7 @@ function SetDefaults:SaveSettings()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- handle case "not in persistent and different in non-persistent", add to persistent
|
|
|
|
|
for j=1,#SetDefaults.bools_name do
|
|
|
|
|
for j=1,#SetDefaults.defaults_name do
|
|
|
|
|
if not done[j] then
|
|
|
|
|
dpl[#dpl+1] = build_setting(j)
|
|
|
|
|
end
|
|
|
|
|