|
|
|
@ -26,6 +26,7 @@ local function settype(b,t)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local function __genOrderedIndex( t )
|
|
|
|
|
-- this function is taken from http://lua-users.org/wiki/SortedIteration
|
|
|
|
|
local orderedIndex = {}
|
|
|
|
@ -73,6 +74,21 @@ local function orderedPairs(t)
|
|
|
|
|
return orderedNext, t, nil
|
|
|
|
|
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:ConfirmEdit()
|
|
|
|
|
if not SetDefaults.EditConfirmed then
|
|
|
|
|
UIManager:show(ConfirmBox:new{
|
|
|
|
@ -88,12 +104,24 @@ function SetDefaults:ConfirmEdit()
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
function SetDefaults:init()
|
|
|
|
|
|
|
|
|
|
self.defaults_name = {}
|
|
|
|
|
self.defaults_value = {}
|
|
|
|
|
self.results = {}
|
|
|
|
|
|
|
|
|
|
self.filldefaults()
|
|
|
|
|
if not self.already_read then
|
|
|
|
|
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" and n ~= "LIBRARY_PATH" then
|
|
|
|
|
i = i + 1
|
|
|
|
|
self.defaults_name[i] = n
|
|
|
|
|
self.defaults_value[i] = v
|
|
|
|
|
end
|
|
|
|
|
if string.find(tostring(v), "table: ") and string.upper(n) == n and n ~= "ARGV" and n ~= "_G" then
|
|
|
|
|
i = i + 1
|
|
|
|
|
self.defaults_name[i] = n
|
|
|
|
|
self.defaults_value[i] = getTableValues(v,n)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
self.already_read = true
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local menu_container = CenterContainer:new{
|
|
|
|
|
dimen = Screen:getSize(),
|
|
|
|
@ -222,40 +250,6 @@ function SetDefaults:init()
|
|
|
|
|
UIManager:show(menu_container)
|
|
|
|
|
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()
|
|
|
|
|
if not SetDefaults.already_read then
|
|
|
|
|
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" and n ~= "LIBRARY_PATH" then
|
|
|
|
|
i = i + 1
|
|
|
|
|
SetDefaults.defaults_name[i] = n
|
|
|
|
|
SetDefaults.defaults_value[i] = v
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
function SetDefaults:close()
|
|
|
|
|
self.set_dialog:onClose()
|
|
|
|
|
UIManager:close(self.set_dialog)
|
|
|
|
@ -311,7 +305,6 @@ function SetDefaults:SaveSettings()
|
|
|
|
|
local dl = {}
|
|
|
|
|
fileread("defaults.lua",dl)
|
|
|
|
|
self.results = {}
|
|
|
|
|
self.filldefaults()
|
|
|
|
|
local done = {}
|
|
|
|
|
|
|
|
|
|
for j=1,#SetDefaults.defaults_name do
|
|
|
|
@ -328,15 +321,6 @@ function SetDefaults:SaveSettings()
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- handle case "exists identical in non-persistent", ignore it
|
|
|
|
|
for i = 1,#dl do
|
|
|
|
|
for j=1,#SetDefaults.defaults_name do
|
|
|
|
|
if not done[j] and 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
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
-- handle case "not in persistent and different in non-persistent", add to persistent
|
|
|
|
|
for j=1,#SetDefaults.defaults_name do
|
|
|
|
|
if not done[j] then
|
|
|
|
@ -351,6 +335,5 @@ function SetDefaults:SaveSettings()
|
|
|
|
|
file:close()
|
|
|
|
|
UIManager:show(InfoMessage:new{text = _("Default settings successfully saved!")})
|
|
|
|
|
settings_changed = false
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
return SetDefaults
|
|
|
|
|